- From: <bugzilla@jessica.w3.org>
- Date: Tue, 25 Sep 2012 07:40:55 +0000
- To: public-webapps@w3.org
https://www.w3.org/Bugs/Public/show_bug.cgi?id=19003 Summary: Bugs in toNativeLineEndings() Product: WebAppsWG Version: unspecified Platform: PC OS/Version: All Status: NEW Severity: normal Priority: P2 Component: File API AssignedTo: arun@mozilla.com ReportedBy: simonp@opera.com QAContact: public-webapps-bugzilla@w3.org CC: public-webapps@w3.org https://www.w3.org/Bugs/Public/show_bug.cgi?id=16733 http://dev.w3.org/2006/webapi/FileAPI/#convenienceAPI The IDL should say: Window implements LineEndings; WorkerGlobalScope implements LineEndings; And remove this: [[ In environments where the global object is represented by a Window or WorkerGlobalScope object, the toNativeLineEndings method should be available. ]] (assuming we want this in the global scope) The algorithm seems bogus. It seems to assume that there will only be one "line ending" and that it is at the end of the string. It doesn't define what a "line ending" is. "Expected by the underlying platform" also seems unclear. It seems unexpected that this methods *adds* a line ending if there isn't one. I would have expected that this method does this: function toNativeLineEndings(string) { ...snip impl of WebIDL voodoo here... return string.replace(/(\r\n|\r|\n)/g, nativeLineEnding); } As for spec language, I would probably do this: 1. Let /input/ be /string/. 2. Let /position/ be a pointer into /input/, initially pointing at the start of the string. 3. Let /lines/ be an empty array. 4. While /position/ is not past the end of /input/: 1. Collect a sequence of characters that are not U+000A or U+000D. 2. Add the string collected in the previous step to /lines/. 3. If the character at /position/ is U+000D, and the character at /position/+1 is U+000A, advance /position/ by two characters. Otherwise, advance /position/ to the next character. 5. Let /native line ending/ be a sequence of characters that represent a line ending according to the underlying platform's conventions, or U+000A if there is no particular convention. [issue: should we only allow \n and \r\n here?] 6. Let /output/ be the result of joining /lines/ with /native line ending/. 7. Return /output/. where "collect a sequence of characters" is defined here: http://www.whatwg.org/specs/web-apps/current-work/multipage/common-microsyntaxes.html#collect-a-sequence-of-characters or here: http://dom.spec.whatwg.org/#collect-a-sequence-of-characters -- Configure bugmail: https://www.w3.org/Bugs/Public/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
Received on Tuesday, 25 September 2012 07:41:45 UTC