1
2			libstrfunc
3
48.3:	27 Apr 2007
5
6	* Compiled with Solaris 10 with Sun Studio 11.
7
88.2.1:	26 May 2006
9
10	* Introduced external charset encoder.
11
128.2:	26 May 2005
13
14	* More fixes to strtotime().
15	* Added const qualifiers in more places.
16	* Removed sf_lang subsystem.
17
188.1.1:	16 May 2004
19
20	* Proper size rounding in sbuf.
21	* replace() parameters include const in proper places.
22
238.1:	30 Mar 2004
24
25	* strtotime() recognizes "Nov 23 23:50:36 2005 GMT"
26	* strtotime() refactored, made even faster.
27	* sbuf_sprintf() now takes in account free space in sb->off and
28	  uses it, if possible (like sbuf_add2() does).
29
308.0:	08 Aug 2003
31
32	* Library layout reworked: library split by logical parts.
33	* base64_decode, encode and other MIME functions changed
34	signature AND/OR semantics. Beware!
35	* sbuf_trim() added.
36
377.4.7:  03 Jul 2003
38
39	* Fixed memory leak in sclear().
40
417.4.6:	12 Jan 2003
42
43	* Added a possibility of a function call upon memory failures.
44	* Fixed url_encode() bug introduced in 7.4.5 :/
45
467.4.5:	30 Nov 2002
47
48	* Fixed problem with splitf()'ing regular expressions, when they
49	  starting with "/".
50	* Fixed problem with sed()'ing expressions like "( )*".
51	* Several man page fixes.
52	* Fixed potential mmap() problem in cfgread().
53	* Code identation and style fixes.
54	* Fixed bug with sbuf_fetch().
55
567.4:	29 Jun 2002
57
58	* Project automakefied. 10x2 Alexey Mahotkin <alexm@hsys.msk.ru>.
59	* strtotime() better recognizes some time representations;
60	  module test included. (Interesting fact: strtotime() performs
61	  more than 50 times faster than yacc-based curl_getdate() found
62	  in the libcurl, http://curl.haxx.se/)
63	* slist renamed to svect to reflect actual meaning of
64	  this data structure.
65	* Fixed bug in formatf() which triggers when metafunction
66	  return { NULL }.
67	* formatf() was convinced to support ${a[n]?b:c} when n > 0.
68	* Fixed memory leak and sed_free() bug in sed*() code.
69
707.3:	25 Dec 2001
71
72	* Offset field added to sbuf structure.
73	* sbuf_fetch() added. Suggested by Pavel Plesov <mclap@simtts.mv.ru>.
74	* MinGW builds with Cygwin tools.
75	  Submitted by alexander smishlajev <alex@tycobka.lv>.
76	* Support for different POSIX-compatible regexp libraries.
77	* strtotime() performs 50 times faster.
78
797.2.7:	22 Nov 2001
80
81	* Allocation bug fixed in cgifunc.c.
82
83		Thanks to Eric Gentry <eric_gentry@hp.com>
84
85	* lockf() replaced with fcntl().
86	* manual pages fixed.
87
887.2.6:	28 Jul 2001
89
90	* Minor NULL<->NUL gcc 3.0 compile problems fixed.
91	* Fixed sed misbehaviour on unescaping slashes.
92	* Added sed modifier 'm' aka REG_NEWLINE.
93
94	  Thanks to bjudson@benjudson.com.
95
967.2.5:	19 Jul 2001
97
98	* params() now invokes parse_form() and can be used stand-alone.
99	* eq*() now immune to NULL's.
100
1017.2.4:	02 Jul 2001
102
103	* strtotime() now recognizes dates in MM.DD[.YYYY] format.
104
1057.2.3:	07 Jun 2001
106
107	* Other CGI functions are made consistent
108	with libstrfunc memory control technique.
109
1107.2.2:	26 May 2001
111
112	* lang*(), replace() and cgi*() functions are made consistent
113	with libstrfunc memory control technique.
114
1157.2.1:	22 May 2001
116
117	* Security bugfix in formatf().
118	* format*() functions are made consistent
119	with libstrfunc memory control technique.
120
1217.2.0:	16 May 2001
122
123	* sed_*() and cookie() are made consistent
124	with libstrfunc memory control technique.
125	* Documented strfunc_ctl() and memory control technique.
126	* splitf can use regular expressions as delimiters.
127
1287.1.0:	15 May 2001
129
130	* inet_aton() avoided by implementing sf_iaton().
131	* split_network() not destroys input value.
132
1337.0.8:	10 May 2001
134
135	* sjoin(NULL, ...) works fine.
136
1377.0.7:	30 Apr 2001
138
139	* sbuf_*, mime_word_decode are made consistent
140	with libstrfunc memory control technique.
141
1427.0.6:	22 Apr 2001
143
144	* strtotime() now recognizes something like "1997/06/23 13:22:33" and
145	derivatives.
146	* TFMT_X208 constant defined to follow the RFC2252 style of using X.208
147	standard for general time representation
148
1497.0.5:	06 Apr 2001
150
151	* mime_word_decode() fixed after sed() changes.
152
1537.0.4:	03 Apr 2001	(8765 lines, 184633 bytes)
154
155	* Light join() fix.
156	* Improved strtotime() behaviour on syslogd dates.
157	* Significal changes in sed() internals. 'n' flag added.
158	* splitf() improved to reflect the need in splitting by
159	arbitrary strings instead of character sets.
160	* int, size_t and ssize_t are properly reassigned to arguments.
161
1627.0.0:	31 Mar 2001	(8614 lines, 181895 bytes)
163
164	* Code was significaly revised and almost fully rewritten.
165	* *destroy => *free.
166	* param2() returns pointer to static structure.
167	* binparam() & parammeta() removed.
168	* Due to incompatible changes library's major number changed to 7
169
1706.1.0:	15 Mar 2001
171
172	* Fixes in sed_*() functions.
173	* Added sed_results().
174
1756.0.6:	02 Mar 2001
176
177	* Old bug in configuration file parser line counter fixed.
178
1796.0.5:	29 Jan 2001
180
181	* initFILEpos now fully transparent.
182
1836.0.2:	15 Jan 2001
184
185	* Portability changes.
186
1876.0.1:	29 Dec 2000	(6247 lines, 132687 bytes)
188
189	* sins() behaves more accurate.
190	* sed_compile() behaves more accurate.
191
1926.0.0:	25 Dec 2000
193
194	* Significant portability issues; changes inspired by ancom@ugk.uaz.ru.
195	* Library number changed, but is still compatible with 5.5.
196	* sed.c works without REG_STARTEND.
197	* datetime.c works without timegm and tm_gmtoff.
198	* {init|adj}{FILE|fd}pos() are able to deal with extensible position
199	format.
200
2015.6.1:	19 Dec 2000
202
203	* Fixed bug with duplicate names when mmap() is not available
204	(10x2ancom).
205
2065.6.0:	18 Dec 2000
207
208	* warnx() removed due to non-portability.
209	* fprintf's removed from {init|adj}{FILE|fd}pos().
210	* sbuf_zero() and sbuf_detach() added.
211	* sbuf_fgets() added.
212	* updated manual pages about sf_*().
213
2145.5.6:	14 Dec 2000
215
216	* sbuf_sprintf() function added.
217
2185.5.5:	12 Dec 2000
219
220	* GNU autoconf suite was used to form a complete distribution.
221
2225.5.0:	11 Dec 2000
223
224	* Some significial changes, including the naming conventions
225	and interfaces.
226	* Stability added to sarray() && mkarray().
227
2285.2.5:	11 Dec 2000
229
230	* Even more minor changes.
231
2325.2.4:	08 Dec 2000
233
234	* cfgget2() is not saves the object in the internal memory.
235	* More accurate escaping handling in cfglex.c
236	* sed_compile() recognizes one more expression.
237	* timetostr and strtotime binaries added.
238
2395.2.1:	07 Dec 2000
240
241	* Light makefile changes.
242
2435.2.0:	04 Dec 2000
244
245	* sbuf (clever buffer) structure and appropriate handlers added.
246	* A subset of the sed(1)'s functionality added.
247	* manual pages on sf_file, sf_sed and sf_sbuf created.
248	* mime_word_decode() completely rewritten.
249
2505.1.3:	03 Dec 2000
251
252	* splitquotable() patch.
253
2545.1.2:	21 Nov 2000
255
256	* strtotime():
257		+ 'T' is now not necessary delimiter between date and time.
258		+ More careful distinguishing between the time_t and ISO times.
259		+ ISO time allows incomplete times and dates, like "hh:mm..".
260
2615.1.1:	14 Nov 2000
262
263	* CGI: Attribute name now url_decoded.
264
2655.1.0:	04 Nov 2000 (5243 lines)
266
267	* Added functions initfdpos() and adjfdpos().
268	* Added functions initFILEpos() and adjFILEpos().
269
2705.0.1:	31 Oct 2000	(5040 lines)
271
272	* Improved koi8_r_to_windows_1251().
273	* mime_word_decode() now automaticaly recodes known charsets to koi8-r.
274	* Recode tables size set to safe value.
275
276	TODO: revise the _detach() functions.
277	TODO: mime_word_decode() should always return utf-8.
278
2795.0.0:	19 Oct 2000	(5020 lines)
280
281	* Final release.
282	* do*lean() changed to *_detach().
283	* Major number changed to 5.0.
284	* Makefile was somewhat simplified to achieve portability.
285
286	TODO: revise the _detach() functions.
287
2884.9.9:	6 Oct 2000
289
290	* TFMT_OLD822GMT flag added to timetostr()
291	* Absolutely idiotic bug in strtotime() fixed. (Related with GMT/LT).
292	* Manual pages were slightly improved to achieve readability for the
293	native english readers.
294
2954.9.6:	2 Oct 2000	(4465 lines)
296
297	* Introduced replace_detach().
298	* Introduced countstr().
299	* Manual pages rewritten to reflect that changes.
300
3014.9.5:	2 Oct 2000	(4431 lines)
302
303	* Introduceed char *timetostr(time_t time, int flags);
304	* fetchdate() is now able to recognize ISO-8601, ctime() and
305	unix_time formats.
306	* fetchdate() performs up to ten times faster.
307	* fetchdate() renamed to strtotime(3).
308	* httptime() removed, use timetostr() instead.
309	* match() and match1() removed as unnecessary.
310	* sinit(slist *) replaced by sinit(void).
311	* Due to incompatible changes library's major number changed to 4.9
312	* All necessary manual pages created.
313
3144.5.2:	28 Sep 2000
315
316	* cfgread(): equal sign is optional between an attribute and a value.
317	Equal sign may be placed between an attribute and a left brace.
318
3194.5.1:	25 Sep 2000
320
321	* Licks in limittextwidth().
322	* Fixed cfgread()' rc in reading broken config file (10x2basil). From
323	now it will return 0x1 if something failed inside the well-opened file.
324	* mime_word_decode(): added '\t' to the list of whitespace symbols.
325
3264.5.0:	18 Sep 2000
327
328	* formatf() function now accepts the third value - a key to be passed to
329	the invoked helper functions due to this significal change, the library
330	major number has changed to leave intact already built applications.
331	* Created sf_cfgread(3) manual page.
332	* getlanguageprefs() introduced in CGI module.
333	* sins() added for inserting values into slist structure.
334	* fetchdate() guesses that GMT = time - our_offset.
335
3364.3.2:	16 Sep 2000
337
338	* parse_form() performs additional checks to ensure data correctness.
339	* fetchdate() recognizes an RFC-850 (obsoleted) time format.
340
3414.3.1:	14 Sep 2000
342
343	* fetchdate() acts more accurately on broken times.
344
3454.3.0:	13 Sep 2000
346
347	* fetchdate() and mime_word_decode() acting significaly faster.
348	* iso-8859-5 to koi8-r table added.
349	* Quoted-printable engine slightly improved.
350
3514.2.2:	7 Sep 2000
352
353	* Little lick in fetchdate().
354
3554.2.1
356
357	* Three of six manual pages created.
358
3594.2:	24 Aug 2000
360
361	* Some improvements in the formatf() about \escaping.
362
3634.1.1:	30 Jun 2000
364
365	* Some licks in the config parsing.
366
3674.1:
368
369	* formatf() now recognizes something like this:
370		${attr==value?${printok}:${printfail}}
371	* cookie*() and set_cookie() functions added.
372
3734.0:
374
375	* libcfg-3.1 has integrated into this code.
376
3773.8.0:
378
379	* Format functions added for generalizing of metacharacters handling.
380	* Version control (strfunc_build()) added.
381
3823.7.6:
383
384	* url_decode() updated to be more stable on unusual data.
385	* httptime() function added for creating Expires field in CGI's.
386	* warning: mime_word_decode() invisibly "touches" the argument!
387	(Feature is documented bug).
388
3893.7.5:
390
391	* fetchdate() function added.
392	* base64_encode() function added.
393
3943.7.2:
395
396	* lang_recode() function added.
397	* windows_1251_to_koi8_r and koi8_r_to_windows_1251 tables added.
398	* struct slistpair and related functions (sgetp(), scgetp()) added.
399
4003.7.1:
401
402	* mime_word_decode() reviewed to match RFC2045 (base64 encoding).
403
4043.7.0:
405
406	* CGI part of the library handles multipart/form-data encoding!
407
4083.6.0:
409
410	* url_encode() function added.
411	* quoted_printable_decode() function added.
412	* mime_word_decode() function added.
413	* base64_decode() function added.
414	* match() (regex-based) function added.
415	+ Added C++ compatibility in header.
416
4173.5.0:
418
419	* stand-alone strfunc.c turned into this library
420	* code was rechecked and cleaned
421	* strfunc.h was totally rewriten
422
423