⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 changes.txt

📁 短小精悍的C语言标准函数库。提供450个以上的可移植的算法和工具代码。
💻 TXT
📖 第 1 页 / 共 2 页
字号:
    SFLFILE
      - file_rename(), file_delete() added
    SFLDATE
      - future_date() and past_date() accept zero date/time meaning NOW.
      - bug in timer_to_date() returned incorrect month - fixed.

13 Apr 1997
    SFLCVSD
      - conv_string_date() corrected to handle empty dates.
    SFLSYST
      - New module: sflsyst.c contains assertion code.
      - Assertion logic in prelude.h changed a little.
    SFLFILE
      - Fixed some problems in file_where().

08 Apr 1997
    SFLFILE
      - default_extension() and fixed_extension() return char * instead of int.
      - file_is_executable() no longer returns TRUE for directories.
      - file_is_program() searches path for executable program.

07 Apr 1997
    SFLPROC
      - process_create() no longer truncates stdout/stderr files..

04 Apr 1997
    SFLSTR
      - Added soundexn() function.

01 Apr 1997
    SFLSYMB
      - Added sym_sort_table() function.

31 Mar 1997
    SFLFILE
      - Fixed error in file_where() which prefixed current directory when
        locating file.

----------- Released version 1.45

20 Mar 1997
    SFLFILE
      - file_where() returns complete pathname for file on input.

18 Mar 1997
    SFLSOCK
      - does not reuse server socket addresses under Windows

16 Mar 1997
    SFLDIR
      - added get_curdir() and set_curdir () functions.

15 Mar 1997
    SFLPROC
      - added process_alarm() function, also for Windows (requires MM)
      - uses #pragma to include WINMM.LIB automatically
    SFLSOCK
      - uses #pragma to include WSOCK32.LIB automatically

14 Mar 1997
    SFLFILE
      * file_cycle() extended to do conditional file cycling.
      - file_cycle_needed () added as new function.
    SFLCOMP
      - Fixed bus error problems.
    SFLINI
      - ini_dyn_load() and ini_dyn_save() to manage ini files as symbol tables.
      - ini_dyn_value() to get value of keyword in section as string.
      - ini_dyn_values() to get value of keyword in section as strt.
    SFLSYMB
      - sym_delete_table() allowed on null argument.

13 Mar 1997
    SFLMEM
      - tag_error no longer dumps all allocated memory blocks (too verbose).
    SFLSTR
      - xstrcpy now allocates a destination buffer if necessary.

12 Mar 1997
      - SFL functions use 'const' for all constant pointers.

11 Mar 1997
   *SFLSOCK
      - init_sockets, term_sockets macros removed.
    SFLFILE
      - file_open() calls safe_to_extend for append mode.

08 Mar 1997
    SFLMEM
      - New functions, mem_commit() and mem_rollback.
   *SFLEXDR
      - exdr_read() returns 0 if okay, -1 if error.

