guile-commits
[Top][All Lists]
Advanced

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

[Guile-commits] 03/09: Deprecate scm_find_executable


From: Andy Wingo
Subject: [Guile-commits] 03/09: Deprecate scm_find_executable
Date: Sun, 7 Oct 2018 10:48:01 -0400 (EDT)

wingo pushed a commit to branch master
in repository guile.

commit f34d50ad6bef28960114561064fd79f23edcab5b
Author: Andy Wingo <address@hidden>
Date:   Sun Oct 7 16:04:59 2018 +0200

    Deprecate scm_find_executable
    
    * libguile/deprecated.h:
    * libguile/deprecated.c (scm_find_executable): Deprecate.  Use strdup
      instead of weird scm_cat_path function.
    * libguile/script.h:
    * libguile/script.c: Remove old decls.
---
 libguile/deprecated.c | 50 +++++++++++++++++++++++++++++++++++-
 libguile/deprecated.h |  2 ++
 libguile/script.c     | 70 +--------------------------------------------------
 libguile/script.h     |  1 -
 4 files changed, 52 insertions(+), 71 deletions(-)

diff --git a/libguile/deprecated.c b/libguile/deprecated.c
index 2cc18fa..cc8e78b 100644
--- a/libguile/deprecated.c
+++ b/libguile/deprecated.c
@@ -21,9 +21,14 @@
 # include <config.h>
 #endif
 
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+
 #define SCM_BUILDING_DEPRECATED_CODE
 
 #include "deprecation.h"
+#include "gc.h"
 
 #include "deprecated.h"
 
@@ -31,7 +36,50 @@
 
 
 
-/* Newly deprecated code goes here.  */
+#ifndef MAXPATHLEN
+#define MAXPATHLEN 80
+#endif /* ndef MAXPATHLEN */
+#ifndef X_OK
+#define X_OK 1
+#endif /* ndef X_OK */
+
+char *
+scm_find_executable (const char *name)
+{
+  char tbuf[MAXPATHLEN];
+  int i = 0, c;
+  FILE *f;
+
+  scm_c_issue_deprecation_warning ("scm_find_executable is deprecated.");
+
+  /* fprintf(stderr, "s_f_e checking access %s ->%d\n", name, access(name, 
X_OK)); fflush(stderr); */
+  if (access (name, X_OK))
+    return 0L;
+  f = fopen (name, "r");
+  if (!f)
+    return 0L;
+  if ((fgetc (f) == '#') && (fgetc (f) == '!'))
+    {
+      while (1)
+       switch (c = fgetc (f))
+         {
+         case /*WHITE_SPACES */ ' ':
+         case '\t':
+         case '\r':
+         case '\f':
+         case EOF:
+           tbuf[i] = 0;
+           fclose (f);
+           return strdup (tbuf);
+         default:
+           tbuf[i++] = c;
+           break;
+         }
+    }
+  fclose (f);
+  return strdup (name);
+}
+
 
 
 
diff --git a/libguile/deprecated.h b/libguile/deprecated.h
index e9b6f03..543d1b8 100644
--- a/libguile/deprecated.h
+++ b/libguile/deprecated.h
@@ -111,6 +111,8 @@ typedef ptrdiff_t scm_t_ptrdiff SCM_DEPRECATED_TYPE;
 typedef struct scm_thread scm_i_thread SCM_DEPRECATED_TYPE;
 #undef SCM_DEPRECATED_TYPE
 
+SCM_DEPRECATED char* scm_find_executable (const char *name);
+
 void scm_i_init_deprecated (void);
 
 #endif
diff --git a/libguile/script.c b/libguile/script.c
index 637e706..6430484 100644
--- a/libguile/script.c
+++ b/libguile/script.c
@@ -53,33 +53,7 @@
 #include "script.h"
 
 
-/* Concatentate str2 onto str1 at position n and return concatenated
-   string if file exists; 0 otherwise. */
-
-static char *
-scm_cat_path (char *str1, const char *str2, long n)
-{
-  if (!n)
-    n = strlen (str2);
-  if (str1)
-    {
-      size_t len = strlen (str1);
-      str1 = (char *) realloc (str1, (size_t) (len + n + 1));
-      if (!str1)
-       return 0L;
-      strncat (str1 + len, str2, n);
-      return str1;
-    }
-  str1 = (char *) scm_malloc ((size_t) (n + 1));
-  if (!str1)
-    return 0L;
-  str1[0] = 0;
-  strncat (str1, str2, n);
-  return str1;
-}
-
-#ifndef LINE_INCREMENTORS
-#define LINE_INCREMENTORS  '\n'
+#ifndef WHITE_SPACES
 #ifdef MSDOS
 #define WHITE_SPACES  ' ':case '\t':case '\r':case '\f':case 26
 #else
@@ -87,48 +61,6 @@ scm_cat_path (char *str1, const char *str2, long n)
 #endif /* def MSDOS */
 #endif /* ndef LINE_INCREMENTORS */
 
-#ifndef MAXPATHLEN
-#define MAXPATHLEN 80
-#endif /* ndef MAXPATHLEN */
-#ifndef X_OK
-#define X_OK 1
-#endif /* ndef X_OK */
-
-char *
-scm_find_executable (const char *name)
-{
-  char tbuf[MAXPATHLEN];
-  int i = 0, c;
-  FILE *f;
-
-  /* fprintf(stderr, "s_f_e checking access %s ->%d\n", name, access(name, 
X_OK)); fflush(stderr); */
-  if (access (name, X_OK))
-    return 0L;
-  f = fopen (name, "r");
-  if (!f)
-    return 0L;
-  if ((fgetc (f) == '#') && (fgetc (f) == '!'))
-    {
-      while (1)
-       switch (c = fgetc (f))
-         {
-         case /*WHITE_SPACES */ ' ':
-         case '\t':
-         case '\r':
-         case '\f':
-         case EOF:
-           tbuf[i] = 0;
-           fclose (f);
-           return scm_cat_path (0L, tbuf, 0L);
-         default:
-           tbuf[i++] = c;
-           break;
-         }
-    }
-  fclose (f);
-  return scm_cat_path (0L, name, 0L);
-}
-
 
 /* Read a \nnn-style escape.  We've just read the backslash.  */
 static int
diff --git a/libguile/script.h b/libguile/script.h
index 3c418b0..51c3c61 100644
--- a/libguile/script.h
+++ b/libguile/script.h
@@ -25,7 +25,6 @@
 #include "libguile/scm.h"
 
 
-SCM_API char *scm_find_executable (const char *name);
 SCM_API char **scm_get_meta_args (int argc, char **argv);
 SCM_API int scm_count_argv (char **argv);
 SCM_API void scm_shell_usage (int fatal, char *message);



reply via email to

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