Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

SCM Repository

[smlnj] Annotation of /sml/trunk/src/runtime/kernel/ml-options.c
ViewVC logotype

Annotation of /sml/trunk/src/runtime/kernel/ml-options.c

Parent Directory Parent Directory | Revision Log Revision Log


Revision 250 - (view) (download) (as text)

1 : monnier 249 /* ml-options.c
2 :     *
3 :     * COPYRIGHT (c) 1996 AT&T Research.
4 :     *
5 :     * Command-line argument processing utilities.
6 :     */
7 :    
8 :     #include <ctype.h>
9 :     #include "ml-base.h"
10 :     #include "ml-options.h"
11 :    
12 :     /* isRuntimeOption:
13 :     *
14 :     * Check a command line argument to see if it is a possible runtime
15 :     * system argument (i.e., has the form "@SMLxxx" or "@SMLxxx=yyy").
16 :     * If the command-line argument is a runtime-system argument, then
17 :     * return TRUE, and copy the "xxx" part into option, and set arg to
18 :     * point to the start of the "yyy" part.
19 :     */
20 :     bool_t isRuntimeOption (char *cmdLineArg, char *option, char **arg)
21 :     {
22 :     char *cp = cmdLineArg, c;
23 :    
24 :     if ((*cp++ == '@') && (*cp++ == 'S') && (*cp++ == 'M') && (*cp++ == 'L')) {
25 :     while (((c = *cp++) != '\0') && (c != '='))
26 :     *option++ = c;
27 :     *option = '\0';
28 :     *arg = cp;
29 :     return TRUE;
30 :     }
31 :     else
32 :     return FALSE;
33 :    
34 :     } /* end of isRuntimeOption */
35 :    
36 :    
37 :     /* GetSzOption:
38 :     * Get a size specification (accepting K and M suffixes).
39 :     */
40 :     int GetSzOption (int scale, char *sz)
41 :     {
42 :     char *p;
43 :    
44 :     /* find first non-digit in the string */
45 :     for (p = sz; isdigit(*p); *p++)
46 :     continue;
47 :    
48 :     if (p == sz)
49 :     return -1;
50 :     else {
51 :     switch (*p) {
52 :     case '\0':
53 :     break;
54 :     case 'k':
55 :     case 'K':
56 :     scale = ONE_K;
57 :     break;
58 :     case 'm':
59 :     case 'M':
60 :     scale = ONE_MEG;
61 :     break;
62 :     default:
63 :     return -1;
64 :     } /* end of switch */
65 :     return (scale * atoi(sz));
66 :     }
67 :    
68 :     } /* end of GetSzOption */
69 :    

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0