2026-10-31  Tim Musson  <trmusson@gmail.com>

    * xlist.c: Lists are now thread-safe.
    * xstring.[ch]: (xstring_insert_c, xstring_insert, xstring_prepend_c,
      xstring_prepend, xstring_cut): New functons.
    * Makefile, *.[ch]: Lots of misc tidying up and fixes.
    * x*.[ch]: Spaces, not TABs, consistently :P
    * xtest.h, xstr.c, xstring.c, xcsvio.c:
      Improved self-test system.

2025-08-20  Tim Musson  <trmusson@gmail.com>

    * xfile.[ch]: (xfile_make_tmpfile): New function.
    * xstr.[ch]: (xstr_split_keep_delim, xstr_is_integer): New functions.
    * xlist.[ch]: (xlist_append_str, xlist_get_str, xlist_append_int,
      xlist_get_int): New functions.
    * xcsvio.[ch]: (xcsv_is_stdio, xcsv_set_quoting): New functions.
    * xgetopt.[ch]: XGETOPT_ENABLE_OPT_STDIO, XGETOPT_STDIO: (xgetopt):
      Optional support for "-" to indicate a stdio stream.
 
2020-05-10  Tim Musson  <trmusson@gmail.com>

    * xstr.[ch] (xstr_contains_char, xstr_valid): New functions.

2020-05-09  Tim Musson  <trmusson@gmail.com>

    * xgetopt.[ch]: Added a compile-time option, XGETOPT_SENSITIVE. If it's
      TRUE, command line options are fully case sensitive. If it's FALSE (this
      is the default), only the first character of a short form option is case
      sensitive, and short and long forms can have separate minimum lengths.

2020-04-25  Tim Musson  <trmusson@gmail.com>

    * First public release.
    * xfile.c:
      (xfile_basename, xfile_dirname): Simplified; same behaviour.
      (xfile_test): Fixed a silly bit-test bug.
      (xfile_expand_tilde): Return NULL rather than exit if getenv fails.
      (xfile_expand_tilde): Renamed from xfile_expand.
      (xfile_get_cwd): Renamed from xfile_get_pwd.
    * x*.[ch]: TABs, not spaces, consistently.


-----

    Copyright (C) 2025, 2026 Timothy Richard Musson

    Copying and distribution of this file, with or without modification,
    are permitted provided the copyright notice and this notice are
    preserved.

