summaryrefslogtreecommitdiffstats
path: root/script.c
diff options
context:
space:
mode:
authorBryan Newbold <bnewbold@robocracy.org>2017-02-20 00:05:26 -0800
committerBryan Newbold <bnewbold@robocracy.org>2017-02-20 00:05:26 -0800
commitdeda2c0fd8689349fea2a900199a76ff7ecb319e (patch)
treec9726d54a0806a9b0c75e6c82db8692aea0053cf /script.c
parent3278b75942bdbe706f7a0fba87729bb1e935b68b (diff)
downloadscm-deda2c0fd8689349fea2a900199a76ff7ecb319e.tar.gz
scm-deda2c0fd8689349fea2a900199a76ff7ecb319e.zip
Import Upstream version 5d6upstream/5d6
Diffstat (limited to 'script.c')
-rw-r--r--script.c41
1 files changed, 27 insertions, 14 deletions
diff --git a/script.c b/script.c
index efeaf5b..5cbe10f 100644
--- a/script.c
+++ b/script.c
@@ -15,26 +15,26 @@
* the Free Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111, USA.
*
* As a special exception, the Free Software Foundation gives permission
- * for additional uses of the text contained in its release of GUILE.
+ * for additional uses of the text contained in its release of SCM.
*
- * The exception is that, if you link the GUILE library with other files
+ * The exception is that, if you link the SCM library with other files
* to produce an executable, this does not by itself cause the
* resulting executable to be covered by the GNU General Public License.
* Your use of that executable is in no way restricted on account of
- * linking the GUILE library code into it.
+ * linking the SCM library code into it.
*
* This exception does not however invalidate any other reasons why
* the executable file might be covered by the GNU General Public License.
*
* This exception applies only to the code released by the
- * Free Software Foundation under the name GUILE. If you copy
+ * Free Software Foundation under the name SCM. If you copy
* code from other Free Software Foundation releases into a copy of
- * GUILE, as the General Public License permits, the exception does
+ * SCM, as the General Public License permits, the exception does
* not apply to the code that you add in this way. To avoid misleading
* anyone as to the status of such modified files, you must delete
* this exception notice from them.
*
- * If you write modifications of your own for GUILE, it is your choice
+ * If you write modifications of your own for SCM, it is your choice
* whether to permit this exception to apply to your modifications.
* If you do not wish that, delete this exception notice.
*/
@@ -52,13 +52,13 @@
#ifdef linux
# include <unistd.h> /* for X_OK define */
#endif /* def linux */
-#ifdef __svr4__
+#ifdef __SVR4
# include <unistd.h> /* for X_OK define */
#else
# ifdef __sgi__
# include <unistd.h> /* for X_OK define */
# endif /* def __sgi__ */
-#endif /* def __svr4__ */
+#endif /* def __SVR4 */
/* Concatentate str2 onto str1 at position n and return concatenated
string if file exists; 0 otherwise. */
@@ -124,7 +124,7 @@ char *scm_sep_init_try(path, sep, initname)
# define X_OK 1
#endif /* ndef X_OK */
-#ifdef unix
+#ifdef HAVE_UNIX
# include <stdio.h>
char *script_find_executable(name)
@@ -156,7 +156,6 @@ char *script_find_executable(name)
#endif /* unix */
#ifdef MSDOS
-
# define DEFAULT_PATH "C:\\DOS"
# define PATH_DELIMITER ';'
# define ABSOLUTE_FILENAME_P(fname) ((fname[0] == '\\') \
@@ -170,6 +169,20 @@ char *dld_find_executable(file)
}
#endif /* def MSDOS */
+#ifdef __IBMC__
+# define PATH_DELIMITER ';'
+# define ABSOLUTE_FILENAME_P(fname) ((fname[0] == '/') \
+ || (fname[0] == '\\') \
+ || (fname[0] && (fname[1] == ':')))
+
+char *dld_find_executable(file)
+ const char *file;
+{
+ /* fprintf(stderr, "dld_find_executable %s -> %s\n", file, scm_cat_path(0L, file, 0L)); fflush(stderr); */
+ return scm_cat_path(0L, file, 0L);
+}
+#endif /* def __IBMC__ */
+
/* Given dld_find_executable()'s best guess for the pathname of this
executable, find (and verify the existence of) initname in the
implementation-vicinity of this program. Returns a newly allocated
@@ -227,7 +240,7 @@ char *find_impl_file(exec_path, generic_name, initname, sep)
path = scm_sep_init_try(path, sep, initname);
if (path) return path;
}
- if (!strcmp(peer,"src")) break;
+ if (!strcmp(peer, "src")) break;
}
if (generic_name) {
@@ -242,7 +255,7 @@ char *find_impl_file(exec_path, generic_name, initname, sep)
path = scm_sep_init_try(path, sep, initname);
if (path) return path;
}
- if (!strcmp(peer,"src")) break;
+ if (!strcmp(peer, "src")) break;
}}
/* Look for initname in executable-name peer directory. */
@@ -377,7 +390,7 @@ char **script_process_argv(argc, argv)
int nargc = argc, argi = 1, nargi = 1;
char *narg, **nargv;
if (!(argc > 2 && script_meta_arg_P(argv[1]))) return 0L;
- if (!(nargv = (char **)malloc((1 + nargc) * sizeof(char*)))) return 0L;
+ if (!(nargv = (char **)malloc((1 + nargc) * sizeof(char *)))) return 0L;
nargv[0] = argv[0];
while (((argi+1) < argc) && (script_meta_arg_P(argv[argi]))) {
FILE *f = fopen(argv[++argi], "r");
@@ -389,7 +402,7 @@ char **script_process_argv(argc, argv)
case '\n': goto found_args;
}
found_args: while ((narg = script_read_arg(f)))
- if (!(nargv = (char **)realloc(nargv, (1 + ++nargc) * sizeof(char*))))
+ if (!(nargv = (char **)realloc(nargv, (1 + ++nargc) * sizeof(char *))))
return 0L;
else nargv[nargi++] = narg;
fclose(f);