projects
/
pspp-builds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge commit 'origin/stable'
[pspp-builds.git]
/
src
/
data
/
identifier.c
diff --git
a/src/data/identifier.c
b/src/data/identifier.c
index 5c25cd0781c6520a7a525d778f2855a47f6a99f0..7bd2261e60f15ac8f162996b7ee346c1b0eb5468 100644
(file)
--- a/
src/data/identifier.c
+++ b/
src/data/identifier.c
@@
-1,5
+1,5
@@
/* PSPP - a program for statistical analysis.
/* PSPP - a program for statistical analysis.
- Copyright (C) 1997-9, 2000, 2005 Free Software Foundation, Inc.
+ Copyright (C) 1997-9, 2000, 2005
, 2009
Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@
-35,7
+35,7
@@
bool
lex_is_id1 (char c_)
{
unsigned char c = c_;
lex_is_id1 (char c_)
{
unsigned char c = c_;
- return isalpha (c) || c == '@' || c == '#' || c == '$';
+ return isalpha (c) || c == '@' || c == '#' || c == '$'
|| c >= 128
;
}
}
@@
-74,11
+74,19
@@
lex_id_get_length (struct substring string)
and those characters are identical to KEYWORD. */
bool
lex_id_match (struct substring keyword, struct substring token)
and those characters are identical to KEYWORD. */
bool
lex_id_match (struct substring keyword, struct substring token)
+{
+ return lex_id_match_n (keyword, token, 3);
+}
+
+/* Returns true if TOKEN is a case-insensitive match for at least
+ the first N characters of KEYWORD. */
+bool
+lex_id_match_n (struct substring keyword, struct substring token, size_t n)
{
size_t token_len = ss_length (token);
size_t keyword_len = ss_length (keyword);
{
size_t token_len = ss_length (token);
size_t keyword_len = ss_length (keyword);
- if (token_len >=
3
&& token_len < keyword_len)
+ if (token_len >=
n
&& token_len < keyword_len)
return ss_equals_case (ss_head (keyword, token_len), token);
else
return ss_equals_case (keyword, token);
return ss_equals_case (ss_head (keyword, token_len), token);
else
return ss_equals_case (keyword, token);