1 2009-08-25 Werner Koch <wk@g10code.com>
3 * stringhelp.c: Include errno.h.
5 (strconcat, xstrconcat): New.
6 * types.h (GNUPG_GCC_A_SENTINEL): New.
7 * t-stringhelp.c (test_strconcat, test_xstrconcat): New.
10 2009-07-07 Werner Koch <wk@g10code.com>
12 * stringhelp.c (make_filename_try): Use jnlib_malloc.
14 * dotlock.c (read_lockfile): Replace jnlib_xmalloc by jnlib_malloc.
16 2009-06-04 Werner Koch <wk@g10code.com>
18 * mischelp.h: Include SUN_LEN etc also for W32.
20 2009-05-19 Werner Koch <wk@g10code.com>
22 * mischelp.h: Define PF_LOCAL, AF_LOCAL and SUN_LEN if requested.
23 * logging.c (fun_writer): Use SUN_LEN to fix a Mac OS X freeze.
25 2009-03-25 Werner Koch <wk@g10code.com>
27 * logging.c (fun_closer): Never close fd 2.
28 (set_file_fd): Close logstream early.
30 2009-02-25 Werner Koch <wk@g10code.com>
32 * logging.c (get_tid_callback): New.
34 (log_set_get_tid_callback): New.
36 2009-01-22 Werner Koch <wk@g10code.com>
38 * t-support.c (gpg_err_code_from_errno)
39 (gpg_err_code_from_syserror): New.
41 2008-11-20 Werner Koch <wk@g10code.com>
43 * argparse.c (arg_parse): Fix last change.
45 2008-11-11 Werner Koch <wk@g10code.com>
47 * argparse.h: Add a bunch of macros and constants.
48 * argparse.c: Use the new macros. Re-indent the code. Change
49 license back to LGPL 2.1.
51 2008-11-04 Werner Koch <wk@g10code.com>
53 * w32-gettext.c: Merged with code from libgpg-error and rewrote
56 * Makefile.am (AM_CFLAGS): Add -DJNLIB_IN_JNLIB.
58 2008-10-29 Werner Koch <wk@g10code.com>
60 * stringhelp.c (make_filename): Implement using macros. Factor some
62 (change_slashes): New.
63 (make_filename_try): New.
65 * w32-gettext.c (gettext): Return if no domain is loaded.
66 Reported by Tom Pegios.
68 2008-10-28 Werner Koch <wk@g10code.com>
70 * w32-gettext.c (gettext): Try the binary search if the string was
71 not found in the hash table.
73 2008-10-20 Werner Koch <wk@g10code.com>
75 * w32-afunix.c (_w32_sock_connect): Mark ADDRLEN as unused.
77 * dotlock.c (release_dotlock): Do not mix declaration and code.
79 * stringhelp.c (make_basename): Silent gcc warning about unused arg.
80 * argparse.c (store_alias): Ditto.
83 2008-10-15 Werner Koch <wk@g10code.com>
85 * logging.c (do_logv) [W32]: Flush the log stream.
87 2008-09-29 Werner Koch <wk@g10code.com>
89 * argparse.c (ARGERR_): Use constants for error values.
90 (optfile_parse): Prettify. Replace xmalloc and xrealloc by malloc
92 * libjnlib-config.h (jnlib_strdup, jnlib_realloc): New.
94 2008-06-26 Werner Koch <wk@g10code.com>
96 * stringhelp.c (print_sanitized_buffer2): Loose check for control
97 characters to better cope with utf-8. The range 0x80..0x9f is
98 nowadays not anymore accidently used for control charaters.
100 2008-06-13 Werner Koch <wk@g10code.com>
102 * dotlock.c: Reformat code and implement locking for W32.
103 (create_dotlock): Use snprintf.
105 2008-06-11 Werner Koch <wk@g10code.com>
107 * utf8conv.c: Remove useless variable ACTIVE_CHARSET. Suggested
110 2008-05-26 Werner Koch <wk@g10code.com>
112 * argparse.c (usage): Make sure to print a trailing LF for usage(1).
114 2008-04-08 Werner Koch <wk@g10code.com>
116 * w32-gettext.c (gettext_select_utf8): New.
117 (get_string): Support switching encodings.
118 (load_domain): Allocate space for DATA_NATIVE.
120 2008-03-25 Werner Koch <wk@g10code.com>
122 * w32-gettext.c (_nl_locale_name): New. Taken from
123 ../common/localename and GNU gettext's localename.c.
124 (set_gettext_file): Rewritten.
125 (gettext_localename): New.
127 2008-03-17 Werner Koch <wk@g10code.com>
129 * logging.c (my_funopen_hook_size_t): New.
130 (fun_writer): Use it to cope with fopencookie/funopen differences.
131 * dotlock.c (read_lockfile): Initialize PID. Reported by Stéphane
134 2008-02-22 Werner Koch <wk@g10code.com>
136 * argparse.c (strusage): Set copyright year to 2008.
138 2007-11-19 Werner Koch <wk@g10code.com>
140 * stringhelp.c (percent_escape): Factor code out to
141 (do_percent_escape): .. new.
142 (try_percent_escape): New.
144 2007-10-01 Werner Koch <wk@g10code.com>
146 * w32-afunix.c: Only keep the client related code.
147 (read_port_and_nonce): New. Taken from Assuan.
148 (_w32_sock_connect): Rewritten.
150 2007-08-29 Werner Koch <wk@g10code.com>
152 * argparse.c (initialize): Make strings translatable and remove
155 2007-08-24 Werner Koch <wk@g10code.com>
157 * mischelp.c (same_file_p): New.
158 (libjnlib_dummy_mischelp_func): Remove as we now always have one
161 2007-08-09 Werner Koch <wk@g10code.com>
163 * argparse.c (show_help): Expand the @EMAIL@ macro in the package
164 bug reporting address.
166 2007-08-02 Werner Koch <wk@g10code.com>
168 * t-stringhelp.c (test_compare_filenames): New.
170 * stringhelp.c (compare_filenames) [HAVE_DRIVE_LETTERS]: Fixed
171 comparison to take slash and backslash in account.
172 (make_filename): Avoid mixing / and \.
174 2007-07-04 Werner Koch <wk@g10code.com>
176 * utf8conv.c (load_libiconv): Remove URL from translatble string.
178 Switched JNLIB from LGPLv2.1 to LGPLv3.
180 2007-07-01 Werner Koch <wk@g10code.com>
182 * argparse.c (strusage): Use id 10 for the license string;
183 default to GPL3+. Change long note to version 3 or later.
184 (show_version): Print the license info.
186 2007-06-19 Werner Koch <wk@g10code.com>
188 * Makefile.am: Add support for regression tests.
189 * t-support.h, t-support.c: New.
190 * t-stringhelp.c: New.
192 * stringhelp.c (percent_escape): Add arg EXTRA to make it a more
193 general function. Changed all callers.
195 2007-06-18 Werner Koch <wk@g10code.com>
197 * w32-afunix.c (_w32_sock_bind): Changed to properly detect an
200 2007-06-18 Marcus Brinkmann <marcus@g10code.de>
202 * stringhelp.h (percent_escape): New prototype.
203 * stringhelp.c (percent_escape): New function.
205 2007-06-11 Werner Koch <wk@g10code.com>
207 * utf8conv.c (jnlib_iconv_open, jnlib_iconv, jnlib_iconv_close): New.
209 2007-06-06 Werner Koch <wk@g10code.com>
212 * w32-gettext.c: New. Taken from gnupg 1.4, added ngettext,
213 changed to use jnlib malloc functions and put under the LGPL.
214 * w32-reg.c: New. Taken from../common/w32reg.c and changed to
215 LGPL. Changed API to use the jnlib malloc functions.
216 * Makefile.am (libjnlib_a_SOURCES) [!W32]: Do not build the w32
219 * dotlock.c: Include stringhelp.h for stpcpy prototype.
221 2007-06-04 Werner Koch <wk@g10code.com>
223 * dynload.h: New. Taken from ../common and changed to LGPL.
225 * utf8conv.c (load_libiconv): New. Taken from GnuPG 1.4
227 2007-05-30 Werner Koch <wk@g10code.com>
229 * w32-pth.h, w32-pth.c: Remove.
231 2007-04-25 Werner Koch <wk@g10code.com>
233 * argparse.c (long_opt_strlen): Fixed for utf-8.
235 2007-03-07 Werner Koch <wk@g10code.com>
237 * argparse.c (strusage): Set copyright year to 2007.
239 2007-01-25 Werner Koch <wk@g10code.com>
241 * stringhelp.c (utf8_charcount): New.
243 2006-11-29 Werner Koch <wk@g10code.com>
245 * utf8conv.c (set_native_charset) [HAVE_W32_SYSTEM]: Fixed typo in
248 2006-11-15 Werner Koch <wk@g10code.com>
250 * logging.c (my_funopen_hook_ret_t): New.
251 (fun_writer): Use it.
253 2006-10-19 Werner Koch <wk@g10code.com>
255 * stringhelp.c (memrchr) [!HAVE_MEMRCHR]: Provide a replacement.
257 2006-09-27 Werner Koch <wk@g10code.com>
260 (timegm): Copied from gnupg 1.4, changed from GPL to LGPL. Fixed
263 * stringhelp.h (isascii): New.
265 * stringhelp.c (strsep): New. Copied from gnupg 1.4.5
268 * strlist.h (STRLIST): Removed deprecated typedef.
270 * types.h: Made cpp commands work with old compilers. Also shows
271 up nicer with Emacs' font locking.
273 * w32-afunix.c (_w32_sock_connect): Set ERRNO for an invalid port.
275 Changed license from GPL to LGPL. Note that all code has either
276 been written by me, David, employees of g10 Code or taken from
279 * libjnlib-config.h, stringhelp.c, stringhelp.h:
280 * strlist.c, strlist.h, utf8conv.c, utf8conv.h:
281 * argparse.c, argparse.h, logging.c, logging.h:
282 * dotlock.c, dotlock.h, types.h, mischelp.h:
283 * xmalloc.c, xmalloc.h, w32-pth.c, w32-pth.h:
284 * w32-afunix.c, w32-afunix.h: Tagged them to be long to jnlib
285 which is a part of GnuPG but also used by other projetcs.
287 2006-09-22 Werner Koch <wk@g10code.com>
289 * utf8conv.c: Reworked to match the gnupg 1.4.5 code. This now
290 requires iconv support but this is reasonable for all modern
293 2006-08-29 Werner Koch <wk@g10code.com>
295 * logging.c (do_logv): Emit a missing LF for fatal errors.
297 2006-06-28 Werner Koch <wk@g10code.com>
299 * dotlock.c (make_dotlock, release_dotlock, read_lockfile)
300 (maybe_deadlock, destroy_dotlock, create_dotlock): Re-indented.
301 (create_dotlock): Repalces some log_fatal by log_error as it was
302 not intended that they should terminate. Write the nodename to
303 the locking file. Code cleanups.
304 (read_lockfile): Reworked to read the node name.
305 (make_dotlock): Test for identical node name and delete lock stale
307 (release_dotlock): Likewise.
309 2006-05-23 Werner Koch <wk@g10code.com>
311 * libjnlib-config.h (JNLIB_NEED_UTF8CONV): Fixed typo in name.
313 * dotlock.c (release_dotlock): Don't act if we don't have any
315 (destroy_dotlock): New. From 1.4.3.
316 (dotlock_remove_lockfiles): Make use of destroy function.
318 2006-05-19 Werner Koch <wk@g10code.com>
320 * strlist.c (append_to_strlist2): Enabled.
322 * stringhelp.c (print_sanitized_buffer2): New. Changed the rules
323 to match the behaviour of print_string2 from gnupg 1.4.3.
324 (print_sanitized_buffer): Use the new function.
325 (print_sanitized_string2): New.
326 (hextobyte): New. Taken from gpg 1.4.3.
328 2006-04-28 Werner Koch <wk@g10code.com>
330 * stringhelp.c (print_sanitized_buffer): Fix bug where the count
331 got wrong for the \xNN representation.
332 (sanitize_buffer): Fix bug where some control characters lose part
333 of their \xNN representation.
335 2006-04-20 Werner Koch <wk@g10code.com>
337 * stringhelp.c (make_basename): New arg INPUTPATH for future
338 riscos compatibility.
340 2006-04-18 Werner Koch <wk@g10code.com>
342 * libjnlib-config.h (JNLIB_NEED_UTF8CONF): Defined.
343 * strlist.c (add_to_strlist2) [JNLIB_NEED_UTF8CONV]: Enabled.
345 2005-06-15 Werner Koch <wk@g10code.com>
347 * stringhelp.c (sanitize_buffer): Make P a void*.
348 (ascii_memistr, memistr): Ditto.
349 (ascii_memcasecmp): Ditto.
350 * logging.c (writen): Use void * for arg BUFFER.
351 * stringhelp.c (memistr): Fixed unsigned/signed pointer conflict.
352 (ascii_memistr): Ditto.
353 (ascii_memcasemem): Ditto.
354 * utf8conv.c (utf8_to_native): Ditto.
355 (utf8_to_native): Ditto.
356 * argparse.c (show_version): Removed non-required cast.
358 2005-01-19 Werner Koch <wk@g10code.com>
360 * logging.c (fun_writer): Don't fallback to stderr. Print to
361 stderr only if connected to a tty.
363 2004-12-20 Werner Koch <wk@g10code.com>
365 * w32-pth.c (do_pth_event_free): The events are hold in a ring
366 buffer. Adjust for that.
367 (do_pth_event_body): Ditto.
368 (pth_event_isolate): Ditto.
369 (do_pth_wait): Ditto.
370 (_pth_event_count): Renamed to ..
371 (event_count): .. and adjusted as above.
372 (pth_init): Define 3 debug levels and change all debug calls to
373 make use of them. This makes the moule now silent.
375 2004-12-19 Werner Koch <wk@g10code.com>
377 * w32-pth.c (pth_init): Enable debugging depending on env var.
379 (pth_mutex_release, pth_mutex_acquire): Implemented directly using
382 2004-12-18 Werner Koch <wk@g10code.com>
384 * w32-pth.c (pth_init): Reverse return values. Use TRUE and FALSE
386 (pth_kill, pth_mutex_acquire, pth_attr_set, pth_join, pth_cancel):
389 2004-12-15 Werner Koch <wk@g10code.com>
391 * logging.c [W32]: Don't include unavailable headers.
393 2004-12-14 Werner Koch <wk@g10code.com>
395 * w32-pth.c (_pth_strerror): Renamed to ...
396 (w32_strerror): .. this. And let callers provide a buffer.
397 (spawn_helper_thread): Removed HD arg and hardwire the stack size
399 (do_pth_wait): Removed use of ATTR; not needed for the helper
401 (helper_thread): Renamed to ..
402 (launch_thread): .. this. Release handle if not joinable.
403 (struct pth_priv_hd_s): Renamed to ...
404 (struct thread_info_s): .. this. Add member JOINABLE and TH.
406 2004-12-14 Timo Schulz <twoaday@g10code.com>
408 * w32-pth.c (pth_kill): Just release the crit section if
409 pth_init was really called. And set all handles to NULL.
410 (_pth_strerror): New.
411 (do_pth_wait): Before we enter the loop we check if there
412 are too much events in the ring.
414 2004-12-14 Werner Koch <wk@g10code.com>
416 * w32-pth.h (pth_event_occured): Removed macro.
417 * w32-pth.c: Fixed license statement; its under the LGPL.
418 (enter_pth, leave_pth): Use them to bracket almost all public
421 2004-12-13 Timo Schulz <twoaday@g10code.com>
423 * w32-pth.c (enter_pth, leave_pth): New.
424 (pth_init): Initialize global mutex section.
425 (pth_kill): Release global mutex section.
426 (helper_thread): New.
427 (pth_spawn): Make sure only one thread is running.
429 2004-12-13 Werner Koch <wk@g10code.com>
431 * stringhelp.c (w32_strerror) [W32]: New.
433 * w32-pth.c, w32-pth.h: Added real code written by Timo Schulz.
434 Not finished, though.
436 2004-12-07 Werner Koch <wk@g10code.com>
438 * w32-pth.c, w32-pth.h: New.
440 2004-11-26 Werner Koch <wk@g10code.com>
442 * logging.c [_WIN32]: Don't include socket headers.
444 2004-11-30 Timo Schulz <ts@g10code.com>
446 * w32-afunix.c: New. AF_UNIX emulation for W32.
447 * w32-afunix.h: Likewise.
449 2004-11-22 Werner Koch <wk@g10code.com>
451 * logging.c (log_test_fd): Add test on LOGSTREAM. Reported by
454 2004-11-18 Werner Koch <wk@g10code.com>
456 * logging.c: Explicitly include sys/stat.h for the S_I* constants.
458 2004-10-21 Werner Koch <wk@g10code.com>
460 * logging.c (do_logv): Use set_log_stream to setup a default.
461 (log_set_file): Factored code out to ..
462 (set_file_fd): .. New function to allow using a file descriptor.
463 (log_set_fd): Make use of new fucntion.
464 (fun_writer): Reworked.
466 2004-08-18 Werner Koch <wk@g10code.de>
468 * stringhelp.c (print_sanitized_utf8_string): Actually implement
471 2004-06-21 Werner Koch <wk@g10code.com>
473 * logging.c (log_set_file): Do not close an old logstream if it
474 used to be stderr or stdout.
476 2004-05-05 Werner Koch <wk@gnupg.org>
478 * logging.c (log_set_file): Oops, don't close if LOGSTREAM is NULL.
480 2004-04-30 Werner Koch <wk@gnupg.org>
482 * logging.c (log_set_file): Make sure the log stream will be
483 closed even if the stderr fileno will be assigned to a new socket.
485 2004-04-16 Werner Koch <wk@gnupg.org>
487 * logging.h (JNLIB_LOG_WITH_PREFIX): Add constants for the flag
489 * logging.c (log_set_prefix): New flag DETACHED.
490 (fun_writer): Take care of this flag.
493 2004-02-18 Werner Koch <wk@gnupg.org>
495 * stringhelp.c (print_sanitized_buffer): Don't care about
496 non-ASCII characaters.
497 (sanitize_buffer): Ditto.
499 2004-02-12 Werner Koch <wk@gnupg.org>
501 * Makefile.am: Replaced INCLUDES by AM_CPPFLAGS.
503 2004-01-05 Werner Koch <wk@gnupg.org>
505 * argparse.c (strusage): Changed default copyright year to 2004.
507 2003-12-17 Werner Koch <wk@gnupg.org>
509 * argparse.c (initialize): Replaced use of non-literal format
510 args. Suggested by Florian Weimer.
512 2003-12-16 Werner Koch <wk@gnupg.org>
514 * logging.c (writen, fun_writer, fun_closer): New.
515 (log_set_file): Add feature to log to a socket.
516 (log_set_file, do_logv): Force printing with prefix and pid.
518 2003-11-13 Werner Koch <wk@gnupg.org>
520 * strlist.c (strlist_copy): New.
522 * dotlock.c: Define DIRSEP_C et al. if not defined.
524 2003-11-06 Werner Koch <wk@gnupg.org>
526 * strlist.h (strlist_t): New. STRLIST is now deprecated.
528 2003-06-18 Werner Koch <wk@gnupg.org>
530 * strlist.c (strlist_pop): New.
532 * dotlock.c (dotlock_remove_lockfiles): Prefixed with dotlock_ and
535 2003-06-17 Werner Koch <wk@gnupg.org>
537 * stringhelp.c (length_sans_trailing_chars)
538 (length_sans_trailing_ws): New.
540 * logging.c (log_inc_errorcount): New.
542 * stringhelp.c (print_sanitized_utf8_buffer): Implement utf8
544 (sanitize_buffer): New. Based on gnupg 1.3.2 make_printable_string.
546 * dotlock.c: Updated to match the version from 1.3.2
547 * utf8conv.c: New. Code taken from strgutil.c of gnupg 1.3.2.
550 2003-06-16 Werner Koch <wk@gnupg.org>
552 * logging.c (do_logv): Hack to optionally suppress a leading space.
554 * stringhelp.c (ascii_strncasecmp): New. Taken from gnupg 1.3.
555 (ascii_memistr): New. Taken from gnupg 1.3
557 2003-06-13 Werner Koch <wk@gnupg.org>
559 * mischelp.h (wipememory2,wipememory): New. Taken from GnuPG 1.3.2.
561 2002-06-04 Werner Koch <wk@gnupg.org>
563 * stringhelp.c (print_sanitized_utf8_string): New. No real
564 implementation for now.
565 (print_sanitized_utf8_buffer): Ditto.
567 2002-04-04 Werner Koch <wk@gnupg.org>
569 * logging.c (log_get_prefix): New.
571 2002-03-15 Werner Koch <wk@gnupg.org>
573 * argparse.c (optfile_parse): Fixed missing argument handling.
575 2002-02-25 Werner Koch <wk@gnupg.org>
577 * stringhelp.c (ascii_memcasemem): New.
579 2002-02-14 Werner Koch <wk@gnupg.org>
581 * Makefile.am (INCLUDES): Add cflags for libgcrypt.
583 2002-02-07 Werner Koch <wk@gnupg.org>
585 * logging.c (log_set_fd): New.
587 * stringhelp.c (print_sanitized_buffer): New.
588 (print_sanitized_string): New.
590 2002-01-24 Werner Koch <wk@gnupg.org>
592 * argparse.c (strusage): Set default copyright notice year to 2002.
594 Fixed the copyright notice of this file, as it has always been
595 part of GnuPG and therefore belongs to the FSF.
597 2001-11-01 Marcus Brinkmann <marcus@g10code.de>
599 * logging.c (log_printf): Do not initialize ARG_PTR with 0, we
600 don't know the correct type. Instead, run va_start and va_end
602 Reported by Jose Carlos Garcia Sogo <jsogo@debian.org>.
604 2002-01-19 Werner Koch <wk@gnupg.org>
606 * logging.c (log_get_stream): New.
608 2001-12-05 Werner Koch <wk@gnupg.org>
610 * logging.c (log_set_prefix): New.
611 (do_logv): Include prefix and pid only if enabled. Print time only
612 when explicitly enabled.
614 * logging.h: Include log_logv() only when requested.
616 2001-11-06 Werner Koch <wk@gnupg.org>
618 * strlist.c, strlist.h: New. Taken from pgnupg/util/strgutil.c
620 2001-08-30 Werner Koch <wk@gnupg.org>
622 * logging.c (log_printf): Don't pass NULL instead of arg_ptr.
624 2001-07-19 Werner Koch <wk@gnupg.org>
626 * stringhelp.c (ascii_memistr,ascii_isupper,ascii_islower,
627 ascii_toupper,ascii_tolower, ascii_strcasecmp, ascii_memcasecmp): New.
629 2000-07-26 10:02:51 Werner Koch (wk@habibti.openit.de)
631 * stringhelp.c.: Add stdarg.h
632 * argparse.h: s/ulong/unsigned long/ although this should be defined
635 2000-06-28 19:40:23 Werner Koch (wk@habibti.openit.de)
637 * Makefile.am: Replaced second logging.c by .h
639 2000-05-24 08:58:15 Werner Koch (wk@habibti.openit.de)
641 * logging.c (log_get_errorcount): New.
643 2000-05-24 08:44:47 Werner Koch (wk@habibti.openit.de)
645 * stringhelp.c: Added a few filename related helper functions.
647 2000-05-11 18:04:43 Werner Koch (wk@habibti.openit.de)
649 * xmalloc.c (xstrcat2): Replaced stpcpy to quickly address W32
652 2000-05-02 19:43:38 Werner Koch (wk@habibti.openit.de)
654 * xmalloc.c (xstrcat2): New.
656 Mon Jan 24 13:04:28 CET 2000 Werner Koch <wk@gnupg.de>
660 * argparse.c, argparse.h, logging.c, logging.h:
661 * mischelp.h, stringhelp.c, stringhelp.h, xmalloc.c:
662 * xmalloc.h, dotlock.c: Moved from ../util to here.
664 * libjnlib-config.h: New.
666 * logging.c (log_set_file): New.
668 (do_logv): Add kludge to insert LFs.
671 ***********************************************************
672 * Please note that JNLIB is maintained as part of GnuPG. *
673 * You may find it source-copied in other packages. *
674 ***********************************************************
676 Copyright 2000, 2001, 2002, 2003, 2004,
677 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
679 This file is free software; as a special exception the author gives
680 unlimited permission to copy and/or distribute it, with or without
681 modifications, as long as this notice is preserved.
683 This file is distributed in the hope that it will be useful, but
684 WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
685 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.