home *** CD-ROM | disk | FTP | other *** search
- /*
- (c) Copyright Taiichi Yuasa and Masami Hagiya, 1984. All rights reserved.
- Copying of this file is authorized to users who have executed the true and
- proper "License Agreement for Kyoto Common LISP" with SIGLISP.
- */
-
- #include "include.h"
-
- #ifdef ATT
- #include <signal.h>
- int
- system(command)
- char *command;
- {
- char buf[4];
- extern sigint();
-
- signal(SIGINT, SIG_IGN);
- write(4, command, strlen(command)+1);
- read(5, buf, 1);
- signal(SIGINT, sigint);
- return(buf[0]<<8);
- }
- #endif
-
- #ifdef E15
- #include <signal.h>
- int
- system(command)
- char *command;
- {
- char buf[4];
- extern sigint();
-
- signal(SIGINT, SIG_IGN);
- write(4, command, strlen(command)+1);
- read(5, buf, 1);
- signal(SIGINT, sigint);
- return(buf[0]<<8);
- }
- #endif
-
- Lsystem()
- {
- char command[1024];
- int i;
-
- check_arg(1);
- check_type_string(&vs_base[0]);
- if (vs_base[0]->st.st_fillp >= 1024)
- FEerror("Too long command line: ~S.", 1, vs_base[0]);
- for (i = 0; i < vs_base[0]->st.st_fillp; i++)
- command[i] = vs_base[0]->st.st_self[i];
- command[i] = '\0';
- vs_base[0] = make_fixnum(system(command) >> 8);
- }
-
- init_unixsys()
- {
- make_function("SYSTEM", Lsystem);
- }
-