March 13, 2004 bug: utferror & std.zip & std.file | ||||
---|---|---|---|---|
| ||||
Attachments: | It seems to me that std.zip.ArchiveMember.name should be dchar[] or wchar[] instead of the current char[]. Ditto for the arguments of the functions in std.file. This code: import std.zip; import std.file; import std.c.stdio; void main(char [][] args) { try { void [] contents = read(args[1]); ZipArchive za = new ZipArchive(contents); foreach (ArchiveMember am; za.directory) write(am.name, za.expand(am)); } catch (Object o) printf("%.*s: %.*s\n",o.classinfo.name,o.toString()); } Outputs: "UtfError: s" when args[1]="año.zip", where "año.zip" is the attached file and contains the file "año.txt". Tested on WinXP and 98, dmd 0.81. BTW, what's kind of error is "s"? If I remove the try...catch, the message is "Error: s". ----------------------- Carlos Santander Bernal |
March 13, 2004 Re: bug: utferror & std.zip & std.file | ||||
---|---|---|---|---|
| ||||
Posted in reply to Carlos Santander B. | Carlos Santander B. wrote: > It seems to me that std.zip.ArchiveMember.name should be dchar[] or wchar[] > instead of the current char[]. Ditto for the arguments of the functions in > std.file. This code: [...] > BTW, what's kind of error is "s"? If I remove the try...catch, the message > is "Error: s". There's a bug in std.utf. I've already reported it (http://www.digitalmars.com/drn-bin/wwwnews?D/21523), but I guess it never showed up on Walter's bug radar. I just checked and the bug is still present with DMD 0.81. Here's a review: -------------------- I got an error using std.utf and error message says: Error: s That didn't seem very specific or helpful, so I looked at std.utf and found a minor bug. *Line 21 should be:* super(s); class UtfError : Error { uint idx; // index in string of where error occurred this(char[] s, uint i) { idx = i; super("s"); /* should be super(s); */ } } > ----------------------- > Carlos Santander Bernal -- Justin http://jcc_7.tripod.com/d/ |
Copyright © 1999-2021 by the D Language Foundation