guile-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

guile/guile-core ice-9/ChangeLog ice-9/boot-9.s...


From: Gary Houston
Subject: guile/guile-core ice-9/ChangeLog ice-9/boot-9.s...
Date: Wed, 24 Jan 2001 13:45:11 -0800

CVSROOT:        /cvs
Module name:    guile
Changes by:     Gary Houston <address@hidden>   01/01/24 13:45:10

Modified files:
        guile-core/ice-9: ChangeLog boot-9.scm rdelim.scm 
                          documentation.scm 
        guile-core/libguile: ChangeLog ioext.c ioext.h posix.c filesys.c 
Added files:
        guile-core/libguile: rdelim.c rdelim.h 

Log message:
        * boot-9.scm: don't import (ice-9 rdelim) here.  it's done
        in C for now.
        * rdelim.scm: export the C primitives too.
        * documentation.scm: use (ice-9 rdelim).
        
        * filesys.c (scm_link): docstring fix.
        * fports.h (scm_setfileno): obsolete declaration removed.
        * posix.c: bogus popen declaration removed.
        
        * rdelim.c: new file, split from ioext.c with new proc
        scm_init_rdelim.
        * rdelim.h: new file.
        * Makefile.am: add rdelim.c and related files.
        * init.c: call scm_init_rdelim.  include rdelim.h.

CVSWeb URLs:
http://subversions.gnu.org/cgi-bin/cvsweb/guile/guile-core/ice-9/ChangeLog.diff?r1=1.365&r2=1.366
http://subversions.gnu.org/cgi-bin/cvsweb/guile/guile-core/ice-9/boot-9.scm.diff?r1=1.221&r2=1.222
http://subversions.gnu.org/cgi-bin/cvsweb/guile/guile-core/ice-9/rdelim.scm.diff?r1=1.1&r2=1.2
http://subversions.gnu.org/cgi-bin/cvsweb/guile/guile-core/ice-9/documentation.scm.diff?r1=1.2&r2=1.3
http://subversions.gnu.org/cgi-bin/cvsweb/guile/guile-core/libguile/rdelim.c.diff?r1=NONE&r2=1.1
http://subversions.gnu.org/cgi-bin/cvsweb/guile/guile-core/libguile/rdelim.h.diff?r1=NONE&r2=1.1
http://subversions.gnu.org/cgi-bin/cvsweb/guile/guile-core/libguile/ChangeLog.diff?r1=1.1245&r2=1.1246
http://subversions.gnu.org/cgi-bin/cvsweb/guile/guile-core/libguile/ioext.c.diff?r1=1.76&r2=1.77
http://subversions.gnu.org/cgi-bin/cvsweb/guile/guile-core/libguile/ioext.h.diff?r1=1.22&r2=1.23
http://subversions.gnu.org/cgi-bin/cvsweb/guile/guile-core/libguile/posix.c.diff?r1=1.78&r2=1.79
http://subversions.gnu.org/cgi-bin/cvsweb/guile/guile-core/libguile/filesys.c.diff?r1=1.89&r2=1.90

Patches:
Index: guile/guile-core/ice-9/ChangeLog
diff -u guile/guile-core/ice-9/ChangeLog:1.365 
guile/guile-core/ice-9/ChangeLog:1.366
--- guile/guile-core/ice-9/ChangeLog:1.365      Sun Jan 21 14:11:29 2001
+++ guile/guile-core/ice-9/ChangeLog    Wed Jan 24 13:45:09 2001
@@ -1,3 +1,10 @@
+2001-01-24  Gary Houston  <address@hidden>
+
+       * boot-9.scm: don't import (ice-9 rdelim) here.  it's done
+       in C for now.
+       * rdelim.scm: export the C primitives too.
+       * documentation.scm: use (ice-9 rdelim).
+
 2001-01-21  Gary Houston  <address@hidden>
 
        * rdelim.scm: new file implementing module (ice-9 rdelim).
Index: guile/guile-core/ice-9/boot-9.scm
diff -u guile/guile-core/ice-9/boot-9.scm:1.221 
guile/guile-core/ice-9/boot-9.scm:1.222
--- guile/guile-core/ice-9/boot-9.scm:1.221     Sun Jan 21 14:11:29 2001
+++ guile/guile-core/ice-9/boot-9.scm   Wed Jan 24 13:45:09 2001
@@ -2635,10 +2635,6 @@
 
 
 
