/[m4]/m4/modules/stdlib.c
ViewVC logotype

Diff of /m4/modules/stdlib.c

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

revision 1.5 by gary, Sun Aug 19 10:53:56 2001 UTC revision 1.6 by akim, Fri Sep 7 10:49:59 2001 UTC
# Line 1  Line 1 
1  /* GNU m4 -- A simple macro processor  /* GNU m4 -- A simple macro processor
2     Copyright 1999, 2000 Free Software Foundation, Inc.     Copyright 1999, 2000, 2001 Free Software Foundation, Inc.
3    
4     This program is free software; you can redistribute it and/or modify     This program is free software; you can redistribute it and/or modify
5     it under the terms of the GNU General Public License as published by     it under the terms of the GNU General Public License as published by
# Line 24  Line 24 
24  #include <pwd.h>  #include <pwd.h>
25  #include <stdlib.h>  #include <stdlib.h>
26  #include <unistd.h>  #include <unistd.h>
27  #ifdef TM_IN_SYS_TIME  #if TM_IN_SYS_TIME
28  #  include <sys/time.h>  #  include <sys/time.h>
29  #else  #else
30  #  include <time.h>  #  include <time.h>
# Line 67  m4_builtin m4_builtin_table[] = Line 67  m4_builtin m4_builtin_table[] =
67    
68    { 0, 0, FALSE, FALSE },    { 0, 0, FALSE, FALSE },
69  };  };
   
70    
71  /**  /**
72   * getcwd()   * getcwd()
# Line 80  M4BUILTIN_HANDLER (getcwd) Line 79  M4BUILTIN_HANDLER (getcwd)
79    if (m4_bad_argc (argv[0], argc, 1, 1))    if (m4_bad_argc (argv[0], argc, 1, 1))
80      return;      return;
81    
82    bp = getcwd(buf, sizeof buf);    bp = getcwd (buf, sizeof buf);
83    
84    if (bp != NULL)               /* in case of error return null string */    if (bp != NULL)               /* in case of error return null string */
85      m4_shipout_string (obs, buf, 0 , FALSE);      m4_shipout_string (obs, buf, 0, FALSE);
86  }  }
87    
88  /**  /**
# Line 96  M4BUILTIN_HANDLER (getenv) Line 95  M4BUILTIN_HANDLER (getenv)
95    if (m4_bad_argc (argv[0], argc, 2, 2))    if (m4_bad_argc (argv[0], argc, 2, 2))
96      return;      return;
97    
98    env = getenv((char*)M4ARG(1));    env = getenv (M4ARG (1));
99    
100    if (env != NULL)    if (env != NULL)
101      m4_shipout_string (obs, env, 0, FALSE);      m4_shipout_string (obs, env, 0, FALSE);
# Line 113  M4BUILTIN_HANDLER (setenv) Line 112  M4BUILTIN_HANDLER (setenv)
112      return;      return;
113    
114    if (argc == 4)    if (argc == 4)
115      if (!m4_numeric_arg(argv[0], (char*)M4ARG(3), &overwrite))      if (!m4_numeric_arg (argv[0], M4ARG (3), &overwrite))
116        return;        return;
117    
118  #ifdef HAVE_SETENV  #if HAVE_SETENV
119    setenv((char*)M4ARG(1), (char*)M4ARG(2), overwrite);    setenv (M4ARG (1), M4ARG (2), overwrite);
120  #else  #else
121  #ifdef HAVE_PUTENV  #if HAVE_PUTENV
122    if (!overwrite && getenv ((char*)M4ARG(1)) != NULL)    if (!overwrite && getenv (M4ARG (1)) != NULL)
123      return;      return;
124    
125    obstack_grow (obs, (char*)M4ARG(1), strlen ((char*)M4ARG(1)));    obstack_grow (obs, M4ARG (1), strlen (M4ARG (1)));
126    obstack_1grow (obs, '=');    obstack_1grow (obs, '=');
127    obstack_grow (obs, (char*)M4ARG(2), strlen ((char*)M4ARG(2)));    obstack_grow (obs, M4ARG (2), strlen (M4ARG (2)));
128    obstack_1grow (obs, '\0');    obstack_1grow (obs, '\0');
129    
130    {    {
# Line 144  M4BUILTIN_HANDLER (unsetenv) Line 143  M4BUILTIN_HANDLER (unsetenv)
143    if (m4_bad_argc (argv[0], argc, 2, 2))    if (m4_bad_argc (argv[0], argc, 2, 2))
144      return;      return;
145    
146  #ifdef HAVE_UNSETENV  #if HAVE_UNSETENV
147    unsetenv ((char*)M4ARG(1));    unsetenv (M4ARG (1));
148  #endif /* HAVE_UNSETENV */  #endif /* HAVE_UNSETENV */
149  }  }
150    
# Line 173  M4BUILTIN_HANDLER (getpid) Line 172  M4BUILTIN_HANDLER (getpid)
172    if (m4_bad_argc (argv[0], argc, 1, 1))    if (m4_bad_argc (argv[0], argc, 1, 1))
173      return;      return;
174    
175    m4_shipout_int(obs, getpid());    m4_shipout_int (obs, getpid ());
176  }  }
177    
178  /**  /**
# Line 184  M4BUILTIN_HANDLER (getppid) Line 183  M4BUILTIN_HANDLER (getppid)
183    if (m4_bad_argc (argv[0], argc, 1, 1))    if (m4_bad_argc (argv[0], argc, 1, 1))
184      return;      return;
185    
186    m4_shipout_int(obs, getppid());    m4_shipout_int (obs, getppid ());
187  }  }
188    
189  /**  /**
# Line 197  M4BUILTIN_HANDLER (getpwnam) Line 196  M4BUILTIN_HANDLER (getpwnam)
196    if (m4_bad_argc (argv[0], argc, 2, 2))    if (m4_bad_argc (argv[0], argc, 2, 2))
197      return;      return;
198    
199    pw = getpwnam((char*)M4ARG(1));    pw = getpwnam (M4ARG (1));
200    
201    if (pw != NULL)    if (pw != NULL)
202      {      {
# Line 205  M4BUILTIN_HANDLER (getpwnam) Line 204  M4BUILTIN_HANDLER (getpwnam)
204        obstack_1grow (obs, ',');        obstack_1grow (obs, ',');
205        m4_shipout_string (obs, pw->pw_passwd, 0, TRUE);        m4_shipout_string (obs, pw->pw_passwd, 0, TRUE);
206        obstack_1grow (obs, ',');        obstack_1grow (obs, ',');
207        m4_shipout_int(obs, pw->pw_uid);        m4_shipout_int (obs, pw->pw_uid);
208        obstack_1grow (obs, ',');        obstack_1grow (obs, ',');
209        m4_shipout_int(obs, pw->pw_gid);        m4_shipout_int (obs, pw->pw_gid);
210        obstack_1grow (obs, ',');        obstack_1grow (obs, ',');
211        m4_shipout_string (obs, pw->pw_gecos, 0, TRUE);        m4_shipout_string (obs, pw->pw_gecos, 0, TRUE);
212        obstack_1grow (obs, ',');        obstack_1grow (obs, ',');
# Line 228  M4BUILTIN_HANDLER (getpwuid) Line 227  M4BUILTIN_HANDLER (getpwuid)
227    if (m4_bad_argc (argv[0], argc, 2, 2))    if (m4_bad_argc (argv[0], argc, 2, 2))
228      return;      return;
229    
230    if (!m4_numeric_arg(argv[0], (char*)M4ARG(1), &uid))    if (!m4_numeric_arg (argv[0], M4ARG (1), &uid))
231      return;      return;
232    
233    pw = getpwuid(uid);    pw = getpwuid (uid);
234    
235    if (pw != NULL)    if (pw != NULL)
236      {      {
# Line 239  M4BUILTIN_HANDLER (getpwuid) Line 238  M4BUILTIN_HANDLER (getpwuid)
238        obstack_1grow (obs, ',');        obstack_1grow (obs, ',');
239        m4_shipout_string (obs, pw->pw_passwd, 0, TRUE);        m4_shipout_string (obs, pw->pw_passwd, 0, TRUE);
240        obstack_1grow (obs, ',');        obstack_1grow (obs, ',');
241        m4_shipout_int(obs, pw->pw_uid);        m4_shipout_int (obs, pw->pw_uid);
242        obstack_1grow (obs, ',');        obstack_1grow (obs, ',');
243        m4_shipout_int(obs, pw->pw_gid);        m4_shipout_int (obs, pw->pw_gid);
244        obstack_1grow (obs, ',');        obstack_1grow (obs, ',');
245        m4_shipout_string (obs, pw->pw_gecos, 0, TRUE);        m4_shipout_string (obs, pw->pw_gecos, 0, TRUE);
246        obstack_1grow (obs, ',');        obstack_1grow (obs, ',');
# Line 261  M4BUILTIN_HANDLER (hostname) Line 260  M4BUILTIN_HANDLER (hostname)
260    if (m4_bad_argc (argv[0], argc, 1, 1))    if (m4_bad_argc (argv[0], argc, 1, 1))
261      return;      return;
262    
263    if (gethostname(buf, sizeof buf) < 0)    if (gethostname (buf, sizeof buf) < 0)
264      return;      return;
265    
266    m4_shipout_string (obs, buf, 0, FALSE);    m4_shipout_string (obs, buf, 0, FALSE);
# Line 275  M4BUILTIN_HANDLER (rand) Line 274  M4BUILTIN_HANDLER (rand)
274    if (m4_bad_argc (argv[0], argc, 1, 1))    if (m4_bad_argc (argv[0], argc, 1, 1))
275      return;      return;
276    
277    m4_shipout_int(obs, rand());    m4_shipout_int (obs, rand ());
278  }  }
279    
280  /**  /**
# Line 289  M4BUILTIN_HANDLER (srand) Line 288  M4BUILTIN_HANDLER (srand)
288      return;      return;
289    
290    if (argc == 1)    if (argc == 1)
291      seed = time(0L) * getpid();      seed = time (0L) * getpid ();
292    else    else
293      {      {
294        if (!m4_numeric_arg(argv[0], (char*)M4ARG(1), &seed))        if (!m4_numeric_arg (argv[0], M4ARG (1), &seed))
295          return;          return;
296      }      }
297    
298    srand(seed);    srand (seed);
299  }  }
300    
301  /**  /**
# Line 309  M4BUILTIN_HANDLER (uname) Line 308  M4BUILTIN_HANDLER (uname)
308    if (m4_bad_argc (argv[0], argc, 1, 1))    if (m4_bad_argc (argv[0], argc, 1, 1))
309      return;      return;
310    
311    if (uname(&ut) == 0)    if (uname (&ut) == 0)
312      {      {
313        m4_shipout_string (obs, ut.sysname, 0, TRUE);        m4_shipout_string (obs, ut.sysname, 0, TRUE);
314        obstack_1grow (obs, ',');        obstack_1grow (obs, ',');
# Line 331  M4BUILTIN_HANDLER (getuid) Line 330  M4BUILTIN_HANDLER (getuid)
330    if (m4_bad_argc (argv[0], argc, 1, 1))    if (m4_bad_argc (argv[0], argc, 1, 1))
331      return;      return;
332    
333    m4_shipout_int(obs, getuid());    m4_shipout_int (obs, getuid ());
334  }  }

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

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