0.8.5 alpha (net) ipv4addr,ipv4lookup: make prefix signed in some cases (ctools) added intrangegnu command to show effect of _GNU_SOURCE (ftr) fix up comments in rls program (ftr) add file blocks option to rls program (ctools) improve documentation for foreach and foreachstr macros (vrb) finish option to vbuf for progress display in octal base (vrb) add options to vbuf for append, direct I/O, and sync I/O (io) in ft_copy: more emphasis that it is not pthreads compatible (list) tweak some comments, including 2 warnings and a note (map) changing paths in shell file to generate map code (map) comment typo fixes (div) change divdtest program to show both types of division (*) configure: removed -fmove-all-movables (*) configure: removed -I option now not supported in gcc (time) timecalc: change the result time to unsigned (string) many string type changes away from unsigned (net) cast data pointer for map insert/store calls (net) change some char* vars from unsigned to default (net) in hbo_to_sockaddr_in: initialize socket addresses (net) change some vars used for IP addresses to unsigned (misc) in tcprelay: change some char types from unsigned to default (io) cast va_arg() to (void) in link_join() (io) in put_config_map: cast return from key_ptr and fetch_ptr (io) in get_config_map: cast data pointer for map insert/store (cgi) removed wrong unsigned cast in cgi_form_parse() (angif) added casts to usage of angif_write() for 2nd argument (string) tweak some comments (string) str_app_rep() did not terminate result string (string) str_app_str() did not terminate result string 0.8.4 alpha (http) removed redundant NULL in call to http_header() from http_error.c (http) add cast in macros passing NULL to variable argument list (ftr) many changes to rls example program (*) configure: added option --static-libgcc for gcc option -static-libgcc (*) configure: removed -frerun-loop-opt from gcc options (string) fix function name in macros str_cpy_arg_sep, str_cpy_arr, str_cpy_arg (io) added ft_copy function and test_ft_copy program (ctools) added foreach and foreachstr macros for loop control (*) removed -fgnu-linker from configure (string) fixed function name in str_cpy_arg, str_cpy_arg_sep, str_cpy_arr 0.8.3 alpha (ftr) added the rls program to demo ftr (io) changed variable name in many macros to use libh__ prefix (arith) added zoom_scan/zoom_calc functions (ctools) added decimal.h to calculate decimal digits (string) removed macros from string_header.h for decimal digits (misc) tcprelay options for separate send/recv buffer sizes (ctools) added functions to fetch environment values with defaults (*) fixed configure leaving an extra "O" when using "-O" [Székelyi Szabolcs] (ftr) fix spelling error in message in ftrcount (string) make override of str_to_ld work right (string) more aliases for string to number conversion functions (string) str_expr_to_si and str_expr_to_ui become separate functions (libh) added -std=gnu99 to configure script (time) minor comment documentation format changes (arith) functions zoom_calc_[l]d and zoom_scan_[l]d added (arith) added rescale_mpf() and rescale0_mpf() macros (arith) document improvements to rescale 0.8.2 alpha (ftr) added ftr_skip_dir() to skip current directory (ftr) added ftr_get_parent() which leaves CWD at file's parent (ctools) added max() and min() (ctools) added strict type checking to swap() (ftr) added multi name in one file tree recursion (ftr) ftr_new_cmp() goes away - use new ftr_set_cmp() (io) rename file get_line.c to get_line_file.c (io) rename function skip_line() to skip_line_file() 0.8.1 alpha (bit) new general type macro low_bits_on() (ctools) new general type macro swap() (io) new macros eput_dirfd() and eput_cwd() (io) new macros put_dirfd() and put_cwd() (io) new functions fput_dirfd() and fput_cwd() (ftr) ftr_get() no longer changes directory - use ftr_chdir_full() (ftr) major re-write of ftr_new() and ftr_get() (io) macros eput_byte_xx, put_byte_xx, had wrong arguments (io) macros eput_byte, put_byte, had wrong arguments (ftr) add macro to code a typical while loop (ftr) add macro to fetch file type (ftr) add macros to fetch depth, and set and fetch max depth 0.8.0 alpha (vio) removed vio section - no further development (bit) new macros low_bits_on_u32 low_bits_on_u64 low_bits_on_u128 (bit) new macros low_bits_on_ui, low_bits_on_ul, low_bits_on_ull (angif) Change functions to make LIBH not depend on libhm (arith) add pix_rgb5_ftoi() and pix_rgb10_ftoi() macros (arith) rewrite pix_rgb4_ftoi() and pix_rgb8_ftoi() into macros (arith) rewrite pix_itof() into a macro, with pix_itof_base() (string) Change functions to make LIBH not depend on libm (io) Change functions to make LIBH not depend on libdl (string) split functions comment improvements (string) split functions setting sep strings now set flags right (string) split functions that duplicate data/sep strings now reset state (time) add format %t for system time in decimal (callsign) split world callsign functions from ctools (ctools) added macros int_max(), int_min() (ctools) added macros sint_max(), sint_min(), uint_max(), uint_min() (ctools) added macros type_bits(), int_is_signed(), int_is_unsigned() (time) added timecalc example program (time) add format %y for year modulo 100 as in strftime() (time) change %D format to be like %j in strftime() (string) correct function name in example in string_header.h (string) add #include to string_header.h for ssize_t 0.7.8 alpha (io) name2 uninitialized in link_join.c 0.7.7 alpha (io) added link_join() [note to self: some rewrite still needed] (io) change stat_buf to __stat_buf__ in 49 "stat" .h files (string) fixed a sizeof reference to a type to use () (string) added missing __FMACRO_END__ to str_tail.h, str_tail_one.h (vrb) fixed buffer size calculation in vbuf sample program (vrb) buffer occupancy status display now sized to buffer capacity (byte) changed && that should be & in 12 macros (ftr) change [] to [1] for older compilers (ftr) use offsetof instead of sizeof for [] change (misc) corrected handling of errors from poll() in tcprelay.c (misc) added setreuid/setregid support to tcprelay.c (map) updated generator scripts to use #!/usr/bin/env bash (*) updated configure script to use #!/usr/bin/env bash 0.7.6 alpha (ftr) add functions ftr_new, ftr_get, ftr_end (ftr) add new section for file tree recursion functions (byte) add various integer to N bytes storing functions (byte) move byte overlap struct definitions from "bit" section (byte) add new section for byte data manipulation (arith) added rescale0 macro to optimize certain cases (net) added ipv4addrv6 command (IPv4 in IPv6 output) (io) correct [ef]put_bytes_* octal conversion code (io) add [ef]put_bytes_str and [ef]put_bytes_str_xx macros configure script corrected for making parent directories (ctools) add zero_and_free macro (misc) add #include to tcprelay and tcprelayout programs 0.7.5 alpha (misc) overhaul tcprelay program (string) fix documentation in split.h (vrb) Changed vbuf program to use getopt() (vrb) Redesigned poll loop logic for vbuf program 0.7.4 alpha (io) added [ef]put_bytes_{len,end}_xx functions (net) added get_port_by_name() (time) corrected statement with no effect in current_timeus.h (misc) added tcprelay and tcprelayout programs (vrb) added vrb_empty function (string) cleaned unneeded #includes from some .h files (net) split 3 macros out of net_header.h (net) renamed ipv4_addr_in_cidr.c to ipv4_addr_in_cidr.h (net) added macros to construct struct sockaddr_in[6] (option) removed the "option" section of code (for now) (io) make_parent_dir tested S_ISDIR even if mkdir called (time) added some current_strftime_*.h macros 0.7.3 alpha (time) tweaked ecal_to_etime for some old gcc version problems (CONFIG) added another newline after __PROTO_END__ (time) more overhauling of the time section (string) mem_dup_ptr_ptr changed from .c to .h macro only (string) added str_tail_one for a shorter version of str_tail (string) str_tail changed from .c function to .h macro (time) [d]hms_to_* functions split out to individual .h files (div) rename dn_quo to quo_ni, dn_mod to mod_ni (time) re-organized functions that convert to ymd and hms (net) rephrased comments in ipv4_addr_in_cidr_count_arg (vrb) cleaned up dead code in vrb_take (time) add range tests to ecal_to_etime (time) doy_to_dom, doy_to_mon: fixed test for days in non-leap year (*) obscured email addresses from spammers w/o changing file dates 0.7.2 alpha (time) added macros hmsu_to_msec and dhmsu_to_msec (time) added macros hmsn_to_msec and dhmsn_to_msec (time) added macros hmsm_to_usec and dhmsm_to_usec (time) added macros hmsn_to_usec and dhmsn_to_usec (time) added macros hmsm_to_nsec and dhmsm_to_nsec (time) added macros hmsu_to_nsec and dhmsu_to_nsec (div) change names of macro statement expression temp variables (div) fix extreme negative divident error in dn_quo (div) split macros from div_header to individual files (div) rename quo to dn_quo, mod to dn_mod (time) corrected macros hmsm_to_msec, hmsu_to_usec, hmsn_to_nsec (time) fixed incorrect fraction formatting in etime_to_str_app (time) cleaned up jymd_to_eday (time) rewrote gymd_to_eday to use table lookup (misc) Changed variable names in crosslink.c to avoid collision with glibc 2.3.2 (time) added functions to convert uniform calendar strings (arith) convert gcd, ipow and rescale to statement expression macros (arith) renmae pow_* functions to ipow_* 0.7.1 alpha (string) added new split functions other modification notes for this version were lost during an update [I accidentally wrote over them when trying to make a backup] 0.7.0 alpha (bit) changed functions to macro only (string) rewrote the string split functions (*) removed leading underscore from function names documentation spelling errors corrected (tp76) (string) move sep functions from internal to separate files (avl) split more functions into separate files (string) changed select function names to match scheme of others (io) new functions for forking and forking/execing with pipes (io) added close_all functions (string) corrected example documentation error in select functions (string) some split functions did not scan over part terminations made -Winline a configure option, not default (angif) added pnmtogif sample program (daemon) corrected handling of truncations from [v]snprintf 0.6.36 alpha changed many constants to have [U]INTxx_C style macros (time) changed 2nd TIMEUS_C to TIMENS_C in time_header.h Removed inline from several functions due to gcc 3.3 Changed configure script to use -std="" by default (map) removed some lame generated source files added to various section headers (avl) added to avl_print.c [cs] (angif) angif_linear_to_code changed to not inline 0.6.35 alpha Fixed cc options variable in configure script Changed configure script to use -std=gnu99 by default Added option --std= option to configure script (string) fixed pointers in spliturl program (misc) crosslink displayed wrong file name, fixed 0.6.34 alpha (cgi) renamed cgiform section to just cgi (cgi) renames cgiform* functions to cgi_form* (cgi) added cgi_is_nph function (http) added new http function section for HTTP support (io) fixed incorrect variable arg macros for readlink functions (io) added new functions fput_bytes_len, fput_bytes_end, fput_byte (string) corrected end iof substring test in str_split_*_in functions (string) added new functions str_app_escape and str_cpy_escape (string) changed argument order in str_*_select* functions 0.6.33 alpha (ctools) Add warning to pick_* functions (cgiform) Change comments on cgiform/src/cgi/test.c (cgiform) Rename test.cgi.c to test.c in cgiform/src/cgi Fix configure to compile in same directory as source 0.6.32 alpha (time) removed unneeded floorl() from 5 functions (time) removed unneeded floor() from 1 function Modified configure script to generate fewer mkdir commands (io) removed unused reference to map.h (string) added str_eq_opt function and related macros 0.6.31 alpha (debug,trace) removed old fixed argment macros (io) increased buffer size in sub_copy_map() (io) added setting functions to msg_vfprintf.c (string) changed some common functions from macro to inline 0.6.30 alpha (arith) Changed macro variable names in arith_header.h (bit) Cleaned up some bit functions (ctools) Removed old msg functions (new ones in io section) (io) Added macros for print and return function (io) (map) Split map_misc.c into separate files per function