-;; temporary, for backwards compatibility.
-(use-modules (ice-9 rdelim))
-
-
 (define using-readline?
   (let ((using-readline? (make-fluid)))
      (make-procedure-with-setter
@@ -2723,3 +2719,4 @@
 (define-module (guile))
 
 (append! %load-path (cons "." ()))
+
Index: guile/guile-core/ice-9/documentation.scm
diff -u guile/guile-core/ice-9/documentation.scm:1.2 
guile/guile-core/ice-9/documentation.scm:1.3
--- guile/guile-core/ice-9/documentation.scm:1.2        Fri Sep 29 13:39:29 2000
+++ guile/guile-core/ice-9/documentation.scm    Wed Jan 24 13:45:09 2001
@@ -17,6 +17,7 @@
 ;;;; 
 
 (define-module (ice-9 documentation)
+  :use-module (ice-9 rdelim)
   :no-backtrace)
 
 
Index: guile/guile-core/ice-9/rdelim.scm
diff -u guile/guile-core/ice-9/rdelim.scm:1.1 
guile/guile-core/ice-9/rdelim.scm:1.2
--- guile/guile-core/ice-9/rdelim.scm:1.1       Sun Jan 21 14:11:29 2001
+++ guile/guile-core/ice-9/rdelim.scm   Wed Jan 24 13:45:09 2001
@@ -1,6 +1,6 @@
 ;;; installed-scm-file
 
-;;;; Copyright (C) 1997 1999 2000 2001 Free Software Foundation, Inc.
+;;;; Copyright (C) 1997, 1999, 2000, 2001 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
@@ -19,15 +19,13 @@
 ;;;; 
 
 
-;;; Module for delimited I/O.  This is similar to (scsh rdelim) but is
-;;; somewhat incompatible.
+;;; This is the Scheme part of the module for delimited I/O.  It's
+;;; similar to (scsh rdelim) but somewhat incompatible.
 
 (define-module (ice-9 rdelim))
 
 (export read-line read-line! read-delimited read-delimited!)
-;; TODO: split the C part of this module out of libguile and into its
-;; own top-level directory.
-;; (export read-string!/partial %read-delimited! %read-line write-line)
+(export %read-delimited! %read-line write-line)  ; C
 
 (define (read-line! string . maybe-port)
   ;; corresponds to SCM_LINE_INCREMENTORS in libguile.
Index: guile/guile-core/libguile/ChangeLog
diff -u guile/guile-core/libguile/ChangeLog:1.1245 
guile/guile-core/libguile/ChangeLog:1.1246
--- guile/guile-core/libguile/ChangeLog:1.1245  Wed Jan 24 10:07:29 2001
+++ guile/guile-core/libguile/ChangeLog Wed Jan 24 13:45:09 2001
@@ -1,3 +1,14 @@
+2001-01-24  Gary Houston  <address@hidden>
+
+       * filesys.c (scm_link): docstring fix.
+       * fports.h (scm_setfileno): obsolete declaration removed.
+       * posix.c: bogus popen declaration removed.
+
+       * rdelim.c: new file, split from ioext.c.
+       * rdelim.h: new file, split from ioext.h
+       * Makefile.am: add rdelim.c and related files.
+       * init.c: call scm_init_rdelim.  include rdelim.h.
+
 2001-01-24  Dirk Herrmann  <address@hidden>
 
        This patch was sent by Martin Grabmueller and makes sure that
Index: guile/guile-core/libguile/filesys.c
diff -u guile/guile-core/libguile/filesys.c:1.89 
guile/guile-core/libguile/filesys.c:1.90
--- guile/guile-core/libguile/filesys.c:1.89    Tue Jan 23 16:02:43 2001
+++ guile/guile-core/libguile/filesys.c Wed Jan 24 13:45:09 2001
@@ -557,9 +557,10 @@
 
 SCM_DEFINE (scm_link, "link", 2, 0, 0,
             (SCM oldpath, SCM newpath),
-           "Creates a new name @var{path-to} in the file system for the file\n"
-           "named by @var{path-from}.  If @var{path-from} is a symbolic link, 
the\n"
-           "link may or may not be followed depending on the system.")
+           "Creates a new name @var{newpath} in the file system for the\n"
+           "file named by @var{oldpath}.  If @var{oldpath} is a symbolic\n"
+           "link, the link may or may not be followed depending on the\n"
+           "system.")
 #define FUNC_NAME s_scm_link
 {
   int val;
@@ -568,7 +569,8 @@
   SCM_STRING_COERCE_0TERMINATION_X (oldpath);
   SCM_VALIDATE_STRING (2, newpath);
   SCM_STRING_COERCE_0TERMINATION_X (newpath);
-  SCM_SYSCALL (val = link (SCM_STRING_CHARS (oldpath), SCM_STRING_CHARS 
(newpath)));
+  SCM_SYSCALL (val = link (SCM_STRING_CHARS (oldpath),
+                          SCM_STRING_CHARS (newpath)));
   if (val != 0)
     SCM_SYSERROR;
   return SCM_UNSPECIFIED;
@@ -579,7 +581,7 @@
 
 SCM_DEFINE (scm_rename, "rename-file", 2, 0, 0,
             (SCM oldname, SCM newname),
-           "Renames the file specified by @var{path-from} to @var{path-to}.\n"
+           "Renames the file specified by @var{oldname} to @var{newname}.\n"
            "The return value is unspecified.")
 #define FUNC_NAME s_scm_rename
 {
Index: guile/guile-core/libguile/ioext.c
diff -u guile/guile-core/libguile/ioext.c:1.76 
guile/guile-core/libguile/ioext.c:1.77
--- guile/guile-core/libguile/ioext.c:1.76      Thu Jan 18 14:54:54 2001
+++ guile/guile-core/libguile/ioext.c   Wed Jan 24 13:45:09 2001
@@ -1,4 +1,4 @@
-/*     Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000 Free Software 
Foundation, Inc.
+/*     Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001 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
@@ -44,20 +44,14 @@
 
 
 
-
-#include <stdio.h>
 #include "libguile/_scm.h"
-#include "libguile/ports.h"
-#include "libguile/read.h"
+#include "libguile/ioext.h"
 #include "libguile/fports.h"
-#include "libguile/unif.h"
-#include "libguile/chars.h"
 #include "libguile/feature.h"
+#include "libguile/ports.h"
 #include "libguile/root.h"
 #include "libguile/strings.h"
-
 #include "libguile/validate.h"
-#include "libguile/ioext.h"
 
 #include <fcntl.h>
 
@@ -165,227 +159,6 @@
        return SCM_BOOL_F;
     }
   return scm_long2num (chars_read);
-}
-#undef FUNC_NAME
-
-SCM_DEFINE (scm_read_delimited_x, "%read-delimited!", 3, 3, 0,
-            (SCM delims, SCM str, SCM gobble, SCM port, SCM start, SCM end),
-           "Read characters from @var{port} into @var{str} until one of the\n"
-           "characters in the @var{delims} string is encountered.  If 
@var{gobble}\n"
-           "is true, discard the delimiter character; otherwise, leave it\n"
-           "in the input stream for the next read.\n"
-           "If @var{port} is not specified, use the value of\n"
-           "@code{(current-input-port)}.  If @var{start} or @var{end} are 
specified,\n"
-           "store data only into the substring of @var{str} bounded by 
@var{start}\n"
-           "and @var{end} (which default to the beginning and end of the 
string,\n"
-           "respectively).\n\n"
-           "Return a pair consisting of the delimiter that terminated the 
string and\n"
-           "the number of characters read.  If reading stopped at the end of 
file,\n"
-           "the delimiter returned is the @var{eof-object}; if the string was 
filled\n"
-           "without encountering a delimiter, this value is @var{#f}.")
-#define FUNC_NAME s_scm_read_delimited_x
-{
-  long j;
-  char *buf;
-  long cstart;
-  long cend;
-  int c;
-  char *cdelims;
-  int num_delims;
-
-  SCM_VALIDATE_STRING_COPY (1, delims, cdelims);
-  num_delims = SCM_STRING_LENGTH (delims);
-  SCM_VALIDATE_SUBSTRING_SPEC_COPY (2, str, buf, 5, start, cstart,
-                                   6, end, cend);
-  if (SCM_UNBNDP (port))
-    port = scm_cur_inp;
-  else
-    SCM_VALIDATE_OPINPORT (4,port);
-
-  for (j = cstart; j < cend; j++)
-    {  
-      int k;
-
-      c = scm_getc (port);
-      for (k = 0; k < num_delims; k++)
-       {
-         if (cdelims[k] == c)
-           {
-             if (SCM_FALSEP (gobble))
-               scm_ungetc (c, port);
-
-             return scm_cons (SCM_MAKE_CHAR (c),
-                              scm_long2num (j - cstart));
-           }
-       }
-      if (c == EOF)
-       return scm_cons (SCM_EOF_VAL, 
-                        scm_long2num (j - cstart));
-
-      buf[j] = c;
-    }
-  return scm_cons (SCM_BOOL_F, scm_long2num (j - cstart));
-}
-#undef FUNC_NAME
-
-static unsigned char *
-scm_do_read_line (SCM port, int *len_p)
-{
-  scm_port *pt = SCM_PTAB_ENTRY (port);
-  unsigned char *end;
-
-  /* I thought reading lines was simple.  Mercy me.  */
-
-  /* The common case: the buffer contains a complete line. 
-     This needs to be fast.  */
-  if ((end = memchr (pt->read_pos, '\n', (pt->read_end - pt->read_pos)))
-          != 0)
-    {
-      int buf_len = (end + 1) - pt->read_pos;
-      /* Allocate a buffer of the perfect size.  */
-      unsigned char *buf = scm_must_malloc (buf_len + 1, "%read-line");
-
-      memcpy (buf, pt->read_pos, buf_len);
-      pt->read_pos += buf_len;
-
-      buf[buf_len] = '\0';
-
-      *len_p = buf_len;
-      return buf;
-    }
-
-  /* The buffer contains no newlines.  */
-  {
-    /* When live, len is always the number of characters in the
-       current buffer that are part of the current line.  */
-    int len = (pt->read_end - pt->read_pos);
-    int buf_size = (len < 50) ? 60 : len * 2;
-    /* Invariant: buf always has buf_size + 1 characters allocated;
-       the `+ 1' is for the final '\0'.  */
-    unsigned char *buf = scm_must_malloc (buf_size + 1, "%read-line");
-    int buf_len = 0;
-
-    for (;;)
-      {
-       if (buf_len + len > buf_size)
-         {
-           int new_size = (buf_len + len) * 2;
-           buf = scm_must_realloc (buf, buf_size + 1, new_size + 1,
-                                   "%read-line");
-           buf_size = new_size;
-         }
-
-       /* Copy what we've got out of the port, into our buffer.  */
-       memcpy (buf + buf_len, pt->read_pos, len);
-       buf_len += len;
-       pt->read_pos += len;
-
-       /* If we had seen a newline, we're done now.  */
-       if (end)
-         break;
-
-       /* Get more characters.  */
-       if (scm_fill_input (port) == EOF)
-         {
-           /* If we're missing a final newline in the file, return
-              what we did get, sans newline.  */
-           if (buf_len > 0)
-             break;
-
-           free (buf);
-           return 0;
-         }
-
-       /* Search the buffer for newlines.  */
-       if ((end = memchr (pt->read_pos, '\n',
-                          (len = (pt->read_end - pt->read_pos))))
-           != 0)
-         len = (end - pt->read_pos) + 1;
-      }
-
-    /* I wonder how expensive this realloc is.  */
-    buf = scm_must_realloc (buf, buf_size + 1, buf_len + 1, "%read-line");
-    buf[buf_len] = '\0';
-    *len_p = buf_len;
-    return buf;
-  }
-}  
-
-
-/*
- * %read-line 
- * truncates any terminating newline from its input, and returns
- * a cons of the string read and its terminating character.  Doing
- * so makes it easy to implement the hairy `read-line' options
- * efficiently in Scheme.
- */
-
-SCM_DEFINE (scm_read_line, "%read-line", 0, 1, 0, 
-            (SCM port),
-           "Read a newline-terminated line from @var{port}, allocating storage 
as\n"
-           "necessary.  The newline terminator (if any) is removed from the 
string,\n"
-           "and a pair consisting of the line and its delimiter is returned.  
The\n"
-           "delimiter may be either a newline or the @var{eof-object}; if\n"
-           "@code{%read-line} is called at the end of file, it returns the 
pair\n"
-           "@code{(#<eof> . #<eof>)}.")
-#define FUNC_NAME s_scm_read_line
-{
-  scm_port *pt;
-  char *s;
-  int slen;
-  SCM line, term;
-
-  if (SCM_UNBNDP (port))
-    port = scm_cur_inp;
-  SCM_VALIDATE_OPINPORT (1,port);
-
-  pt = SCM_PTAB_ENTRY (port);
-  if (pt->rw_active == SCM_PORT_WRITE)
-    scm_ptobs[SCM_PTOBNUM (port)].flush (port);
-
-  s = (char *) scm_do_read_line (port, &slen);
-
-  if (s == NULL)
-    term = line = SCM_EOF_VAL;
-  else
-    {
-      if (s[slen-1] == '\n')
-       {
-         term = SCM_MAKE_CHAR ('\n');
-         s[slen-1] = '\0';
-         line = scm_take_str (s, slen-1);
-         scm_done_malloc (-1);
-         SCM_INCLINE (port);
-       }
-      else
-       {
-         /* Fix: we should check for eof on the port before assuming this. */
-         term = SCM_EOF_VAL;
-         line = scm_take_str (s, slen);
-         SCM_COL (port) += slen;
-       }         
-    }
-
-  if (pt->rw_random)
-    pt->rw_active = SCM_PORT_READ;
-
-  return scm_cons (line, term);
-}
-#undef FUNC_NAME
-
-SCM_DEFINE (scm_write_line, "write-line", 1, 1, 0,
-            (SCM obj, SCM port),
-           "Display @var{obj} and a newline character to @var{port}.  If 
@var{port}\n"
-           "is not specified, @code{(current-output-port)} is used.  This 
function\n"
-           "is equivalent to:\n\n"
-           "@smalllisp\n"
-           "(display obj [port])\n"
-           "(newline [port])\n"
-           "@end smalllisp")
-#define FUNC_NAME s_scm_write_line
-{
-  scm_display (obj, port);
-  return scm_newline (port);
 }
 #undef FUNC_NAME
 
Index: guile/guile-core/libguile/ioext.h
diff -u guile/guile-core/libguile/ioext.h:1.22 
guile/guile-core/libguile/ioext.h:1.23
--- guile/guile-core/libguile/ioext.h:1.22      Sat Jan  6 14:03:07 2001
+++ guile/guile-core/libguile/ioext.h   Wed Jan 24 13:45:09 2001
@@ -2,7 +2,7 @@
 
 #ifndef IOEXTH
 #define IOEXTH
-/*     Copyright (C) 1995, 1996, 1997, 1998, 2000 Free Software Foundation, 
Inc.
+/*     Copyright (C) 1995, 1996, 1997, 1998, 2000, 2001 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
@@ -50,10 +50,6 @@
 
 extern SCM scm_read_string_x_partial (SCM str, SCM port_or_fdes, SCM start,
                                      SCM end);
-extern SCM scm_read_delimited_x (SCM delims, SCM buf, SCM gobble, SCM port,
-                                SCM offset, SCM length);
-extern SCM scm_read_line (SCM port);
-extern SCM scm_write_line (SCM obj, SCM port);
 extern SCM scm_ftell (SCM object);
 extern SCM scm_redirect_port (SCM into_pt, SCM from_pt);
 extern SCM scm_dup_to_fdes (SCM fd_or_port, SCM newfd);
Index: guile/guile-core/libguile/posix.c
diff -u guile/guile-core/libguile/posix.c:1.78 
guile/guile-core/libguile/posix.c:1.79
--- guile/guile-core/libguile/posix.c:1.78      Wed Nov 22 03:20:03 2000
+++ guile/guile-core/libguile/posix.c   Wed Jan 24 13:45:09 2001
@@ -100,7 +100,6 @@
 
 #include <signal.h>
 
-extern FILE *popen ();
 extern char ** environ;
 
 #include <grp.h>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]