Changeset 1628 in josm for trunk/src/org/openstreetmap/josm/data
- Timestamp:
- 2009-05-30T13:58:30+02:00 (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/data/Preferences.java
r1610 r1628 7 7 import java.io.BufferedReader; 8 8 import java.io.File; 9 import java.io.File Reader;10 import java.io.File Writer;9 import java.io.FileInputStream; 10 import java.io.FileOutputStream; 11 11 import java.io.IOException; 12 import java.io.InputStreamReader; 13 import java.io.OutputStreamWriter; 12 14 import java.io.PrintWriter; 13 15 import java.util.ArrayList; … … 279 281 try { 280 282 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); 282 285 for (final Entry<String, String> e : properties.entrySet()) { 283 286 String s = defaults.get(e.getKey()); … … 296 299 public void load() throws IOException { 297 300 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")); 299 303 int lineNumber = 0; 300 304 ArrayList<Integer> errLines = new ArrayList<Integer>(); … … 362 366 if (!bookmarkFile.exists()) 363 367 bookmarkFile.createNewFile(); 364 BufferedReader in = new BufferedReader(new FileReader(bookmarkFile)); 368 BufferedReader in = new BufferedReader(new InputStreamReader( 369 new FileInputStream(bookmarkFile), "utf-8")); 365 370 366 371 LinkedList<Bookmark> bookmarks = new LinkedList<Bookmark>(); 367 // use pattern matches to scan text, as text may contain a "," itself368 372 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); 370 375 if(m.matches()) 371 376 { … … 386 391 if (!bookmarkFile.exists()) 387 392 bookmarkFile.createNewFile(); 388 PrintWriter out = new PrintWriter(new FileWriter(bookmarkFile)); 393 PrintWriter out = new PrintWriter(new OutputStreamWriter( 394 new FileOutputStream(bookmarkFile), "utf-8")); 389 395 for (Bookmark b : bookmarks) { 390 out.print(b.name+" ,");396 out.print(b.name+"\u001e"); 391 397 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":"")); 393 399 out.println(); 394 400 } … … 491 497 { 492 498 if(d != null) 493 d += " ;" + a;499 d += "\u001e" + a; 494 500 else 495 501 d = a; … … 498 504 } 499 505 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 } 501 522 return def; 502 523 } … … 516 537 { 517 538 if(s != null) 518 s += " ;" + a;539 s += "\u001e" + a; 519 540 else 520 541 s = a;
Note:
See TracChangeset
for help on using the changeset viewer.
