Made percent_escape more general.
[gnupg.git] / jnlib / ChangeLog
1 2007-06-19  Werner Koch  <wk@g10code.com>
2
3         * Makefile.am: Add support for regression tests.
4         * t-support.h, t-support.c: New.
5         * t-stringhelp.c: New.
6
7         * stringhelp.c (percent_escape): Add arg EXTRA to make it a more
8         general function.  Changed all callers.
9
10 2007-06-18  Werner Koch  <wk@g10code.com>
11
12         * w32-afunix.c (_w32_sock_bind): Changed to properly detect an
13         already used socket.
14
15 2007-06-18  Marcus Brinkmann  <marcus@g10code.de>
16
17         * stringhelp.h (percent_escape): New prototype.
18         * stringhelp.c (percent_escape): New function.
19
20 2007-06-11  Werner Koch  <wk@g10code.com>
21
22         * utf8conv.c (jnlib_iconv_open, jnlib_iconv, jnlib_iconv_close): New.
23
24 2007-06-06  Werner Koch  <wk@g10code.com>
25
26         * w32help.h: New.
27         * w32-gettext.c: New.  Taken from gnupg 1.4, added ngettext,
28         changed to use jnlib malloc functions and put under the LGPL.
29         * w32-reg.c: New.  Taken from../common/w32reg.c and changed to
30         LGPL.  Changed API to use the jnlib malloc functions.
31         * Makefile.am (libjnlib_a_SOURCES) [!W32]: Do not build the w32
32         specific modules.
33
34         * dotlock.c: Include stringhelp.h for stpcpy prototype.
35
36 2007-06-04  Werner Koch  <wk@g10code.com>
37
38         * dynload.h: New.  Taken from ../common and changed to LGPL.
39
40         * utf8conv.c (load_libiconv): New.  Taken from GnuPG 1.4
41
42 2007-05-30  Werner Koch  <wk@g10code.com>
43
44         * w32-pth.h, w32-pth.c: Remove.
45
46 2007-04-25  Werner Koch  <wk@g10code.com>
47
48         * argparse.c (long_opt_strlen): Fixed for utf-8.
49
50 2007-03-07  Werner Koch  <wk@g10code.com>
51
52         * argparse.c (strusage): Set copyright year to 2007.
53
54 2007-01-25  Werner Koch  <wk@g10code.com>
55
56         * stringhelp.c (utf8_charcount): New.
57
58 2006-11-29  Werner Koch  <wk@g10code.com>
59
60         * utf8conv.c (set_native_charset) [HAVE_W32_SYSTEM]: Fixed typo in
61         macro name.
62
63 2006-11-15  Werner Koch  <wk@g10code.com>
64
65         * logging.c (my_funopen_hook_ret_t): New.
66         (fun_writer): Use it.
67
68 2006-10-19  Werner Koch  <wk@g10code.com>
69
70         * stringhelp.c (memrchr) [!HAVE_MEMRCHR]: Provide a replacement.
71
72 2006-09-27  Werner Koch  <wk@g10code.com>
73
74         * mischelp.c: New.
75         (timegm): Copied from gnupg 1.4, changed from GPL to LGPL.  Fixed
76         a memory leak.
77
78         * stringhelp.h (isascii): New.
79
80         * stringhelp.c (strsep): New. Copied from gnupg 1.4.5
81         util/strgutil.c.
82
83         * strlist.h (STRLIST): Removed deprecated typedef. 
84
85         * types.h: Made cpp commands work with old compilers.  Also shows
86         up nicer with Emacs' font locking.
87
88         * w32-afunix.c (_w32_sock_connect): Set ERRNO for an invalid port.
89
90         Changed license from GPL to LGPL.  Note that all code has either
91         been written by me, David, employees of g10 Code or taken from
92         glibc.
93         
94         * libjnlib-config.h, stringhelp.c, stringhelp.h:
95         * strlist.c, strlist.h, utf8conv.c, utf8conv.h:
96         * argparse.c, argparse.h, logging.c, logging.h:
97         * dotlock.c, dotlock.h, types.h, mischelp.h:
98         * xmalloc.c, xmalloc.h, w32-pth.c, w32-pth.h:
99         * w32-afunix.c, w32-afunix.h: Tagged them to be long to jnlib
100         which is a part of GnuPG but also used by other projetcs. 
101
102 2006-09-22  Werner Koch  <wk@g10code.com>
103
104         * utf8conv.c: Reworked to match the gnupg 1.4.5 code.  This now
105         requires iconv support but this is reasonable for all modern
106         systems.
107
108 2006-08-29  Werner Koch  <wk@g10code.com>
109
110         * logging.c (do_logv): Emit a missing LF for fatal errors.
111
112 2006-06-28  Werner Koch  <wk@g10code.com>
113
114         * dotlock.c (make_dotlock, release_dotlock, read_lockfile)
115         (maybe_deadlock, destroy_dotlock, create_dotlock): Re-indented.
116         (create_dotlock): Repalces some log_fatal by log_error as it was
117         not intended that they should terminate.  Write the nodename to
118         the locking file. Code cleanups.
119         (read_lockfile): Reworked to read the node name.
120         (make_dotlock): Test for identical node name and delete lock stale
121         file.
122         (release_dotlock): Likewise.
123
124 2006-05-23  Werner Koch  <wk@g10code.com>
125
126         * libjnlib-config.h (JNLIB_NEED_UTF8CONV): Fixed typo in name.
127
128         * dotlock.c (release_dotlock): Don't act if we don't have any
129         locks at all.
130         (destroy_dotlock): New.  From 1.4.3.
131         (dotlock_remove_lockfiles): Make use of destroy function.
132
133 2006-05-19  Werner Koch  <wk@g10code.com>
134
135         * strlist.c (append_to_strlist2): Enabled.
136
137         * stringhelp.c (print_sanitized_buffer2): New.  Changed the rules
138         to match the behaviour of print_string2 from gnupg 1.4.3.
139         (print_sanitized_buffer): Use the new function.
140         (print_sanitized_string2): New.
141         (hextobyte): New.  Taken from gpg 1.4.3.
142
143 2006-04-28  Werner Koch  <wk@g10code.com>
144
145         * stringhelp.c (print_sanitized_buffer): Fix bug where the count
146         got wrong for the \xNN representation.
147         (sanitize_buffer): Fix bug where some control characters lose part
148         of their \xNN representation.
149
150 2006-04-20  Werner Koch  <wk@g10code.com>
151
152         * stringhelp.c (make_basename): New arg INPUTPATH for future
153         riscos compatibility.
154
155 2006-04-18  Werner Koch  <wk@g10code.com>
156
157         * libjnlib-config.h (JNLIB_NEED_UTF8CONF): Defined.
158         * strlist.c (add_to_strlist2) [JNLIB_NEED_UTF8CONV]: Enabled.
159
160 2005-06-15  Werner Koch  <wk@g10code.com>
161
162         * stringhelp.c (sanitize_buffer): Make P a void*.
163         (ascii_memistr, memistr): Ditto.
164         (ascii_memcasecmp): Ditto.
165         * logging.c (writen): Use void * for arg BUFFER.
166         * stringhelp.c (memistr): Fixed unsigned/signed pointer conflict.
167         (ascii_memistr): Ditto.
168         (ascii_memcasemem): Ditto.
169         * utf8conv.c (utf8_to_native): Ditto.
170         (utf8_to_native): Ditto.
171         * argparse.c (show_version): Removed non-required cast.
172
173 2005-01-19  Werner Koch  <wk@g10code.com>
174
175         * logging.c (fun_writer): Don't fallback to stderr. Print to
176         stderr only if connected to a tty.
177
178 2004-12-20  Werner Koch  <wk@g10code.com>
179
180         * w32-pth.c (do_pth_event_free): The events are hold in a ring
181         buffer.  Adjust for that.
182         (do_pth_event_body): Ditto.
183         (pth_event_isolate): Ditto.
184         (do_pth_wait): Ditto.
185         (_pth_event_count): Renamed to ..
186         (event_count): .. and adjusted as above.
187         (pth_init): Define 3 debug levels and change all debug calls to
188         make use of them.  This makes the moule now silent.
189
190 2004-12-19  Werner Koch  <wk@g10code.com>
191
192         * w32-pth.c (pth_init): Enable debugging depending on env var.
193         (pth_self): New.
194         (pth_mutex_release, pth_mutex_acquire): Implemented directly using
195         the W32 API.
196
197 2004-12-18  Werner Koch  <wk@g10code.com>
198
199         * w32-pth.c (pth_init): Reverse return values.  Use TRUE and FALSE
200         constants.
201         (pth_kill, pth_mutex_acquire, pth_attr_set, pth_join, pth_cancel):
202         Ditto.
203
204 2004-12-15  Werner Koch  <wk@g10code.com>
205
206         * logging.c [W32]: Don't include unavailable headers.
207
208 2004-12-14  Werner Koch  <wk@g10code.com>
209
210         * w32-pth.c (_pth_strerror): Renamed to ...
211         (w32_strerror): .. this. And let callers provide a buffer.
212         (spawn_helper_thread): Removed HD arg and hardwire the stack size
213         to 32k.
214         (do_pth_wait): Removed use of ATTR; not needed for the helper
215         threads.
216         (helper_thread): Renamed to ..
217         (launch_thread): .. this.  Release handle if not joinable.
218         (struct pth_priv_hd_s): Renamed to ...
219         (struct thread_info_s): .. this.  Add member JOINABLE and TH.
220
221 2004-12-14  Timo Schulz  <twoaday@g10code.com>
222
223         * w32-pth.c (pth_kill): Just release the crit section if
224         pth_init was really called. And set all handles to NULL.
225         (_pth_strerror): New.
226         (do_pth_wait): Before we enter the loop we check if there
227         are too much events in the ring.
228         
229 2004-12-14  Werner Koch  <wk@g10code.com>
230
231         * w32-pth.h (pth_event_occured): Removed macro. 
232         * w32-pth.c: Fixed license statement; its under the LGPL.
233         (enter_pth, leave_pth): Use them to bracket almost all public
234         functions.
235
236 2004-12-13  Timo Schulz  <twoaday@g10code.com>
237
238         * w32-pth.c (enter_pth, leave_pth): New.
239         (pth_init): Initialize global mutex section.
240         (pth_kill): Release global mutex section.
241         (helper_thread): New.
242         (pth_spawn): Make sure only one thread is running.
243         
244 2004-12-13  Werner Koch  <wk@g10code.com>
245
246         * stringhelp.c (w32_strerror) [W32]: New.
247
248         * w32-pth.c, w32-pth.h: Added real code written by Timo Schulz.
249         Not finished, though.
250
251 2004-12-07  Werner Koch  <wk@g10code.com>
252
253         * w32-pth.c, w32-pth.h: New.
254
255 2004-11-26  Werner Koch  <wk@g10code.com>
256
257         * logging.c [_WIN32]: Don't include socket headers.
258
259 2004-11-30  Timo Schulz  <ts@g10code.com>
260
261         * w32-afunix.c: New. AF_UNIX emulation for W32.
262         * w32-afunix.h: Likewise.
263         
264 2004-11-22  Werner Koch  <wk@g10code.com>
265
266         * logging.c (log_test_fd): Add test on LOGSTREAM.  Reported by
267         Barry Schwartz.
268
269 2004-11-18  Werner Koch  <wk@g10code.com>
270
271         * logging.c: Explicitly include sys/stat.h for the S_I* constants.
272
273 2004-10-21  Werner Koch  <wk@g10code.com>
274
275         * logging.c (do_logv): Use set_log_stream to setup a default.
276         (log_set_file): Factored code out to ..
277         (set_file_fd): .. New function to allow using a file descriptor.
278         (log_set_fd): Make use of new fucntion.
279         (fun_writer): Reworked.
280
281 2004-08-18  Werner Koch  <wk@g10code.de>
282
283         * stringhelp.c (print_sanitized_utf8_string): Actually implement
284         it.
285
286 2004-06-21  Werner Koch  <wk@g10code.com>
287
288         * logging.c (log_set_file): Do not close an old logstream if it
289         used to be stderr or stdout.
290
291 2004-05-05  Werner Koch  <wk@gnupg.org>
292
293         * logging.c (log_set_file): Oops, don't close if LOGSTREAM is NULL.
294
295 2004-04-30  Werner Koch  <wk@gnupg.org>
296
297         * logging.c (log_set_file): Make sure the log stream will be
298         closed even if the stderr fileno will be assigned to a new socket.
299
300 2004-04-16  Werner Koch  <wk@gnupg.org>
301
302         * logging.h (JNLIB_LOG_WITH_PREFIX): Add constants for the flag
303         values.
304         * logging.c (log_set_prefix): New flag DETACHED.
305         (fun_writer): Take care of this flag.
306         (log_test_fd): New.
307
308 2004-02-18  Werner Koch  <wk@gnupg.org>
309
310         * stringhelp.c (print_sanitized_buffer): Don't care about
311         non-ASCII characaters.
312         (sanitize_buffer): Ditto.
313
314 2004-02-12  Werner Koch  <wk@gnupg.org>
315
316         * Makefile.am: Replaced INCLUDES by AM_CPPFLAGS.
317
318 2004-01-05  Werner Koch  <wk@gnupg.org>
319
320         * argparse.c (strusage): Changed default copyright year to 2004.
321
322 2003-12-17  Werner Koch  <wk@gnupg.org>
323
324         * argparse.c (initialize): Replaced use of non-literal format
325         args.  Suggested by Florian Weimer.
326
327 2003-12-16  Werner Koch  <wk@gnupg.org>
328
329         * logging.c (writen, fun_writer, fun_closer): New.
330         (log_set_file): Add feature to log to a socket.
331         (log_set_file, do_logv): Force printing with prefix and pid.
332
333 2003-11-13  Werner Koch  <wk@gnupg.org>
334
335         * strlist.c (strlist_copy): New.
336
337         * dotlock.c: Define DIRSEP_C et al. if not defined.
338
339 2003-11-06  Werner Koch  <wk@gnupg.org>
340
341         * strlist.h (strlist_t): New. STRLIST is now deprecated.
342
343 2003-06-18  Werner Koch  <wk@gnupg.org>
344
345         * strlist.c (strlist_pop): New.
346
347         * dotlock.c (dotlock_remove_lockfiles): Prefixed with dotlock_ and
348         made global.
349
350 2003-06-17  Werner Koch  <wk@gnupg.org>
351
352         * stringhelp.c (length_sans_trailing_chars)
353         (length_sans_trailing_ws): New.
354
355         * logging.c (log_inc_errorcount): New.
356
357         * stringhelp.c (print_sanitized_utf8_buffer): Implement utf8
358         conversion.
359         (sanitize_buffer): New. Based on gnupg 1.3.2 make_printable_string.
360
361         * dotlock.c: Updated to match the version from 1.3.2
362         * utf8conv.c: New.  Code taken from strgutil.c of gnupg 1.3.2.
363         * utf8conv.h: New.
364
365 2003-06-16  Werner Koch  <wk@gnupg.org>
366
367         * logging.c (do_logv): Hack to optionally suppress a leading space.
368
369         * stringhelp.c (ascii_strncasecmp): New.  Taken from gnupg 1.3.
370         (ascii_memistr): New. Taken from gnupg 1.3
371
372 2003-06-13  Werner Koch  <wk@gnupg.org>
373
374         * mischelp.h (wipememory2,wipememory): New. Taken from GnuPG 1.3.2. 
375
376 2002-06-04  Werner Koch  <wk@gnupg.org>
377
378         * stringhelp.c (print_sanitized_utf8_string): New.  No real
379         implementation for now.
380         (print_sanitized_utf8_buffer): Ditto.
381
382 2002-04-04  Werner Koch  <wk@gnupg.org>
383
384         * logging.c (log_get_prefix): New.
385
386 2002-03-15  Werner Koch  <wk@gnupg.org>
387
388         * argparse.c (optfile_parse): Fixed missing argument handling.
389
390 2002-02-25  Werner Koch  <wk@gnupg.org>
391
392         * stringhelp.c (ascii_memcasemem): New.
393
394 2002-02-14  Werner Koch  <wk@gnupg.org>
395
396         * Makefile.am (INCLUDES): Add cflags for libgcrypt.
397
398 2002-02-07  Werner Koch  <wk@gnupg.org>
399
400         * logging.c (log_set_fd): New.
401
402         * stringhelp.c (print_sanitized_buffer): New.
403         (print_sanitized_string): New.
404
405 2002-01-24  Werner Koch  <wk@gnupg.org>
406
407         * argparse.c (strusage): Set default copyright notice year to 2002.
408
409         Fixed the copyright notice of this file, as it has always been
410         part of GnuPG and therefore belongs to the FSF.
411
412 2001-11-01  Marcus Brinkmann  <marcus@g10code.de>
413
414         * logging.c (log_printf): Do not initialize ARG_PTR with 0, we
415         don't know the correct type.  Instead, run va_start and va_end
416         unconditionally.
417         Reported by Jose Carlos Garcia Sogo <jsogo@debian.org>.
418
419 2002-01-19  Werner Koch  <wk@gnupg.org>
420
421         * logging.c (log_get_stream): New.
422
423 2001-12-05  Werner Koch  <wk@gnupg.org>
424
425         * logging.c (log_set_prefix): New.
426         (do_logv): Include prefix and pid only if enabled. Print time only
427         when explicitly enabled.
428         (log_logv): New.  
429         * logging.h: Include log_logv() only when requested.
430
431 2001-11-06  Werner Koch  <wk@gnupg.org>
432
433         * strlist.c, strlist.h: New. Taken from pgnupg/util/strgutil.c
434
435 2001-08-30  Werner Koch  <wk@gnupg.org>
436
437         * logging.c (log_printf): Don't pass NULL instead of arg_ptr.
438
439 2001-07-19  Werner Koch  <wk@gnupg.org>
440
441         * stringhelp.c (ascii_memistr,ascii_isupper,ascii_islower,
442         ascii_toupper,ascii_tolower, ascii_strcasecmp, ascii_memcasecmp): New.
443
444 2000-07-26 10:02:51  Werner Koch  (wk@habibti.openit.de)
445
446         * stringhelp.c.: Add stdarg.h
447         * argparse.h: s/ulong/unsigned long/ although this should be defined
448         by types.h.
449
450 2000-06-28 19:40:23  Werner Koch  (wk@habibti.openit.de)
451
452         * Makefile.am: Replaced second logging.c by .h
453
454 2000-05-24 08:58:15  Werner Koch  (wk@habibti.openit.de)
455
456         * logging.c (log_get_errorcount): New.
457
458 2000-05-24 08:44:47  Werner Koch  (wk@habibti.openit.de)
459
460         * stringhelp.c: Added a few filename related helper functions.
461
462 2000-05-11 18:04:43  Werner Koch  (wk@habibti.openit.de)
463
464         * xmalloc.c (xstrcat2): Replaced stpcpy to quickly address W32
465         problems.
466
467 2000-05-02 19:43:38  Werner Koch  (wk@habibti.openit.de)
468
469         * xmalloc.c (xstrcat2): New.
470
471 Mon Jan 24 13:04:28 CET 2000  Werner Koch  <wk@gnupg.de>
472
473         * README: New.
474         * Makefile.am: new.
475         * argparse.c, argparse.h, logging.c, logging.h:
476         * mischelp.h, stringhelp.c, stringhelp.h, xmalloc.c:
477         * xmalloc.h, dotlock.c: Moved from ../util to here.
478         * dotlock.h: New.
479         * libjnlib-config.h: New.
480
481         * logging.c (log_set_file): New.
482         (log_printf): New.
483         (do_logv): Add kludge to insert LFs.
484
485
486      ***********************************************************
487      * Please note that JNLIB is maintained as part of GnuPG.  *
488      * You may find it source-copied in other packages.        *
489      ***********************************************************        
490         
491  Copyright 2000, 2001, 2002, 2003, 2004,
492            2005, 2006, 2007 Free Software Foundation, Inc.
493
494  This file is free software; as a special exception the author gives
495  unlimited permission to copy and/or distribute it, with or without
496  modifications, as long as this notice is preserved.
497
498  This file is distributed in the hope that it will be useful, but
499  WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
500  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.