summaryrefslogtreecommitdiff
path: root/ext/standard/basic_functions.c
diff options
context:
space:
mode:
authorHannes Magnusson <bjori@php.net>2007-11-15 13:11:48 +0000
committerHannes Magnusson <bjori@php.net>2007-11-15 13:11:48 +0000
commitebc540d2c9147ef8da5d56828651cf212a39ddf2 (patch)
tree927ae9b8dd8a83ca6390103dfdf94db646fb8e6d /ext/standard/basic_functions.c
parent4a86b3d6ea4a6137d94b1801c79442e4d953bdd8 (diff)
downloadphp-git-ebc540d2c9147ef8da5d56828651cf212a39ddf2.tar.gz
- Allow numeric options
- Add tests
Diffstat (limited to 'ext/standard/basic_functions.c')
-rw-r--r--ext/standard/basic_functions.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/ext/standard/basic_functions.c b/ext/standard/basic_functions.c
index 597a9557ed..49bc6113d8 100644
--- a/ext/standard/basic_functions.c
+++ b/ext/standard/basic_functions.c
@@ -4470,7 +4470,8 @@ static int parse_opts(char * opts, opt_struct ** result)
int i, count = 0;
for (i = 0; i < strlen(opts); i++) {
- if ((opts[i] >= 65 && opts[i] <= 90) ||
+ if ((opts[i] >= 48 && opts[i] <= 57) ||
+ (opts[i] >= 65 && opts[i] <= 90) ||
(opts[i] >= 97 && opts[i] <= 122)
) {
count++;
@@ -4480,8 +4481,9 @@ static int parse_opts(char * opts, opt_struct ** result)
paras = safe_emalloc(sizeof(opt_struct), count, 0);
memset(paras, 0, sizeof(opt_struct) * count);
*result = paras;
- while ( (*opts >= 65 && *opts <= 90) ||
- (*opts >= 97 && *opts <= 122)
+ while ( (*opts >= 48 && *opts <= 57) || /* 0 - 9 */
+ (*opts >= 65 && *opts <= 90) || /* A - Z */
+ (*opts >= 97 && *opts <= 122) /* a - z */
) {
paras->opt_char = *opts;
paras->need_param = (*(++opts) == ':') ? 1 : 0;