diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | TODO.xgawk | 34 | ||||
-rw-r--r-- | extension/ChangeLog | 4 | ||||
-rw-r--r-- | extension/xreadlink.c | 95 | ||||
-rw-r--r-- | extension/xreadlink.h | 23 |
5 files changed, 32 insertions, 129 deletions
@@ -1,3 +1,8 @@ +2012-05-13 Andrew J. Schorr <aschorr@telemetry-investments.com> + + * TODO.xgawk: Update to reflect recent discussions and deletion of + extension/xreadlink.[ch]. + 2012-05-11 Arnold D. Robbins <arnold@skeeve.com> Sweeping change: Use `bool', `true', and `false' everywhere. @@ -27,15 +27,38 @@ Done: - Add shared library tests. +- Delete extension/xreadlink.[ch] + To do (not necessarily in this order): +- Add a -i (--include) option. + +- The -f flag should not eliminate duplicates. + +- Add comment about using unref on value returned from assoc_lookup. + +- Enable default ".awk" search in io.c:find_source(). The simple change + is to add this code inline in io.c: + #ifndef DEFAULT_FILETYPE + #define DEFAULT_FILETYPE ".awk" + #endif + +- Implement new interface using gawkapi.h + +- Add time extension to the gawk distro. This defines sleep and gettimeofday. + Rename existing gettimeofday by adding some underscores. + - Enhance extension/fork.c waitpid to allow the caller to specify the options. And add an optional array argument to wait and waitpid in which to return exit status information. - Maybe add more shared library tests. +- Fix extension/rwarray.c. It does not currently compile due to changes + in the NODE structure relating to array support. The MPFR changes will + also make this more complicated. + - Figure out how to support xgawk on platforms such as Cygwin where a DLL cannot be linked with unresolved references. There are currently 3 possible solutions: @@ -46,12 +69,6 @@ To do (not necessarily in this order): pass a pointer to a structure into dlload that contains the addresses of all variables and functions to which the extension may need access. -- Enable default ".awk" search in io.c:find_source(). The simple change - is to add this code inline in io.c: - #ifndef DEFAULT_FILETYPE - #define DEFAULT_FILETYPE ".awk" - #endif - - Fix lint complaints about shared library functions being called without having been defined. For example, try: gawk --lint -lordchr 'BEGIN {print chr(65)}' @@ -95,9 +112,6 @@ To do (not necessarily in this order): Separate projects for major standalone extensions. Where should these be hosted? -- Time. This defines sleep and gettimeofday. This one is quite trivial, - and I propose that it be included in the mainline gawk distro. - - XML - PostgreSQL @@ -130,5 +144,3 @@ Possible changes requiring (further) discussion: - Include a sample rpm spec file in a new packaging subdirectory. - Patch lexer for @include and @load to make quotes optional. - -- Add a -i (--include) option. diff --git a/extension/ChangeLog b/extension/ChangeLog index a38ce15c..df493227 100644 --- a/extension/ChangeLog +++ b/extension/ChangeLog @@ -1,3 +1,7 @@ +2012-05-13 Andrew J. Schorr <aschorr@telemetry-investments.com> + + * xreadlink.[ch]: Remove unused files. + 2012-05-11 Arnold D. Robbins <arnold@skeeve.com> Sweeping change: Use `bool', `true', and `false' everywhere. diff --git a/extension/xreadlink.c b/extension/xreadlink.c deleted file mode 100644 index 91e46d9d..00000000 --- a/extension/xreadlink.c +++ /dev/null @@ -1,95 +0,0 @@ -/* xreadlink.c -- readlink wrapper to return the link name in malloc'd storage - - Copyright (C) 2001, 2003, 2004, 2005, 2011 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; see the file COPYING. - If not, write to the Free Software Foundation, - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - -/* Written by Jim Meyering <jim@meyering.net> */ - -#if HAVE_CONFIG_H -# include <config.h> -#endif - -#include "xreadlink.h" - -#include <stdio.h> -#include <errno.h> -#include <limits.h> -#include <sys/types.h> -#include <stdlib.h> -#if HAVE_UNISTD_H -# include <unistd.h> -#endif - -#ifndef SIZE_MAX -# define SIZE_MAX ((size_t) -1) -#endif -#ifndef SSIZE_MAX -# define SSIZE_MAX ((ssize_t) (SIZE_MAX / 2)) -#endif - -#define MAXSIZE (SIZE_MAX < SSIZE_MAX ? SIZE_MAX : SSIZE_MAX) - -#include "xalloc.h" - -int plugin_is_GPL_compatible; - -/* Call readlink to get the symbolic link value of FILE. - SIZE is a hint as to how long the link is expected to be; - typically it is taken from st_size. It need not be correct. - Return a pointer to that NUL-terminated string in malloc'd storage. - If readlink fails, return NULL (caller may use errno to diagnose). - If malloc fails, or if the link value is longer than SSIZE_MAX :-), - give a diagnostic and exit. */ - -char * -xreadlink (char const *file, size_t size) -{ - /* The initial buffer size for the link value. A power of 2 - detects arithmetic overflow earlier, but is not required. */ - size_t buf_size = size < MAXSIZE ? size + 1 : MAXSIZE; - - while (1) - { - char *buffer = xmalloc (buf_size); - ssize_t r = readlink (file, buffer, buf_size); - size_t link_length = r; - - /* On AIX 5L v5.3 and HP-UX 11i v2 04/09, readlink returns -1 - with errno == ERANGE if the buffer is too small. */ - if (r < 0 && errno != ERANGE) - { - int saved_errno = errno; - free (buffer); - errno = saved_errno; - return NULL; - } - - if (link_length < buf_size) - { - buffer[link_length] = 0; - return buffer; - } - - free (buffer); - if (buf_size <= MAXSIZE / 2) - buf_size *= 2; - else if (buf_size < MAXSIZE) - buf_size = MAXSIZE; - else - xalloc_die (); - } -} diff --git a/extension/xreadlink.h b/extension/xreadlink.h deleted file mode 100644 index 0c16610d..00000000 --- a/extension/xreadlink.h +++ /dev/null @@ -1,23 +0,0 @@ -/* readlink wrapper to return the link name in malloc'd storage - - Copyright (C) 2001, 2003, 2004, 2011 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; see the file COPYING. - If not, write to the Free Software Foundation, - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - -/* Written by Jim Meyering <jim@meyering.net> */ - -#include <stddef.h> -char *xreadlink (char const *, size_t); |