/[gcl]/gcl/o/unixfsys.c
ViewVC logotype

Diff of /gcl/o/unixfsys.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.6 by mjthomas, Thu Jun 6 23:57:15 2002 UTC revision 1.7 by camm, Sat Jul 20 07:10:56 2002 UTC
# Line 20  Foundation, 675 Mass Ave, Cambridge, MA Line 20  Foundation, 675 Mass Ave, Cambridge, MA
20  */  */
21    
22  #include <string.h>  #include <string.h>
23    #include <stdlib.h>
24    
25  #define IN_UNIXFSYS  #define IN_UNIXFSYS
26  #include "include.h"  #include "include.h"
# Line 33  Foundation, 675 Mass Ave, Cambridge, MA Line 34  Foundation, 675 Mass Ave, Cambridge, MA
34  #define HAVE_RENAME  #define HAVE_RENAME
35  #endif  #endif
36    
37  void Ldirectory();  void Ldirectory(void);
38    
39    
40    
# Line 141  DEV_FOUND: Line 142  DEV_FOUND:
142    
143  #ifdef HAVE_GETCWD  #ifdef HAVE_GETCWD
144  char *  char *
145  getwd(buffer)  getwd(char *buffer)
 char *buffer;  
146  {  {
147          char *getcwd();          char *getcwd(char *, size_t);
148    
149          return(getcwd(buffer, MAXPATHLEN));          return(getcwd(buffer, MAXPATHLEN));
150  }  }
# Line 204  char *buffer; Line 204  char *buffer;
204    
205  #endif  #endif
206    
207    void
208  coerce_to_filename(pathname, p)  coerce_to_filename(object pathname, char *p)
 object pathname;  
 char *p;  
