]> Cypherpunks repositories - gostls13.git/commitdiff
syscall: attempt to find error message in "local" language before resorting to error...
authorAlex Brainman <alex.brainman@gmail.com>
Tue, 18 Sep 2012 03:02:37 +0000 (13:02 +1000)
committerAlex Brainman <alex.brainman@gmail.com>
Tue, 18 Sep 2012 03:02:37 +0000 (13:02 +1000)
R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/6499121

src/pkg/syscall/syscall_windows.go

index e21415ea9c5641f64f705667bba8c3d15620756a..ee57f1d0190b9f3eea865e03f715728c59bcd716 100644 (file)
@@ -84,9 +84,10 @@ func (e Errno) Error() string {
        b := make([]uint16, 300)
        n, err := FormatMessage(flags, 0, uint32(e), langid(LANG_ENGLISH, SUBLANG_ENGLISH_US), b, nil)
        if err != nil {
-               // TODO(brainman): Call FormatMessage again asking for "native" error message.
-               // http://code.google.com/p/go/issues/detail?id=3376 must be resolved first.
-               return "winapi error #" + itoa(int(e))
+               n, err = FormatMessage(flags, 0, uint32(e), 0, b, nil)
+               if err != nil {
+                       return "winapi error #" + itoa(int(e))
+               }
        }
        // trim terminating \r and \n
        for ; n > 0 && (b[n-1] == '\n' || b[n-1] == '\r'); n-- {