From: Vampire <Vampire@jEdit.org> - 2011-10-02 17:07:50
|
Two more comments to what I have written. Vampire schrieb: > In this case the writer wants to show this text where the property is > used, so he would not write \u0032 but \\u0032 to achieve having > "\u0032" after the Properties class has read it in. > Of course only without the new encoding which will do this conversion automatically. >> The reasoning is following: we do encoding procedures to free user >> from thinking about escaping. Escaping should be done behind the scene >> making any typed text possible and unchangeable. >> >> What do you think? >> >> Another thing I was wondering about are drastic cases of texts like >> \\\\\\\\\\\\\u0032 or \\\\\\\\\\\\\uxxxx or \\\\\\\\\\\\\anything. >> Java doc says something about odd and even number of backslashes. We >> shouldn't change the text and escape what have to be escaped. I gave >> up with this, but I hope you have it solved :) >> > Thanks for mentioning. Actually I've forgotten to make a special > handling for backslashes. > But it shouldn't be much of a problem. > Actually the Properties class also does not behave exactly like documented. > > The Unicode Escapes documentation linked by Properties JavaDoc says that > if a '\' is not followed by a 'u', it should be treated as '\'. > And the Unicode Escapes documentation linked by Properties JavaDoc says > that you can have multiple 'u' after the '\' and before the hexcode. > > For the second case the Properties JavaDoc defines an exception and says > for Properties files only one 'u' is allowed. > So far so good. > But for the first case the Properties JavaDoc defines no exception but > behaves differently actually. I just tried it. A single '\' is eaten and > "\\" is shown as '\'. > So I will change the new Encoding to also resemble this. > My comments above assume that this escaping of '\' is already implemented. > Ah, I have to correct myself. Down in the JavaDoc of the load() method it is defined exactly. And actually there are two kinds of escaping in Properties files. One for encoding unmappable characters by unicode escapes with only one 'u' allowed. And one for escaping special characters like e. g. '=', ':', '\', spaces and newlines. The latter one cannot be done or guessed by jEdit automatically and thus I will not try to as I just said. I will only implement the unicode escape coding/decoding and not touch other backslash characters. |