summaryrefslogtreecommitdiff
path: root/src/output.cc
diff options
context:
space:
mode:
authorBruno Haible <bruno@clisp.org>2002-12-09 12:35:55 +0000
committerBruno Haible <bruno@clisp.org>2002-12-09 12:35:55 +0000
commit5090f380e36c07511a048603d81f6af7f97ca591 (patch)
treebc14e985d6ea5d221c1b6a79db7042b773edd01b /src/output.cc
parentd776b8df6567987ac5b3defab7a996448a0ba4c4 (diff)
downloadgperf-5090f380e36c07511a048603d81f6af7f97ca591.tar.gz
Rework positions handling.
Diffstat (limited to 'src/output.cc')
-rw-r--r--src/output.cc5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/output.cc b/src/output.cc
index 2496a23..8a76936 100644
--- a/src/output.cc
+++ b/src/output.cc
@@ -471,7 +471,10 @@ Output::output_hash_function ()
" };\n");
/* Optimize special case of ``-k 1,$'' */
- if (option[DEFAULTCHARS])
+ if (!option[ALLCHARS]
+ && option.get_key_positions().get_size() == 2
+ && option.get_key_positions()[0] == 1
+ && option.get_key_positions()[1] == Positions::LASTCHAR)
printf (" return %sasso_values[%sstr[len - 1]] + asso_values[%sstr[0]];\n",
option[NOLENGTH] ? "" : "len + ",
char_to_index, char_to_index);