209  {  {
210    int n;    int n;
211    object namestring;    object namestring;
# Line 215  char *p; Line 213  char *p;
213  #ifndef NO_PWD_H    #ifndef NO_PWD_H  
214    if(namestring->st.st_self[0]=='~')    if(namestring->st.st_self[0]=='~')
215      {char name[20];      {char name[20];
      int j;  
      object ans;  
216       char *q = namestring->st.st_self;       char *q = namestring->st.st_self;
217  #ifndef __STDC__  #ifndef __STDC__
218       extern struct passwd *getpwuid();       extern struct passwd *getpwuid();
219       extern struct passwd *getpwnam();       extern struct passwd *getpwnam();
220  #endif  #endif
221    
      char filename[MAXPATHLEN];  
222       struct passwd *pwent;       struct passwd *pwent;
223       int m;       int m=0;
224       q=namestring->st.st_self;       q=namestring->st.st_self;
225       for (n=0; n< namestring->st.st_fillp; n++)       for (n=0; n< namestring->st.st_fillp; n++)
226         if (q[n]=='/') break;         if (q[n]=='/') break;
# Line 254  char *p; Line 249  char *p;
249    
250    
251  object  object
252  truename(pathname)  truename(object pathname)
 object pathname;  
253  {  {
254          register char *p, *q;          register char *p, *q;
255          char filename[MAXPATHLEN];          char filename[MAXPATHLEN];
256          char truefilename[MAXPATHLEN];          char truefilename[MAXPATHLEN];
257          char current_directory[MAXPATHLEN];          char current_directory[MAXPATHLEN];
258          char directory[MAXPATHLEN];          char directory[MAXPATHLEN];
259          char *getwd();          char *getwd(char *buffer);
260          coerce_to_filename(pathname, filename);          coerce_to_filename(pathname, filename);
261    
262    
# Line 319  object pathname; Line 313  object pathname;
313          chdir(current_directory);          chdir(current_directory);
314          vs_push(make_simple_string(truefilename));          vs_push(make_simple_string(truefilename));
315          pathname = coerce_to_pathname(vs_head);          pathname = coerce_to_pathname(vs_head);
316          vs_pop;          vs_popp;
317          return(pathname);          return(pathname);
318  }  }
319  object sSAallow_gzipped_fileA;  object sSAallow_gzipped_fileA;
320    
321  bool  bool
322  file_exists(file)  file_exists(object file)
 object file;  
323  {  {
324          char filename[MAXPATHLEN];          char filename[MAXPATHLEN];
325          struct stat filestatus;          struct stat filestatus;
# Line 355  object file; Line 348  object file;
348  }  }
349    
350  FILE *  FILE *
351  backup_fopen(filename, option)  backup_fopen(char *filename, char *option)
 char *filename,*option;  
352  {  {
353          char backupfilename[MAXPATHLEN];          char backupfilename[MAXPATHLEN];
354          char command[MAXPATHLEN * 2];          char command[MAXPATHLEN * 2];
# Line 368  char *filename,*option; Line 360  char *filename,*option;
360  }  }
361    
362  int  int
363  file_len(fp)  file_len(FILE *fp)
 FILE *fp;  
364  {  {
365          struct stat filestatus;          struct stat filestatus;
366    
# Line 378  FILE *fp; Line 369  FILE *fp;
369          else return 0;          else return 0;
370  }  }
371    
372  Ltruename()  void
373    Ltruename(void)
374  {  {
375          check_arg(1);          check_arg(1);
376          check_type_or_pathname_string_symbol_stream(&vs_base[0]);          check_type_or_pathname_string_symbol_stream(&vs_base[0]);
377          vs_base[0] = truename(vs_base[0]);          vs_base[0] = truename(vs_base[0]);
378  }  }
379    
380  Lrename_file()  void
381    Lrename_file(void)
382  {  {
383          char filename[MAXPATHLEN];          char filename[MAXPATHLEN];
384          char newfilename[MAXPATHLEN];          char newfilename[MAXPATHLEN];
         char command[MAXPATHLEN * 2];  
385    
386          check_arg(2);          check_arg(2);
387          check_type_or_pathname_string_symbol_stream(&vs_base[0]);          check_type_or_pathname_string_symbol_stream(&vs_base[0]);
# Line 452  object path; Line 444  object path;
444          RETURN1(path);          RETURN1(path);
445  }  }
446    
447  Lprobe_file()  void
448    Lprobe_file(void)
449  {  {
450          check_arg(1);          check_arg(1);
451    
# Line 463  Lprobe_file() Line 456  Lprobe_file()
456                  vs_base[0] = Cnil;                  vs_base[0] = Cnil;
457  }  }
458    
459  Lfile_write_date()  void
460    Lfile_write_date(void)
461  {  {
462          char filename[MAXPATHLEN];          char filename[MAXPATHLEN];
463          struct stat filestatus;          struct stat filestatus;
# Line 475  Lfile_write_date() Line 469  Lfile_write_date()
469          vs_base[0] = unix_time_to_universal_time(filestatus.st_mtime);          vs_base[0] = unix_time_to_universal_time(filestatus.st_mtime);
470  }  }
471    
472  Lfile_author()  void
473    Lfile_author(void)
474  {  {
475          char filename[MAXPATHLEN];          char filename[MAXPATHLEN];
476  #ifndef NO_PWD_H  #ifndef NO_PWD_H
# Line 497  Lfile_author() Line 492  Lfile_author()
492                    
493  }  }
494    
495  Luser_homedir_pathname()  void
496    Luser_homedir_pathname(void)
497  {  {
498  #ifndef NO_PWD_H    #ifndef NO_PWD_H  
499          struct passwd *pwent;          struct passwd *pwent;
# Line 529  Luser_homedir_pathname() Line 524  Luser_homedir_pathname()
524    
525  #ifdef BSD  #ifdef BSD
526  void  void
527  Ldirectory()  Ldirectory(void)
528  {  {
529          char filename[MAXPATHLEN];          char filename[MAXPATHLEN];
530          char command[MAXPATHLEN * 2];          char command[MAXPATHLEN * 2];
531          FILE *fp;          FILE *fp;
532          register i, c;          register int i, c;
533          object *top = vs_top;          object *top = vs_top;
534          char iobuffer[BUFSIZ];          char iobuffer[BUFSIZ];
535          extern FILE *popen();          extern FILE *popen(const char *, const char *);
536    
537          check_arg(1);          check_arg(1);
538    
# Line 559  Ldirectory() Line 554  Ldirectory()
554          fp = popen(command, "r");          fp = popen(command, "r");
555          setbuf(fp, iobuffer);          setbuf(fp, iobuffer);
556          for (;;) {          for (;;) {
557                  for (i = 0;  c = getc(fp);  i++)                  for (i = 0;  (c = getc(fp));  i++)
558                          if (c <= 0)                          if (c <= 0)
559                                  goto L;                                  goto L;
560                          else if (c == '\n')                          else if (c == '\n')
# Line 760  Ldirectory() Line 755  Ldirectory()
755    
756  #endif  #endif
757    
758  siLchdir()  void
759    siLchdir(void)
760  {  {
761          char filename[MAXPATHLEN];          char filename[MAXPATHLEN];
762    
# Line 773  siLchdir() Line 769  siLchdir()
769                          1, vs_base[0]);                          1, vs_base[0]);
770  }  }
771    
772  init_unixfsys()  void
773    init_unixfsys(void)
774  {  {
775          make_function("TRUENAME", Ltruename);          make_function("TRUENAME", Ltruename);
776          make_function("RENAME-FILE", Lrename_file);          make_function("RENAME-FILE", Lrename_file);

Legend:
Removed from v.1.6  
changed lines
  Added in v.1.7

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26