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

📄 changes.txt

📁 一个C格式的脚本处理函数库源代码,可让你的C程序具有执行C格式的脚本文件
💻 TXT
📖 第 1 页 / 共 5 页
字号:
     Changes since 0.99.181.  New intrinsic function: strcompress.  This collapses a string by removing    repeated characters.  For example,               define collapse (f)	   {	      while (str_replace (f, " ", ",")) f = ();	      return strcompress (f, ",");	   }           collapse (",  ,a b c ,,,d e,f  ");          returns: "a,b,c,d,e,f"    2.  QNX support added.  3.  New Functions (unix only): SLtt_tgetstr, SLtt_tgetnum, SLtt_tgetflag.4.  Fixed parsing of Octal and Hex numbers so that incorrect values are    flagged as errors.  Also, both lower and uppercase values may be used in    HEX numbers, e.g., 0xa == 0XA == 0Xa == 0xA.5.  MS-Windows support added.  Compile using makefile.msw.  This creates    `wslang.lib'.6.  New SLsmg functions:  SLsmg_get_row, SLsmg_get_column.  These return the    current position.Changes since 0.99.171.  I have added limited termcap support although slang is still a terminfo    based system.  The support is provided via the TERMCAP environment    variable.  If this variable exists and contains a termcap entry for which    there is no reference to another entry (via tc field), it will be used     to setup the terminal.   If the TERMCAP variable does not exist, or it     refers to a file, terminfo is used instead.  This is not really a    limitation since one can set this variable in a way that slang likes by    using `tset -s'.        The motivation for this support is two-fold:       a. Slang programs can now run inside the screen program which sets          the TERMCAP variable appropriately.       b. A user can now correct defective termcap entries (e.g., for Linux),          and have those corrections made available to slang via the `tset' 	  command, e.g., by putting something analogous to:	     	       setenv TERMCAP /corrected/termcap/file/absolute/path/name	       eval `tset -s terminal-name`	       	  in the .login file.       c. This also means that I can distribute corrected termcap entries for          common terminals.	  Changes since 0.99.161.  Inadequate terminfo entries for `linux' terminal are compensated for.2.  Terminals with the ``Magic cookie glitch'' are flagged as having an    unusable highlighting mode.changes since 0.99.151.  Better checking of parameters passed to search routines.2.  Problem with line drawing characters fixed.changes since 0.99.141.  Ran code through purify.  Fixed one problem reported in slkeymap.c2.  Fixed a bug in sldisply.c regarding mono-attributes.3.  Code ready for ELFchanges since 0.99.131.  SLtt_Has_Alt_Charset variable added to xterm.c.  This is motivated by the    sad, pathetic fact that although some termcap/terminfo databases suggest     that the terminal can do line drawing characters, the terminal cannot.2.  SLsmg_write_nstring function added.  This function may be used to write    only n characters of a string padding wit hblanks if necessary.3.  If the environment variable COLORTERM exist, SLtt_get_terminfo will set     SLtt_Use_Ansi_Colors to 1.4.  Sltt_set_cursor_visibility function added.  If passed a zero integer value,    the cursor is hidden; otherwise, it is made visible.    changes since 0.99.121.  SLsmg now uses the `te' and `ti' termcap entries if present.  Apparantly    some terminals need to be put in cursor addressing mode.  This also has    the effect of restoring the screen of the xterm to what it was before    the program was executed.2.  For some types of code, slang is 20% faster!  This is especially    noticeable for branching constructs inside tight loops or recursive    functions.    changes since 0.99.101. New version control added:        A new preprocessor symbol was added: SLANG_VERSION    This is a 6 digit integer of the form: abcdef     This corresponds to version number ab.cd.ef.  So for version 0.99.11:    #define SLANG_VERSION 9911        In addition, the intrinsic variable `SLang_Version' was changed from a     string to an integer that has the value SLANG_VERSION.  This also implies    that the interpreter variable _slang_version is now an integer.changes since 0.99.91. The terminfo code failed to recognize the automatic margin flag.  This   has been corrected.  In addition, the display code nolonger resets the   character set upon initialization.  This is considered to be a good thing.2. There is a new program in slang/doc called `texconv' that will produce a   nicely formatted ascii document from the tex formatted ones.  In   addition, new documentation has been added: slang.tex which describes the   syntax of the slang programming language and cslang.tex which describes   the C interface to the library.  The latter document is far from complete   but it is a start.   3. A new variable declaration keyword has beed added: global_variable   This keyword is useful for declaring global variables from within   functions.  Such a feature simplifies some scripts.   4. The SLsmg line drawing functions are now in place.   changes since 0.99.81. \d may now be used in regular expressions to specify a digit.  In addition,   \e specifies an escape character.  So for example, `\e\[\d;\dH' matches   an ANSI cursor position escape sequence.2. Small bug in dealing with terminals that have automatic margins has been   fixed.3. When compiled with -DSLANG_TERMINFO will use terminfo.  This means that   there is no need to link to termcap.   changes since 0.99.71. New function added to the readline package:     int SLang_rline_insert (char *s);   this may be used to stuff strings into the rline buffer.  SLSC exploits   this feature.changes since 0.99.61. ALL macros beginning with LANG have been changed to use SLANG as the   prefix.  For example, the macro LANG_IVARIABLE has been renamed to   SLANG_IVARIABLE.  If you have used one of these macros, please make the   change.   2. Application defined types.  See demo/complex.c for an example that   defines complex numbers and overloads the binary and unary operators to   work with them.   changes since 0.99.51. New interface for application defined objects.  Functions include:   extern SLuser_Object_Type *SLang_pop_user_object (unsigned char);   extern void SLang_free_user_object (SLuser_Object_Type *);   extern void SLang_push_user_object (SLuser_Object_Type *);   extern SLuser_Object_Type *SLang_create_user_object (unsigned char type);				  This means that S-Lang scripts do not have to worry about freeing  structures, arrays, etc...  A consequence of this fact is that the  intrinsic function `free_array' has been removed.  See examples of this  exciting new feature in slang/demo.  2. Better documentation and examples.  See slang/doc/*.* as well as examples   in slang/demo.  3. Memory allocation macros have changed from MALLOC to SLMALLOC, etc...   Applications are encouraged to use these rather than `malloc' because by   compiling your application AND the slang library with the -DMALLOC_DEBUG   will link in code that checks if you have corrupted memory, freed   something twice, etc...  Use the function `SLmalloc_dump_statistics' for   a report of memory consumption by your program.   changes since 0.99.41. cleaned up the source some and I changed the names of the hooks   user_whatever to `SLang_User_Whatever'.  This makes them more consistent   with other external functions and variables and helps avoid name space   pollution.changes since 0.99.3* added screen management stuff* added a new help file reader (see help directory)* DOUBLE precision is now the default.  I think that this makes more sense  for an interpreted langauge.* searching routines added.changes since 0.99.2* added low level tty support for VMS, DOS, and Unix* slang readline added* keymap support* files restructured so that programs can link, say, the readline library   and not get the whole interpreter linked in.   changes since 0.99.1*  obscure bug in regular expression fixed*  optimizing performed for 10% speed increase in speed for some language     constructschanges since 0.99.0*  semantics of the `switch' statement changed to be more C-like with the   addition of the `case' keyword.  For example, one can write:           switch (ch)	{ case 'A':  	    something ();	}	{ 	  case 'B':  	    something_else ();	}	{ case 3.14: 	    print ("Almost PI");	}	{ case "hello":  	    print ("hi");	}      Note that one may mix data types without the possibility of a type   mismatch error.    changes since 0.98:*  matrix package added.  Currently only matrix multiplication and addition   is supported.  More functions will be added (determinants, inverse, etc..)   This support is provided by the `init_SLmatrix ()' call.  This support    provides the following S-Lang intrinsics:            matrix_multiply, matrix_add	     *  New S-Lang core intrinsic:         copy_array  :  copys the contents of one array to anotherchanges since 0.97: *  Double precision floating point supported.     Use the -DFLOAT_TYPE -DUSE_DOUBLE compiler flags to enable this.   Note that S-Lang does not support single precision and double precision   floating point number SIMULTANEOUSLY.  You must choose one or the other   and stick with it!   *  Byte compiling is now more than simple preprocessing.  This results in   about a 20% decrease in loading time.  This also means that if you   rebuild your application, you MUST re-bytecompile.   *  New syntax added:  Consider a function f that returns multiple values.   Then to assign these values to, say var_1, and var_2, simply write:          (var_1, var_2) = f ();           This is an alternative to:              f (); =var_2; =var_1;	Changes since 0.96:  It is now possible to use short circuit boolean evaluation of logical  expressions is the `orelse' and `andelse' constructs.  Previously, these  constructs were only available at the infix level.  The new syntax looks  like (example taken from JED's rmail.sl):       if (orelse 	 {re_bsearch("^\\CFrom:.*<\\(.+\\)>");}	 {re_bsearch("^\\CReply-To: *\\([^ ]+\\) *");}	 {re_bsearch("^\\CFrom:.*<\\(.+\\)>");}	 {re_bsearch("^\\CFrom: *\\([^ ]+\\) *");}	 {re_bsearch("^\\cFrom +\\([^ ]+\\) *");}       )     {	from = rmail_complex_get_from(from);     }       Modified some of the array code to use handles to arrays instead of actual  arrays.  This adds alot more protection for the use of arrays.  The  downside is that there is a limit on the number of active arrays.  This  limit has been set to a default value ot 256.  An ``active'' array is an  array that has been created but not freed.    Fixed a parse error that occurred when an `if' statement imediately follow  the `:' in a switch statement.    putenv intrinsic added.  EXIT_BLOCK:  if an exit block is declared, it is called just before the               function returns to its caller. It is now possible to perform assignments in variable declarationstatements, e.g.,variable i = 0, imax = 10, n = strlen (name);Condition compilation of S-Lang source possible.  See .sl files in the jeddistribution.A bug which prevent assignment to a global C floating point variable wasfixed. Changes to `calc':   `apropos' function added to calc.sl.  For example, `apropos("str")'      creates a list of all intrinsic functions that contain the substring      "str"  (strcmp, strcat, etc...)          Command line arguments are now loaded as S-Lang source files.  This makes      it possible to create a Unix executable such as:               #! /usr/local/bin/calc	 	 defi

⌨️ 快捷键说明

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