📄 changes.txt
字号:
Changes To Standard Function Library
'*' marks changes that potentially affect existing client code.
12 Apr 1999
SFLDIR
* resolve_path() now returns a dynamically-allocated string.
* locate_path() now returns a dynamically-allocated string.
02 Nov 1998
SFLTREE
- bug in tree handling was fixed. :)
15 Jun 1998
SFLSTR
- xstrcpy now permits memory leak debugging through xstrcpy_debug()
macro
01 Jun 1998
SFLFILE
- new function, file_concat().
31 May 1998
SFLLANG
- new function, timestamp_string().
01 May 1998
SFLSTR
SFLHTTP
- various new functions provided by Scott Beasly
06 Apr 1998
SFLXML
- new library function that handles XML files
SFLMAIL
- new library function to send emails (uses sflcbox for now)
SFLCBOX
- temporary home for various functions used by sflmail.
27 Mar 1998
Various
- tightened-up use of vsprintf to use vsnprintf where possible
21 Mar 1998
SFLTOK
- tok_subst () handles symbol substitution
SFLINI
- ini_dyn_load () calls tok_subst() for all value strings
12 Mar 1998
SFLSOCK
- connects are now non-blocking unless BLOCKING_CONNECT is defined.
11 Feb 1998
SFLCONS
- New function, coputc().
26 Dec 1997
SFLSOCK
- New functions to access DNS information: get_host_file(),
get_name_server().
SFLEXDR
- EXDR format extended to handle 'huge' memory blocks (32-bit size)
26 Nov 1997
SFLTREE
- New source module handles red-black trees.
09 Nov 1997
SFLPROC
SFLFILE
- OS/2 process support rewritten
SFLFILE
- new function: strip_file_name()
22 Oct 1997
SFLMEM
- mem_assert now writes to memtrace.lst instead of stderr.
02 Oct 1997
SFLSTR
- new function, lexwcmp() does wildcarded lexical comparisons.
29 Sep 1997
SFLSOCK
- ip_passive allows passive sockets to be created on specific IP
address.
SFLPROC
- Executable scripts starting with #! can now contain arguments
after the filename.
SFLFIND
- txtfind looped if search string contain accented characters.
10 Sep 1997
SFLSOCK
- get_hostaddr, get_hostaddrs return addresses in network order
- new function, get_hostaddrs() returns all host IP address
* get_host_name() renamed to get_hostname() for consistency
----------- Released version 1.70
24 Aug 1997
SFLSOCK
- socket_is_permitted() now accepts a multi-pattern mask
22 Aug 1997
PRELUDE.H
- Bool changed from int to short int, to match sflexdr.
21 Aug 1997
SFLSOCK
- passive_TCP() accepts a service "0", if ip_portbase is > 0.
18 Aug 1997
SFLFILE
- get_file_size() returns -1 on error conditions.
15 Aug 1997
SFLINI
- ini_dyn_save() did not handle files with no headers.
06 Aug 1997
SFLCVSD
- Did not reject dates containing only letters
03 Aug 1997
SFLFILE
- New function: file_lines ()
02 Aug 1997
SFLINI
- When loading ini file, any line starting with '!' is passed to
trace(); this is meant to help debug complex config setups.
23 Jul 1997
SFLHTTP
- New functions: http_encode_meta() and http_decode_meta()
07 Jul 1997
SFLSTR
- New function: strprefixed()
SFLFILE
- file_has_changed() did not work correctly.
SFLSYMB
- New function: sym_empty_table()
SFLINI
- New function: ini_dyn_refresh()
06 Jul 1997
SFLSTR
- New function: strunique()
29 Jun 1997
SFLPROC
- process_create() failed if workdir was specified, and executable
had a relative filename (e.g. ./myfile).
SFLSOCK
- new function, get_hostaddr() returns first host IP address
22 Jun 1997
SFLSYMB
* sym_delete_symbol() no longer frees 'data' pointer; this was too
dangerous.
SFLMEM
- error messages sent to sflcons console instead of stderr
- if mem_display() argument is NULL, sends to console
20 June 1997
SFLSYST
- sys_name() reports name of platform.
----------- Released version 1.60
18 Jun 1997
SFLFILE
- file_slurp() loads an entire file into memory. (Thanks, Larry)
16 Jun 1997
SFLSOCK
- new function, socket_is_permitted() compares IP address with mask
13 Jun 1997
SFLEXDR
- exdr_write() failed if "c" or "b" format was used with NULL buffer
SFLFILE
- minor improvements to file_where()
SFLSTR
- strhash() had a fatal error which caused it to loop indefinitely.
11 Jun 1997
SFLSTR
- new function, strdefix() matches prefix in string.
SFLSOCK
- new function, socket_nodelay() disables Nagle's algorithm
- connect_error_value always reset to IP_NOERROR if success
09 Jun 1997
SFLINI
- ini_dyn_load() searches PATH for its input files.
04 Jun 1997
SFLLANG
- started work on this new multilanguage facility.
02 Jun 1997
SFLPROC
- no longer truncates stdout file; must be done by calling process.
SFLSOCK
- minor corrections
- socket_hostaddr() renamed to socket_remoteaddr(); old name still
supported through a macro
- socket_localaddr() added as new function
SFLFILE
- is_directory() correctly handles "c:" under MS-DOS/OS2/Windows
----------- Released version 1.50, again...
25 May 1997
SFLDATE
- date_to_timer() now adjusts for timezone
22 May 1997
SFLCONS: new module
SFLDATE
- corrected handling of year for post-2000 dates
SFLDIR
- corrected handling of year for post-2000 dates
SFLTRON
- corrected handling of year for post-2000 dates
18 May 1997
SFLEXDR
- corrected possible memory corruption in exdr_read(), which sometimes
allocated block of zero bytes.
16 May 1997
SFLMEM
- mem_scavenger() function added
- tracing now uses sfltron functions
- mem_alloc() handles allocation of zero bytes better
* - mem_strfree() returns void
15 May 1997
SFLMEM
- added mem_checkall() function and macro; checks all allocated blocks
14 May 1997
SFLINI
- recognises name="" as empty value, as documented.
13 May 1997
SFLMEM
- Added mem_descr() function: allocates a new DESCR block.
SFLINI
- ini_dyn_load() also loads section names into symbol table.
- ini_dyn_value() slightly improved.
11 May 1997
SFLFILE
- file_is_readable(), file_is_writable(), file_is_directory() will
accept a filename ending in '/' or '\'.
10 May 1997
SFLPROC
- process_alarm() improved under Windows; ensures only one timer is
active at once. Otherwise timers can pile-up, and finally fail.
09 May 1997
SFLSOCK
- New function sock_select() implements select() call
SFLDATE
- Under Win32, get_time() resolution improved from 1s to 1/100s
08 May 1997
SFLDATE
- added date_is_past(), date_is_present() functions
05 May 1997
SFLSOCK
- address_end_point() and connection functions now use ip_portbase.
04 May 1997
PRELUDE.H
- environ was wrongly defined as **environ[] (should be *environ[]).
SFLDIR
- resolve_path() improved to handle '...' and such.
02 May 1997
SFLEXDR
- Recorrected change of 16 Feb. which had somehow gotten lost.
All stacked arguments are assumed to be at least an 'int' big.
----------- Released version 1.50
27 Apr 1997
SFLFILE, SFLPROC
- Space optional after #! header in executable scripts.
25 Apr 1997
SFLPROC
- process_timer() now works in 16-bit Windows programs.
22 Apr 1997
SFLPROC
- process_create() support for 16-bit programs under 32-bit Windows
- process_esc(), process_unesc() support directory names with spaces
SFLFILE
- New function: file_exec_name()
20 Apr 1997
SFLCVNS
- conv_number_string() accepts "" as zero value.
- flags argument type changed from 'int' to 'word'
SFLCVSN
- flags argument type changed from 'int' to 'word'
SFLCVDS
- flags argument type changed from 'int' to 'word'
SFLCVSD
- flags argument type changed from 'int' to 'word'
SFLCVTS
- flags argument type changed from 'int' to 'word'
15 Apr 1997
SFLDIR
- file_matches() added
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -