Ævar Arnfjörð Bjarmason writes:
 > > Just wondering: should I fix the code or leave the documentation fixed?
 > 
 > The code, | should work as OR but doesn't. There's a bug filed for
 > this (which I didn't find).

Probably mine.

 > I looked at it for a bit recently but didn't manage to fix it before
 > getting distracted with other things, but I suspect one of the
 > tokenizer rules is being too agressive and slurping up "foo|bar" as a
 > literal token or something like that. At least that's how it gets
 > parsed IIRC.

That's exactly the problem.  '|' ends up being a string rather than a
token.  If somebody checks this in, tell me and I'll restore the docs
to include | as a synonym for "OR".  I've made other improvements to
the docs.  If somebody familiar with the intended operation could give
them a once-over look, I'd appreciate it.
http://wiki.openstreetmap.org/wiki/JOSM/Search_function 


nel...@nelson-desktop:~/osm/trunk$ svn diff
Index: src/org/openstreetmap/josm/actions/search/PushbackTokenizer.java
===================================================================
--- src/org/openstreetmap/josm/actions/search/PushbackTokenizer.java    
(revision 1147)
+++ src/org/openstreetmap/josm/actions/search/PushbackTokenizer.java    
(working copy)
@@ -53,6 +53,8 @@
                                return "(";
                        case ')':
                                return ")";
+                       case '|':
+                               return "|";
                        case '"':
                                s = new StringBuilder(" ");
                                for (int nc = search.read(); nc != -1 && nc != 
'"'; nc = search.read())
@@ -69,7 +71,7 @@
                                        return " "+s.toString();
                                }
                                c = (char)next;
-                               if (c == ' ' || c == '\t' || c == '"' || c == 
':' || c == '(' || c == ')') {
+                               if (c == ' ' || c == '\t' || c == '"' || c == 
':' || c == '(' || c == ')' || c == '|') {
                                        search.unread(next);
                                        if (s.toString().equals("OR"))
                                                return "|";


-- 
--my blog is at    http://blog.russnelson.com   | Delegislation is a slippery
Crynwr sells support for free software  | PGPok | slope to prosperity.
521 Pleasant Valley Rd. | +1 315-323-1241       | Fewer laws, more freedom.
Potsdam, NY 13676-3213  |     Sheepdog          | (Not a GOP supporter).

_______________________________________________
josm-dev mailing list
[email protected]
http://lists.openstreetmap.org/listinfo/josm-dev

Reply via email to