This patch fixes a problem with the glob binding example in
qforeign, where it would segfault when no files were found
for the glob exp.

Btw, Qrczak, have you considered adding the glibc glob flag
extensions to Glob (eg GLOB_BRACE, GLOB_TILDE, etc)?  They
would be nice to have too, but I guess there is the issue of
portability?  In that case perhaps they should then going
into a separate submodule?

Jens

ps There is also still the issue with attr_set in the
Curses.hsc binding, which I haven't managed to resolve yet
(except by working "around" it by using attrset instead).


2002-01-09  Jens Petersen  <[EMAIL PROTECTED]>

        * examples/Glob.hsc (glob): Test pathc before trying
        to read pathv to avoid segfault on nomatch.

Index: examples/Glob.hsc
===================================================================
RCS file: /cvsroot/qforeign/qforeign/examples/Glob.hsc,v
retrieving revision 1.4
diff -u -r1.4 Glob.hsc
--- examples/Glob.hsc   2001/03/18 19:40:00     1.4
+++ examples/Glob.hsc   2002/01/09 14:18:14
@@ -81,8 +81,12 @@
                 (#const GLOB_NOMATCH) -> GlobNoMatch
                 (#const GLOB_NOSPACE) -> GlobNoSpace
                 _                     -> GlobOther
-        pathv <- (#peek glob_t, gl_pathv) ptr
-        paths <- peekArray0 nullPtr pathv >>= mapM peekCString
+        pathc <- (#peek glob_t, gl_pathc) ptr :: IO CUInt
+        paths <- if pathc > 0 then
+                  do
+                  pathv <- (#peek glob_t, gl_pathv) ptr
+                  peekArray0 nullPtr pathv >>= mapM peekCString
+                 else return []
         globfree ptr
         return (res, paths)
 

_______________________________________________
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell

Reply via email to