Ignore:
Timestamp:
2009-05-30T13:58:30+02:00 (17 years ago)
Author:
stoecker
Message:

cleanup group settings in preferences

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/data/Preferences.java

    r1610 r1628  
    77import java.io.BufferedReader;
    88import java.io.File;
    9 import java.io.FileReader;
    10 import java.io.FileWriter;
     9import java.io.FileInputStream;
     10import java.io.FileOutputStream;
    1111import java.io.IOException;
     12import java.io.InputStreamReader;
     13import java.io.OutputStreamWriter;
    1214import java.io.PrintWriter;
    1315import java.util.ArrayList;
     
    279281        try {
    280282            setSystemProperties();
    281             final PrintWriter out = new PrintWriter(new FileWriter(getPreferencesDir() + "preferences"), false);
     283            final PrintWriter out = new PrintWriter(new OutputStreamWriter(
     284            new FileOutputStream(getPreferencesDir() + "preferences"), "utf-8"), false);
    282285            for (final Entry<String, String> e : properties.entrySet()) {
    283286                String s = defaults.get(e.getKey());
     
    296299    public void load() throws IOException {
    297300        properties.clear();
    298         final BufferedReader in = new BufferedReader(new FileReader(getPreferencesDir()+"preferences"));
     301        final BufferedReader in = new BufferedReader(new InputStreamReader(
     302        new FileInputStream(getPreferencesDir()+"preferences"), "utf-8"));
    299303        int lineNumber = 0;
    300304        ArrayList<Integer> errLines = new ArrayList<Integer>();
     
    362366        if (!bookmarkFile.exists())
    363367            bookmarkFile.createNewFile();
    364         BufferedReader in = new BufferedReader(new FileReader(bookmarkFile));
     368        BufferedReader in = new BufferedReader(new InputStreamReader(
     369        new FileInputStream(bookmarkFile), "utf-8"));
    365370
    366371        LinkedList<Bookmark> bookmarks = new LinkedList<Bookmark>();
    367         // use pattern matches to scan text, as text may contain a "," itself
    368372        for (String line = in.readLine(); line != null; line = in.readLine()) {
    369             Matcher m = Pattern.compile("^(.+),(-?\\d+.\\d+),(-?\\d+.\\d+),(-?\\d+.\\d+),(-?\\d+.\\d+)$").matcher(line);
     373            // FIXME: legacy code using ',' sign, should be \u001e only
     374            Matcher m = Pattern.compile("^(.+)[,\u001e](-?\\d+.\\d+)[,\u001e](-?\\d+.\\d+)[,\u001e](-?\\d+.\\d+)[,\u001e](-?\\d+.\\d+)$").matcher(line);
    370375            if(m.matches())
    371376            {
     
    386391        if (!bookmarkFile.exists())
    387392            bookmarkFile.createNewFile();
    388         PrintWriter out = new PrintWriter(new FileWriter(bookmarkFile));
     393        PrintWriter out = new PrintWriter(new OutputStreamWriter(
     394        new FileOutputStream(bookmarkFile), "utf-8"));
    389395        for (Bookmark b : bookmarks) {
    390             out.print(b.name+",");
     396            out.print(b.name+"\u001e");
    391397            for (int i = 0; i < b.latlon.length; ++i)
    392                 out.print(b.latlon[i]+(i<b.latlon.length-1?",":""));
     398                out.print(b.latlon[i]+(i<b.latlon.length-1?"\u001e":""));
    393399            out.println();
    394400        }
     
    491497            {
    492498                if(d != null)
    493                     d += ";" + a;
     499                    d += "\u001e" + a;
    494500                else
    495501                    d = a;
     
    498504        }
    499505        if(s != null && s.length() != 0)
    500            return Arrays.asList(s.split(";"));
     506        {
     507            if(s.indexOf("\u001e") < 0) /* FIXME: legacy code, remove later */
     508            {
     509                String r =s;
     510                if(r.indexOf("§§§") > 0) /* history dialog */
     511                    r = r.replaceAll("§§§","\u001e");
     512                else /* old style ';' separation */
     513                    r = r.replace(';','\u001e');
     514                if(!r.equals(s)) /* save the converted string */
     515                {
     516                    put(key,r);
     517                    s = r;
     518                }
     519            }
     520            return Arrays.asList(s.split("\u001e"));
     521        }
    501522        return def;
    502523    }
     
    516537            {
    517538                if(s != null)
    518                     s += ";" + a;
     539                    s += "\u001e" + a;
    519540                else
    520541                    s = a;
Note: See TracChangeset for help on using the changeset viewer.