| OLD | NEW | 
|---|
| 1 @c Automatically generated from *.c and others (the comments before | 1 @c Automatically generated from *.c and others (the comments before | 
| 2 @c each entry tell you which file and where in that file).  DO NOT EDIT! | 2 @c each entry tell you which file and where in that file).  DO NOT EDIT! | 
| 3 @c Edit the *.c files, configure with --enable-maintainer-mode, | 3 @c Edit the *.c files, configure with --enable-maintainer-mode, | 
| 4 @c run 'make stamp-functions' and gather-docs will build a new copy. | 4 @c run 'make stamp-functions' and gather-docs will build a new copy. | 
| 5 | 5 | 
| 6 @c alloca.c:26 | 6 @c alloca.c:26 | 
| 7 @deftypefn Replacement void* alloca (size_t @var{size}) | 7 @deftypefn Replacement void* alloca (size_t @var{size}) | 
| 8 | 8 | 
| 9 This function allocates memory which will be automatically reclaimed | 9 This function allocates memory which will be automatically reclaimed | 
| 10 after the procedure exits.  The @libib{} implementation does not free | 10 after the procedure exits.  The @libib{} implementation does not free | 
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 77 @var{base} for a member that matches the object pointed to by @var{key}. | 77 @var{base} for a member that matches the object pointed to by @var{key}. | 
| 78 The size of each member is specified by @var{size}.  The array contents | 78 The size of each member is specified by @var{size}.  The array contents | 
| 79 should be sorted in ascending order according to the @var{compar} | 79 should be sorted in ascending order according to the @var{compar} | 
| 80 comparison function.  This routine should take two arguments pointing to | 80 comparison function.  This routine should take two arguments pointing to | 
| 81 the @var{key} and to an array member, in that order, and should return an | 81 the @var{key} and to an array member, in that order, and should return an | 
| 82 integer less than, equal to, or greater than zero if the @var{key} object | 82 integer less than, equal to, or greater than zero if the @var{key} object | 
| 83 is respectively less than, matching, or greater than the array member. | 83 is respectively less than, matching, or greater than the array member. | 
| 84 | 84 | 
| 85 @end deftypefn | 85 @end deftypefn | 
| 86 | 86 | 
| 87 @c argv.c:142 | 87 @c argv.c:135 | 
| 88 @deftypefn Extension char** buildargv (char *@var{sp}) | 88 @deftypefn Extension char** buildargv (char *@var{sp}) | 
| 89 | 89 | 
| 90 Given a pointer to a string, parse the string extracting fields | 90 Given a pointer to a string, parse the string extracting fields | 
| 91 separated by whitespace and optionally enclosed within either single | 91 separated by whitespace and optionally enclosed within either single | 
| 92 or double quotes (which are stripped off), and build a vector of | 92 or double quotes (which are stripped off), and build a vector of | 
| 93 pointers to copies of the string for each field.  The input string | 93 pointers to copies of the string for each field.  The input string | 
| 94 remains unchanged.  The last element of the vector is followed by a | 94 remains unchanged.  The last element of the vector is followed by a | 
| 95 @code{NULL} element. | 95 @code{NULL} element. | 
| 96 | 96 | 
| 97 All of the memory for the pointer array and copies of the string | 97 All of the memory for the pointer array and copies of the string | 
| 98 is obtained from @code{malloc}.  All of the memory can be returned to the | 98 is obtained from @code{xmalloc}.  All of the memory can be returned to the | 
| 99 system with the single function call @code{freeargv}, which takes the | 99 system with the single function call @code{freeargv}, which takes the | 
| 100 returned result of @code{buildargv}, as it's argument. | 100 returned result of @code{buildargv}, as it's argument. | 
| 101 | 101 | 
| 102 Returns a pointer to the argument vector if successful.  Returns | 102 Returns a pointer to the argument vector if successful.  Returns | 
| 103 @code{NULL} if @var{sp} is @code{NULL} or if there is insufficient | 103 @code{NULL} if @var{sp} is @code{NULL} or if there is insufficient | 
| 104 memory to complete building the argument vector. | 104 memory to complete building the argument vector. | 
| 105 | 105 | 
| 106 If the input is a null string (as opposed to a @code{NULL} pointer), | 106 If the input is a null string (as opposed to a @code{NULL} pointer), | 
| 107 then buildarg returns an argument vector that has one arg, a null | 107 then buildarg returns an argument vector that has one arg, a null | 
| 108 string. | 108 string. | 
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 159 @deftypefn Extension char* concat (const char *@var{s1}, const char *@var{s2}, @ | 159 @deftypefn Extension char* concat (const char *@var{s1}, const char *@var{s2}, @ | 
| 160   @dots{}, @code{NULL}) | 160   @dots{}, @code{NULL}) | 
| 161 | 161 | 
| 162 Concatenate zero or more of strings and return the result in freshly | 162 Concatenate zero or more of strings and return the result in freshly | 
| 163 @code{xmalloc}ed memory.  Returns @code{NULL} if insufficient memory is | 163 @code{xmalloc}ed memory.  Returns @code{NULL} if insufficient memory is | 
| 164 available.  The argument list is terminated by the first @code{NULL} | 164 available.  The argument list is terminated by the first @code{NULL} | 
| 165 pointer encountered.  Pointers to empty strings are ignored. | 165 pointer encountered.  Pointers to empty strings are ignored. | 
| 166 | 166 | 
| 167 @end deftypefn | 167 @end deftypefn | 
| 168 | 168 | 
|  | 169 @c argv.c:470 | 
|  | 170 @deftypefn Extension int countargv (char **@var{argv}) | 
|  | 171 | 
|  | 172 Return the number of elements in @var{argv}. | 
|  | 173 Returns zero if @var{argv} is NULL. | 
|  | 174 | 
|  | 175 @end deftypefn | 
|  | 176 | 
| 169 @c crc32.c:141 | 177 @c crc32.c:141 | 
| 170 @deftypefn Extension {unsigned int} crc32 (const unsigned char *@var{buf}, @ | 178 @deftypefn Extension {unsigned int} crc32 (const unsigned char *@var{buf}, @ | 
| 171   int @var{len}, unsigned int @var{init}) | 179   int @var{len}, unsigned int @var{init}) | 
| 172 | 180 | 
| 173 Compute the 32-bit CRC of @var{buf} which has length @var{len}.  The | 181 Compute the 32-bit CRC of @var{buf} which has length @var{len}.  The | 
| 174 starting value is @var{init}; this may be used to compute the CRC of | 182 starting value is @var{init}; this may be used to compute the CRC of | 
| 175 data split across multiple buffers by passing the return value of each | 183 data split across multiple buffers by passing the return value of each | 
| 176 call as the @var{init} parameter of the next. | 184 call as the @var{init} parameter of the next. | 
| 177 | 185 | 
| 178 This is intended to match the CRC used by the @command{gdb} remote | 186 This is intended to match the CRC used by the @command{gdb} remote | 
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 217 should check the size of the table (@code{sys_nerr}) before indexing | 225 should check the size of the table (@code{sys_nerr}) before indexing | 
| 218 it, since new error codes may be added to the system before they are | 226 it, since new error codes may be added to the system before they are | 
| 219 added to the table.  Thus @code{sys_nerr} might be smaller than value | 227 added to the table.  Thus @code{sys_nerr} might be smaller than value | 
| 220 implied by the largest @code{errno} value defined in @code{<errno.h>}. | 228 implied by the largest @code{errno} value defined in @code{<errno.h>}. | 
| 221 | 229 | 
| 222 We return the maximum value that can be used to obtain a meaningful | 230 We return the maximum value that can be used to obtain a meaningful | 
| 223 symbolic name or message. | 231 symbolic name or message. | 
| 224 | 232 | 
| 225 @end deftypefn | 233 @end deftypefn | 
| 226 | 234 | 
| 227 @c argv.c:361 | 235 @c argv.c:341 | 
| 228 @deftypefn Extension void expandargv (int *@var{argcp}, char ***@var{argvp}) | 236 @deftypefn Extension void expandargv (int *@var{argcp}, char ***@var{argvp}) | 
| 229 | 237 | 
| 230 The @var{argcp} and @code{argvp} arguments are pointers to the usual | 238 The @var{argcp} and @code{argvp} arguments are pointers to the usual | 
| 231 @code{argc} and @code{argv} arguments to @code{main}.  This function | 239 @code{argc} and @code{argv} arguments to @code{main}.  This function | 
| 232 looks for arguments that begin with the character @samp{@@}.  Any such | 240 looks for arguments that begin with the character @samp{@@}.  Any such | 
| 233 arguments are interpreted as ``response files''.  The contents of the | 241 arguments are interpreted as ``response files''.  The contents of the | 
| 234 response file are interpreted as additional command line options.  In | 242 response file are interpreted as additional command line options.  In | 
| 235 particular, the file is separated into whitespace-separated strings; | 243 particular, the file is separated into whitespace-separated strings; | 
| 236 each such string is taken as a command-line option.  The new options | 244 each such string is taken as a command-line option.  The new options | 
| 237 are inserted in place of the option naming the response file, and | 245 are inserted in place of the option naming the response file, and | 
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 289 @var{s2}. | 297 @var{s2}. | 
| 290 | 298 | 
| 291 This function does not normalize file names.  As a result, this function | 299 This function does not normalize file names.  As a result, this function | 
| 292 will treat filenames that are spelled differently as different even in | 300 will treat filenames that are spelled differently as different even in | 
| 293 the case when the two filenames point to the same underlying file. | 301 the case when the two filenames point to the same underlying file. | 
| 294 However, it does handle the fact that on DOS-like file systems, forward | 302 However, it does handle the fact that on DOS-like file systems, forward | 
| 295 and backward slashes are equal. | 303 and backward slashes are equal. | 
| 296 | 304 | 
| 297 @end deftypefn | 305 @end deftypefn | 
| 298 | 306 | 
| 299 @c filename_cmp.c:81 | 307 @c filename_cmp.c:178 | 
|  | 308 @deftypefn Extension int filename_eq (const void *@var{s1}, const void *@var{s2}
      ) | 
