Ticket #19875: 19875.2.patch

File 19875.2.patch, 3.4 KB (added by GerdP, 4 years ago)

updated for r17213

  • src/org/openstreetmap/josm/data/validation/tests/MapCSSTagChecker.java

     
    356356            final MapCSSStyleSource source = new MapCSSStyleSource("");
    357357            final MapCSSParser preprocessor = new MapCSSParser(css, MapCSSParser.LexicalState.PREPROCESSOR);
    358358            try (StringReader mapcss = new StringReader(preprocessor.pp_root(source))) {
    359                 new MapCSSParser(mapcss, MapCSSParser.LexicalState.DEFAULT).sheet(source);
     359                new MapCSSParser(mapcss, MapCSSParser.LexicalState.DEFAULT).sheet(source, false);
    360360            }
    361361            // Ignore "meta" rule(s) from external rules of JOSM wiki
    362362            source.removeMetaRules();
  • src/org/openstreetmap/josm/gui/mappaint/mapcss/MapCSSParser.jj

     
    541541/**
    542542 * entry point for the main parser
    543543 * @param sheet MapCSS style source
     544 * @param metadataOnly if true, stop reading after first rule that is not a meta rule
    544545 * @throws ParseException in case of parsing error
    545546 */
    546 void sheet(MapCSSStyleSource sheet):
     547void sheet(MapCSSStyleSource sheet, boolean metadataOnly):
    547548{
    548549}
    549550{
     
    552553    (
    553554        try {
    554555            rule() w()
     556            {
     557            if (metadataOnly && !sheet.rules.isEmpty()) {
     558                // get first selector of last rule
     559                Selector sel = sheet.rules.get(sheet.rules.size() - 1).selectors.get(0);
     560                if (!(sel instanceof GeneralSelector) || !Selector.BASE_META.equals(sel.getBase())) {
     561                    return;
     562                }
     563            }
     564            }
    555565        } catch (MapCSSException mex) {
    556566            Logging.error(mex);
    557567            error_skipto(RBRACE, mex);
  • src/org/openstreetmap/josm/gui/mappaint/mapcss/MapCSSStyleSource.java

     
    168168
    169169                    // do the actual mapcss parsing
    170170                    try (Reader in2 = new StringReader(preprocessor.pp_root(this))) {
    171                         new MapCSSParser(in2, MapCSSParser.LexicalState.DEFAULT).sheet(this);
     171                        new MapCSSParser(in2, MapCSSParser.LexicalState.DEFAULT).sheet(this, metadataOnly);
    172172                    }
    173173
    174174                    loadMeta();
  • scripts/TagInfoExtract.java

     
    354354                MapCSSParser parser = new MapCSSParser(reader, MapCSSParser.LexicalState.DEFAULT);
    355355                styleSource = new MapCSSStyleSource("");
    356356                styleSource.url = "";
    357                 parser.sheet(styleSource);
     357                parser.sheet(styleSource, false);
    358358            }
    359359        }
    360360