05 Mar 1997
    SFLFILE
      - file_is_executable() opens file and looks for #!<space> under
        WinDOS, OS/2.
    SFLPROC
      - process_create adds interpreter name (#! xx) under WinDOS, OS/2
    SFLTOK
      - tok_push() function added.

24 Feb 1997
    SFLPROC, SFLSOCK, PRELUDE, c
      - Changes for SCO UnixWare and SCO OpenServer R5

18 Feb 1997
    SFLFIND
      - Fixed a bug in txtfind(): comparisons did not always work.

----------- Released version 1.42

16 Feb 1997
    SFLEXDR
      - Corrected error in sflexdr.c which caused problems on some UNIX
        systems (much thanks to John Klassa.)

10 Feb 1997
    SFLSOCK
      - Listener sockets did not use SO_REUSEADDR correctly; fixed.

20 Jan 1997
    SFLSYMB
      - symb2strt(), strs2symb(), symb2descr(), descr2symb() return NULL if
        input argument is null.
    SFLENV
      * symb2env() converts variable names to uppercase, replaces non-
        alphanumerics by underlines.
    SFLHTTP
      * cgi_query_to_symb() renamed cgi_parse_query_vars(), new arguments.
      * file_cgi_query_to_symb() renamed cgi_parse_file_vars(), new args.
      - http_query2strt(), http_query2symb(), http_query2descr() functions
        added.

19 Jan 1997
    SFLSTR
      * strescape(), strunescape() removed from this file.
    SFLHTTP
      * sflcgi renamed to sflhttp, for general HTTP+CGI functions.
      * http_escape(), http_escape_size(), http_unescape() functions added.
    SFLFIND
      - added txtfind() that does case-insensitive search.

06 Jan 1997
    SFLDIR
      - Added resolve_path() function.

02 Jan 1997
    Various
      - Ewen McNeill started port of SFL to OS/2.  Main changes in SFLDIR,
        SFLSOCK, SFLPROC.

13 Dec 1996
    SFLFILE
      - New function, file_cycle(), mainly for log files.

23 Nov 1996
    SFLSERV:
      * server_init() is gone, replaced by process_server() in SFLPROC.

13 Nov 1996:
    SFLSOCK:
      * SOCKET renamed to sock_t; all sflsock functions use sock_t as
        the type of a socket handle.  This change was provoked by 16-bit
        Windows, which defines SOCKET as a 16-bit value... :-(

11 Nov 1996
    SFLFILE:
      - file_is_executable() checks for MS-DOS executable files.

26 Oct 1996:
    SFLSTR:
      - New function strt2desc() converts array of strings to DESCR block.
      - New function desc2strt() converts DESCR block to array of strings.
      - New function strtfree() frees memory used by a string table.
    SFLSYMB:
      - New function sym_tables_merge() merges two symbol tables.
      - New function sym2strt() converts symbol table to array of strings.
      - New function strt2sym() converts array of strings to symbol table.
      - New function sym2descr() converts symbol table to DESCR block.
      - New function descr2sym() converts DESCR block to symbol table.
    SFLENV:
      - New function env2desc() converts environment to a DESCR block.
      - New function env2symb() converts environment to symbol table.
      - New function desc2env() converts a DESCR block to environment.
        -- identical to desc2strt().
      - New function symb2env() converts symbol table to environment.
        -- identical to symb2strt().
    SFLPROC:
      - process_create() correctly handles environment under Windows.

25 Oct 1996
    SFLINI:
      - Accepts # as well as ; as comment indicator in .ini file lines.

23 Oct 1996
    SFLPROC:
      * process_create() will call execve() under UNIX to pass exactly the
        specified environment block if supplied.  Otherwise (if the envv
        argument is null) it calls execvp() and passes the parent environment.

15 Oct 1996:
    SFLPROC:
      * process_create() returns 0 instead of -1 in case of an error.
        This is for compatability between various systems.

08 Oct 1996
    SFLPROC:
      - Added code to create processes under Windows 95 and NT.
      - New function, process_close(), should be called when a process
        has finished normally, unless wait is specified during create.

06 Oct 1996
    SFLSLOT:
      - Corrected erroneous assertion in day_slot_filled().

    SFLPROC:
      - process_create uses a global variable, process_delay, to control
        its sleep time when creating a child process.  If this is 0, it
        will not sleep at all.  Its default value is 1000.

30 Sep 1996
    SFLSLOT:
      * Range arguments all changed to byte *.

12 Sep 1996
    SFLFILE:
      - New function; file_locate(), combines file_where() and file_open()
        for reading files.

    SFLPROC:
      - Another new function: process_status() to return status of child
        process, running / stopped / interrupted.

10 Sep 1996

    SFLTOK:
      - New functions to break strings into tokens (words): tok_split()
        returns an array of words for a string; tok_free() frees such an
        array.

    SFLSOCK:
      - New function socket_error() returns the last error on a socket,
        then clears the error status.  Use this if you need to get the
        status of an asynchronous socket, for instance after a select().

    SFLPROC:
      - New functions to manage processes: process_create() creates a
        child process with a specific controlling terminal.  process_kill()
        kills a specified process.

    c
      - C command automatically inserts object into library if possible.

08 Sep 1996

    SFLINI:
      - corrected error in ini_find_section() which would find the wrong
        section in an .ini file.

    SFLEXDR:
      - exdr_write() accepts a null buffer address; this then calculates
        the final size without storing anything.

      * exdr_sizeof() has been killed, since the above call now does the
        same, and there is therefore less code to maintain.

      - exdr_writed() accepts a DESCR address instead of a plain buffer;
        the DESCR is length-specified, so if the buffer is too short, you
        get a nice abort instead of a memory overwrite.

      - exdr_read() accepts NULL as an argument address, meaning 'skip
        this argument'.  Useful to extract selected fields from a message.

24 Aug 1996

    SFLEXDR:
      - exdr_write() accepts NULL strings (stores as empty) and null
        memory descriptors (0, NULL).

    SFLSOCK:
      - build_sockaddr() builds a socket address structure from binary
        host and port numbers.

      - connect_socket() accepts an empty string for the service argument,
        equivalently as NULL, to mean: use the sockaddr_in argument for
        the connect address.

22 Aug 1996

    SFLEXDR:
      - exdr_sizeof() lets you precalculate the size of a message

21 Aug 1996

    SFLSOCK:
    * - connect_socket() has an extra argument, a struct sockaddr_in; if
        you supply this you connect without translating the host name and
        service.

        => Change all calls to connect_socket(); add NULL 4th argument.

      - get_peer_info() will return the sockaddr_in for a connected socket.

      - address_end_point() -- and all connect_ calls -- translated a host
        name specified as a dotted number.  Previously this did not work.

    SFLDIR:
    * - format_dir() has an extra argument to control addition of special
        characters such as '/' and '*' against file names.

        => Change all calls to format_dir(); add TRUE 2nd argument.

    SFLEXDR:
      - fixed error in exdr_read().

19 Aug 1996

    SFLSOCK:
      - connect_to_peer() lets you connect a socket to a specified address.
        If you combine create_socket() and connect_to_peer() you get much
        the same as connect_socket() specified with a struct sockaddr_in.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -