/[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.6 by akim, Fri Sep 7 10:49:59 2001 UTC revision 1.7 by gary, Fri Oct 12 19:57:29 2001 UTC
# Line 36  Line 36 
36    
37  #define m4_builtin_table        stdlib_LTX_m4_builtin_table  #define m4_builtin_table        stdlib_LTX_m4_builtin_table
38    
39  /*              function        macros  blind */  /*              function        macros  blind minargs maxargs */
40  #define builtin_functions                       \  #define builtin_functions                                       \
41          BUILTIN (getcwd,        FALSE,  FALSE)  \          BUILTIN (getcwd,        FALSE,  FALSE,  1,      1  )    \
42          BUILTIN (getenv,        FALSE,  TRUE)   \          BUILTIN (getenv,        FALSE,  TRUE,   2,      2  )    \
43          BUILTIN (getlogin,      FALSE,  FALSE)  \          BUILTIN (getlogin,      FALSE,  FALSE,  1,      1  )    \
44          BUILTIN (getpid,        FALSE,  FALSE)  \          BUILTIN (getpid,        FALSE,  FALSE,  1,      1  )    \
45          BUILTIN (getppid,       FALSE,  FALSE)  \          BUILTIN (getppid,       FALSE,  FALSE,  1,      1  )    \
46          BUILTIN (getuid,        FALSE,  FALSE)  \          BUILTIN (getuid,        FALSE,  FALSE,  1,      1  )    \
47          BUILTIN (getpwnam,      FALSE,  TRUE)   \          BUILTIN (getpwnam,      FALSE,  TRUE,   2,      2  )    \
48          BUILTIN (getpwuid,      FALSE,  TRUE)   \          BUILTIN (getpwuid,      FALSE,  TRUE,   2,      2  )    \
49          BUILTIN (hostname,      FALSE,  FALSE)  \          BUILTIN (hostname,      FALSE,  FALSE,  1,      1  )    \
50          BUILTIN (rand,          FALSE,  FALSE)  \          BUILTIN (rand,          FALSE,  FALSE,  1,      1  )    \
51          BUILTIN (srand,         FALSE,  FALSE)  \          BUILTIN (srand,         FALSE,  FALSE,  1,      2  )    \
52          BUILTIN (setenv,        FALSE,  TRUE)   \          BUILTIN (setenv,        FALSE,  TRUE,   3,      4  )    \
53          BUILTIN (unsetenv,      FALSE,  TRUE)   \          BUILTIN (unsetenv,      FALSE,  TRUE,   2,      2  )    \
54          BUILTIN (uname,         FALSE,  FALSE)          BUILTIN (uname,         FALSE,  FALSE,  1,      1  )    \
55    
56  #define BUILTIN(handler, macros,  blind)        M4BUILTIN(handler);  
57    #define BUILTIN(handler, macros,  blind, min, max) M4BUILTIN(handler);
58    builtin_functions    builtin_functions
59  #undef BUILTIN  #undef BUILTIN
60    
61  m4_builtin m4_builtin_table[] =  m4_builtin m4_builtin_table[] =
62  {  {
63  #define BUILTIN(handler, macros, blind)         \  #define BUILTIN(handler, macros, blind, min, max)               \
64          { STR(handler), CONC(builtin_, handler), macros, blind },          { STR(handler), CONC(builtin_, handler), macros, blind, min, max },
65    
66    builtin_functions    builtin_functions
67  #undef BUILTIN  #undef BUILTIN
68    
69    { 0, 0, FALSE, FALSE },    { 0, 0, FALSE, FALSE, 0, 0 },
70  };  };
71    
72  /**  /**
# Line 76  M4BUILTIN_HANDLER (getcwd) Line 77  M4BUILTIN_HANDLER (getcwd)
77    char buf[1024];    char buf[1024];
78    char *bp;    char *bp;
79    
   if (m4_bad_argc (argv[0], argc, 1, 1))  
     return;  
   
80    bp = getcwd (buf, sizeof buf);    bp = getcwd (buf, sizeof buf);
81    
82    if (bp != NULL)               /* in case of error return null string */    if (bp != NULL)               /* in case of error return null string */
# Line 92  M4BUILTIN_HANDLER (getenv) Line 90  M4BUILTIN_HANDLER (getenv)
90  {  {
91    char *env;    char *env;
92    
   if (m4_bad_argc (argv[0], argc, 2, 2))  
     return;  
   
93    env = getenv (M4ARG (1));    env = getenv (M4ARG (1));
94    
95    if (env != NULL)    if (env != NULL)
# Line 108  M4BUILTIN_HANDLER (setenv) Line 103  M4BUILTIN_HANDLER (setenv)
103  {  {
104    int overwrite = 1;    int overwrite = 1;
105    
   if (m4_bad_argc (argv[0], argc, 3, 4))  
     return;  
   
106    if (argc == 4)    if (argc == 4)
107      if (!m4_numeric_arg (argv[0], M4ARG (3), &overwrite))      if (!m4_numeric_arg (argv[0], M4ARG (3), &overwrite))
108        return;        return;
# Line 140  M4BUILTIN_HANDLER (setenv) Line 132  M4BUILTIN_HANDLER (setenv)
132   **/   **/
133  M4BUILTIN_HANDLER (unsetenv)  M4BUILTIN_HANDLER (unsetenv)
134  {  {
   if (m4_bad_argc (argv[0], argc, 2, 2))  
     return;  
135    
136  #if HAVE_UNSETENV  #if HAVE_UNSETENV
137    unsetenv (M4ARG (1));    unsetenv (M4ARG (1));
# Line 155  M4BUILTIN_HANDLER (getlogin) Line 145  M4BUILTIN_HANDLER (getlogin)
145  {  {
146    char *login;    char *login;
147    
   if (m4_bad_argc (argv[0], argc, 1, 1))  
     return;  
   
148    login = getlogin ();    login = getlogin ();
149    
150    if (login != NULL)    if (login != NULL)
# Line 169  M4BUILTIN_HANDLER (getlogin) Line 156  M4BUILTIN_HANDLER (getlogin)
156   **/   **/
157  M4BUILTIN_HANDLER (getpid)  M4BUILTIN_HANDLER (getpid)
158  {  {
   if (m4_bad_argc (argv[0], argc, 1, 1))  
     return;  
   
159    m4_shipout_int (obs, getpid ());    m4_shipout_int (obs, getpid ());
160  }  }
161    
# Line 180  M4BUILTIN_HANDLER (getpid) Line 164  M4BUILTIN_HANDLER (getpid)
164   **/   **/
165  M4BUILTIN_HANDLER (getppid)  M4BUILTIN_HANDLER (getppid)
166  {  {
   if (m4_bad_argc (argv[0], argc, 1, 1))  
     return;  
   
167    m4_shipout_int (obs, getppid ());    m4_shipout_int (obs, getppid ());
168  }  }
169    
# Line 193  M4BUILTIN_HANDLER (getpwnam) Line 174  M4BUILTIN_HANDLER (getpwnam)
174  {  {
175    struct passwd *pw;    struct passwd *pw;
176    
   if (m4_bad_argc (argv[0], argc, 2, 2))  
     return;  
   
177    pw = getpwnam (M4ARG (1));    pw = getpwnam (M4ARG (1));
178    
179    if (pw != NULL)    if (pw != NULL)
# Line 224  M4BUILTIN_HANDLER (getpwuid) Line 202  M4BUILTIN_HANDLER (getpwuid)
202    struct passwd *pw;    struct passwd *pw;
203    int uid;    int uid;
204    
   if (m4_bad_argc (argv[0], argc, 2, 2))  
     return;  
   
205    if (!m4_numeric_arg (argv[0], M4ARG (1), &uid))    if (!m4_numeric_arg (argv[0], M4ARG (1), &uid))
206      return;      return;
207    
# Line 257  M4BUILTIN_HANDLER (hostname) Line 232  M4BUILTIN_HANDLER (hostname)
232  {  {
233    char buf[1024];    char buf[1024];
234    
   if (m4_bad_argc (argv[0], argc, 1, 1))  
     return;  
   
235    if (gethostname (buf, sizeof buf) < 0)    if (gethostname (buf, sizeof buf) < 0)
236      return;      return;
237    
# Line 271  M4BUILTIN_HANDLER (hostname) Line 243  M4BUILTIN_HANDLER (hostname)
243   **/   **/
244  M4BUILTIN_HANDLER (rand)  M4BUILTIN_HANDLER (rand)
245  {  {
   if (m4_bad_argc (argv[0], argc, 1, 1))  
     return;  
   
246    m4_shipout_int (obs, rand ());    m4_shipout_int (obs, rand ());
247  }  }
248    
# Line 284  M4BUILTIN_HANDLER (srand) Line 253  M4BUILTIN_HANDLER (srand)
253  {  {
254    int seed;    int seed;
255    
   if (m4_bad_argc (argv[0], argc, 1, 2))  
     return;  
   
256    if (argc == 1)    if (argc == 1)
257      seed = time (0L) * getpid ();      seed = time (0L) * getpid ();
258    else    else
# Line 305  M4BUILTIN_HANDLER (uname) Line 271  M4BUILTIN_HANDLER (uname)
271  {  {
272    struct utsname ut;    struct utsname ut;
273    
   if (m4_bad_argc (argv[0], argc, 1, 1))  
     return;  
   
274    if (uname (&ut) == 0)    if (uname (&ut) == 0)
275      {      {
276        m4_shipout_string (obs, ut.sysname, 0, TRUE);        m4_shipout_string (obs, ut.sysname, 0, TRUE);
# Line 327  M4BUILTIN_HANDLER (uname) Line 290  M4BUILTIN_HANDLER (uname)
290   **/   **/
291  M4BUILTIN_HANDLER (getuid)  M4BUILTIN_HANDLER (getuid)
292  {  {
   if (m4_bad_argc (argv[0], argc, 1, 1))  
     return;  
   
293    m4_shipout_int (obs, getuid ());    m4_shipout_int (obs, getuid ());
294  }  }

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