|  | 309 | 
|  | 310 Return non-zero if file names @var{s1} and @var{s2} are equivalent. | 
|  | 311 This function is for use with hashtab.c hash tables. | 
|  | 312 | 
|  | 313 @end deftypefn | 
|  | 314 | 
|  | 315 @c filename_cmp.c:147 | 
|  | 316 @deftypefn Extension hashval_t filename_hash (const void *@var{s}) | 
|  | 317 | 
|  | 318 Return the hash value for file name @var{s} that will be compared | 
|  | 319 using filename_cmp. | 
|  | 320 This function is for use with hashtab.c hash tables. | 
|  | 321 | 
|  | 322 @end deftypefn | 
|  | 323 | 
|  | 324 @c filename_cmp.c:89 | 
| 300 @deftypefn Extension int filename_ncmp (const char *@var{s1}, const char *@var{s
      2}, size_t @var{n}) | 325 @deftypefn Extension int filename_ncmp (const char *@var{s1}, const char *@var{s
      2}, size_t @var{n}) | 
| 301 | 326 | 
| 302 Return zero if the two file names @var{s1} and @var{s2} are equivalent | 327 Return zero if the two file names @var{s1} and @var{s2} are equivalent | 
| 303 in range @var{n}. | 328 in range @var{n}. | 
| 304 If not equivalent, the returned value is similar to what @code{strncmp} | 329 If not equivalent, the returned value is similar to what @code{strncmp} | 
| 305 would return.  In other words, it returns a negative value if @var{s1} | 330 would return.  In other words, it returns a negative value if @var{s1} | 
| 306 is less than @var{s2}, or a positive value if @var{s2} is greater than | 331 is less than @var{s2}, or a positive value if @var{s2} is greater than | 
| 307 @var{s2}. | 332 @var{s2}. | 
| 308 | 333 | 
| 309 This function does not normalize file names.  As a result, this function | 334 This function does not normalize file names.  As a result, this function | 
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 369 @deftypefn Extension {FILE *} fopen_unlocked (const char *@var{path}, @ | 394 @deftypefn Extension {FILE *} fopen_unlocked (const char *@var{path}, @ | 
| 370   const char * @var{mode}) | 395   const char * @var{mode}) | 
| 371 | 396 | 
| 372 Opens and returns a @code{FILE} pointer via @code{fopen}.  If the | 397 Opens and returns a @code{FILE} pointer via @code{fopen}.  If the | 
| 373 operating system supports it, ensure that the stream is setup to avoid | 398 operating system supports it, ensure that the stream is setup to avoid | 
| 374 any multi-threaded locking.  Otherwise return the @code{FILE} pointer | 399 any multi-threaded locking.  Otherwise return the @code{FILE} pointer | 
| 375 unchanged. | 400 unchanged. | 
| 376 | 401 | 
| 377 @end deftypefn | 402 @end deftypefn | 
| 378 | 403 | 
| 379 @c argv.c:97 | 404 @c argv.c:90 | 
| 380 @deftypefn Extension void freeargv (char **@var{vector}) | 405 @deftypefn Extension void freeargv (char **@var{vector}) | 
| 381 | 406 | 
| 382 Free an argument vector that was built using @code{buildargv}.  Simply | 407 Free an argument vector that was built using @code{buildargv}.  Simply | 
| 383 scans through @var{vector}, freeing the memory for each argument until | 408 scans through @var{vector}, freeing the memory for each argument until | 
| 384 the terminating @code{NULL} is found, and then frees @var{vector} | 409 the terminating @code{NULL} is found, and then frees @var{vector} | 
| 385 itself. | 410 itself. | 
| 386 | 411 | 
| 387 @end deftypefn | 412 @end deftypefn | 
| 388 | 413 | 
| 389 @c fopen_unlocked.c:59 | 414 @c fopen_unlocked.c:59 | 
| (...skipping 1068 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1458 @var{tree_allocate_fn} and @var{node_allocate_fn} to use for allocating the | 1483 @var{tree_allocate_fn} and @var{node_allocate_fn} to use for allocating the | 
| 1459 tree itself and its nodes respectively.  This is useful when variables of | 1484 tree itself and its nodes respectively.  This is useful when variables of | 
| 1460 different types need to be allocated with different allocators. | 1485 different types need to be allocated with different allocators. | 
| 1461 | 1486 | 
| 1462 The splay tree will use @var{compare_fn} to compare nodes, | 1487 The splay tree will use @var{compare_fn} to compare nodes, | 
| 1463 @var{delete_key_fn} to deallocate keys, and @var{delete_value_fn} to | 1488 @var{delete_key_fn} to deallocate keys, and @var{delete_value_fn} to | 
| 1464 deallocate values. | 1489 deallocate values. | 
| 1465 | 1490 | 
| 1466 @end deftypefn | 1491 @end deftypefn | 
| 1467 | 1492 | 
|  | 1493 @c stack-limit.c:28 | 
|  | 1494 @deftypefn Extension void stack_limit_increase (unsigned long @var{pref}) | 
|  | 1495 | 
|  | 1496 Attempt to increase stack size limit to @var{pref} bytes if possible. | 
|  | 1497 | 
|  | 1498 @end deftypefn | 
|  | 1499 | 
| 1468 @c stpcpy.c:23 | 1500 @c stpcpy.c:23 | 
| 1469 @deftypefn Supplemental char* stpcpy (char *@var{dst}, const char *@var{src}) | 1501 @deftypefn Supplemental char* stpcpy (char *@var{dst}, const char *@var{src}) | 
| 1470 | 1502 | 
| 1471 Copies the string @var{src} into @var{dst}.  Returns a pointer to | 1503 Copies the string @var{src} into @var{dst}.  Returns a pointer to | 
| 1472 @var{dst} + strlen(@var{src}). | 1504 @var{dst} + strlen(@var{src}). | 
| 1473 | 1505 | 
| 1474 @end deftypefn | 1506 @end deftypefn | 
| 1475 | 1507 | 
| 1476 @c stpncpy.c:23 | 1508 @c stpncpy.c:23 | 
| 1477 @deftypefn Supplemental char* stpncpy (char *@var{dst}, const char *@var{src}, @ | 1509 @deftypefn Supplemental char* stpncpy (char *@var{dst}, const char *@var{src}, @ | 
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1567 | 1599 | 
| 1568 @c strndup.c:23 | 1600 @c strndup.c:23 | 
| 1569 @deftypefn Extension char* strndup (const char *@var{s}, size_t @var{n}) | 1601 @deftypefn Extension char* strndup (const char *@var{s}, size_t @var{n}) | 
| 1570 | 1602 | 
| 1571 Returns a pointer to a copy of @var{s} with at most @var{n} characters | 1603 Returns a pointer to a copy of @var{s} with at most @var{n} characters | 
| 1572 in memory obtained from @code{malloc}, or @code{NULL} if insufficient | 1604 in memory obtained from @code{malloc}, or @code{NULL} if insufficient | 
| 1573 memory was available.  The result is always NUL terminated. | 1605 memory was available.  The result is always NUL terminated. | 
| 1574 | 1606 | 
| 1575 @end deftypefn | 1607 @end deftypefn | 
| 1576 | 1608 | 
|  | 1609 @c strnlen.c:6 | 
|  | 1610 @deftypefn Supplemental size_t strnlen (const char *@var{s}, size_t @var{maxlen}
      ) | 
|  | 1611 | 
|  | 1612 Returns the length of @var{s}, as with @code{strlen}, but never looks | 
|  | 1613 past the first @var{maxlen} characters in the string.  If there is no | 
|  | 1614 '\0' character in the first @var{maxlen} characters, returns | 
|  | 1615 @var{maxlen}. | 
|  | 1616 | 
|  | 1617 @end deftypefn | 
|  | 1618 | 
| 1577 @c strrchr.c:6 | 1619 @c strrchr.c:6 | 
| 1578 @deftypefn Supplemental char* strrchr (const char *@var{s}, int @var{c}) | 1620 @deftypefn Supplemental char* strrchr (const char *@var{s}, int @var{c}) | 
| 1579 | 1621 | 
| 1580 Returns a pointer to the last occurrence of the character @var{c} in | 1622 Returns a pointer to the last occurrence of the character @var{c} in | 
| 1581 the string @var{s}, or @code{NULL} if not found.  If @var{c} is itself the | 1623 the string @var{s}, or @code{NULL} if not found.  If @var{c} is itself the | 
| 1582 null character, the results are undefined. | 1624 null character, the results are undefined. | 
| 1583 | 1625 | 
| 1584 @end deftypefn | 1626 @end deftypefn | 
| 1585 | 1627 | 
| 1586 @c strsignal.c:383 | 1628 @c strsignal.c:383 | 
| (...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1721 strverscmp ("part1_f012", "part1_f01") | 1763 strverscmp ("part1_f012", "part1_f01") | 
| 1722     @result{} >0   // @r{two fractional parts.} | 1764     @result{} >0   // @r{two fractional parts.} | 
| 1723 strverscmp ("foo.009", "foo.0") | 1765 strverscmp ("foo.009", "foo.0") | 
| 1724     @result{} <0   // @r{idem, but with leading zeroes only.} | 1766     @result{} <0   // @r{idem, but with leading zeroes only.} | 
| 1725 @end smallexample | 1767 @end smallexample | 
| 1726 | 1768 | 
| 1727 This function is especially useful when dealing with filename sorting, | 1769 This function is especially useful when dealing with filename sorting, | 
| 1728 because filenames frequently hold indices/version numbers. | 1770 because filenames frequently hold indices/version numbers. | 
| 1729 @end deftypefun | 1771 @end deftypefun | 
| 1730 | 1772 | 
|  | 1773 @c timeval-utils.c:43 | 
|  | 1774 @deftypefn Extension void timeval_add (struct timeval *@var{a}, @ | 
|  | 1775   struct timeval *@var{b}, struct timeval *@var{result}) | 
|  | 1776 | 
|  | 1777 Adds @var{a} to @var{b} and stores the result in @var{result}. | 
|  | 1778 | 
|  | 1779 @end deftypefn | 
|  | 1780 | 
|  | 1781 @c timeval-utils.c:67 | 
|  | 1782 @deftypefn Extension void timeval_sub (struct timeval *@var{a}, @ | 
|  | 1783   struct timeval *@var{b}, struct timeval *@var{result}) | 
|  | 1784 | 
|  | 1785 Subtracts @var{b} from @var{a} and stores the result in @var{result}. | 
|  | 1786 | 
|  | 1787 @end deftypefn | 
|  | 1788 | 
| 1731 @c tmpnam.c:3 | 1789 @c tmpnam.c:3 | 
| 1732 @deftypefn Supplemental char* tmpnam (char *@var{s}) | 1790 @deftypefn Supplemental char* tmpnam (char *@var{s}) | 
| 1733 | 1791 | 
| 1734 This function attempts to create a name for a temporary file, which | 1792 This function attempts to create a name for a temporary file, which | 
| 1735 will be a valid file name yet not exist when @code{tmpnam} checks for | 1793 will be a valid file name yet not exist when @code{tmpnam} checks for | 
| 1736 it.  @var{s} must point to a buffer of at least @code{L_tmpnam} bytes, | 1794 it.  @var{s} must point to a buffer of at least @code{L_tmpnam} bytes, | 
| 1737 or be @code{NULL}.  Use of this function creates a security risk, and it must | 1795 or be @code{NULL}.  Use of this function creates a security risk, and it must | 
| 1738 not be used in new projects.  Use @code{mkstemp} instead. | 1796 not be used in new projects.  Use @code{mkstemp} instead. | 
| 1739 | 1797 | 
| 1740 @end deftypefn | 1798 @end deftypefn | 
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1822 | 1880 | 
| 1823 @c waitpid.c:3 | 1881 @c waitpid.c:3 | 
| 1824 @deftypefn Supplemental int waitpid (int @var{pid}, int *@var{status}, int) | 1882 @deftypefn Supplemental int waitpid (int @var{pid}, int *@var{status}, int) | 
| 1825 | 1883 | 
| 1826 This is a wrapper around the @code{wait} function.  Any ``special'' | 1884 This is a wrapper around the @code{wait} function.  Any ``special'' | 
| 1827 values of @var{pid} depend on your implementation of @code{wait}, as | 1885 values of @var{pid} depend on your implementation of @code{wait}, as | 
| 1828 does the return value.  The third argument is unused in @libib{}. | 1886 does the return value.  The third argument is unused in @libib{}. | 
| 1829 | 1887 | 
| 1830 @end deftypefn | 1888 @end deftypefn | 
| 1831 | 1889 | 
| 1832 @c argv.c:306 | 1890 @c argv.c:286 | 
| 1833 @deftypefn Extension int writeargv (const char **@var{argv}, FILE *@var{file}) | 1891 @deftypefn Extension int writeargv (const char **@var{argv}, FILE *@var{file}) | 
| 1834 | 1892 | 
| 1835 Write each member of ARGV, handling all necessary quoting, to the file | 1893 Write each member of ARGV, handling all necessary quoting, to the file | 
| 1836 named by FILE, separated by whitespace.  Return 0 on success, non-zero | 1894 named by FILE, separated by whitespace.  Return 0 on success, non-zero | 
| 1837 if an error occurred while writing to FILE. | 1895 if an error occurred while writing to FILE. | 
| 1838 | 1896 | 
| 1839 @end deftypefn | 1897 @end deftypefn | 
| 1840 | 1898 | 
| 1841 @c xatexit.c:11 | 1899 @c xatexit.c:11 | 
| 1842 @deftypefun int xatexit (void (*@var{fn}) (void)) | 1900 @deftypefun int xatexit (void (*@var{fn}) (void)) | 
| (...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1931 @c xstrndup.c:23 | 1989 @c xstrndup.c:23 | 
| 1932 @deftypefn Replacement char* xstrndup (const char *@var{s}, size_t @var{n}) | 1990 @deftypefn Replacement char* xstrndup (const char *@var{s}, size_t @var{n}) | 
| 1933 | 1991 | 
| 1934 Returns a pointer to a copy of @var{s} with at most @var{n} characters | 1992 Returns a pointer to a copy of @var{s} with at most @var{n} characters | 
| 1935 without fail, using @code{xmalloc} to obtain memory.  The result is | 1993 without fail, using @code{xmalloc} to obtain memory.  The result is | 
| 1936 always NUL terminated. | 1994 always NUL terminated. | 
| 1937 | 1995 | 
| 1938 @end deftypefn | 1996 @end deftypefn | 
| 1939 | 1997 | 
| 1940 | 1998 | 
| OLD | NEW | 
|---|