[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);
- [Guile-commits] branch master updated (6cd9b31 -> 5787f4e), Andy Wingo, 2018/10/07
- [Guile-commits] 02/09: Remove unimplemented decl in script.h, Andy Wingo, 2018/10/07
- [Guile-commits] 01/09: Comment out some unused definitions, Andy Wingo, 2018/10/07
- [Guile-commits] 03/09: Deprecate scm_find_executable,
Andy Wingo <=
- [Guile-commits] 06/09: Revert "Remove jit_names.c.", Andy Wingo, 2018/10/07
- [Guile-commits] 04/09: Fix GCC warning with %char-set-dump., Andy Wingo, 2018/10/07
- [Guile-commits] 08/09: Fix unused local warning in vm-engine.c, Andy Wingo, 2018/10/07
- [Guile-commits] 07/09: Fix lightning build with jit_names.c, Andy Wingo, 2018/10/07
- [Guile-commits] 05/09: Remove jit_names.c., Andy Wingo, 2018/10/07
- [Guile-commits] 09/09: Fix -Wunused-function error for x86 not on sun, Andy Wingo, 2018/10/07