-/* $OpenBSD: c_ulimit.c,v 1.24 2015/12/14 13:59:42 tb Exp $ */
+/* $OpenBSD: c_ulimit.c,v 1.25 2018/01/16 20:40:43 anton Exp $ */
/*
ulimit -- handle "ulimit" builtin
{ "memory(kbytes)", RLIMIT_RSS, 1024, 'm' },
{ "nofiles(descriptors)", RLIMIT_NOFILE, 1, 'n' },
{ "processes", RLIMIT_NPROC, 1, 'p' },
-#ifdef RLIMIT_VMEM
- { "vmemory(kbytes)", RLIMIT_VMEM, 1024, 'v' },
-#endif /* RLIMIT_VMEM */
{ NULL }
};
- static char options[4 + NELEM(limits) * 2];
+ const char *options = "HSat#f#c#d#s#l#m#n#p#";
int how = SOFT | HARD;
const struct limits *l;
int optc, all = 0;
- if (!options[0]) {
- /* build options string on first call - yuck */
- char *p = options;
-
- *p++ = 'H'; *p++ = 'S'; *p++ = 'a';
- for (l = limits; l->name; l++) {
- *p++ = l->option;
- *p++ = '#';
- }
- *p = '\0';
- }
/* First check for -a, -H and -S. */
while ((optc = ksh_getopt(wp, &builtin_opt, options)) != -1)
switch (optc) {