From 7e809819c6b1b967a4e39f45bae4da0336098e03 Mon Sep 17 00:00:00 2001 From: "Felix S. Klock II" Date: Wed, 25 Sep 2013 15:50:15 +0200 Subject: [PATCH 1/2] #7752: use fcnptr for glob errfunc. --- src/libstd/libc.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/libstd/libc.rs b/src/libstd/libc.rs index a5a2def450e8a..770ee96a89583 100644 --- a/src/libstd/libc.rs +++ b/src/libstd/libc.rs @@ -3224,14 +3224,13 @@ pub mod funcs { #[nolink] #[abi = "cdecl"] pub mod glob { - use libc::types::common::c95::{c_void}; use libc::types::os::arch::c95::{c_char, c_int}; use libc::types::os::common::posix01::{glob_t}; extern { pub fn glob(pattern: *c_char, flags: c_int, - errfunc: *c_void, // XXX callback + errfunc: extern "C" fn(epath: *c_char, errno: int) -> int, pglob: *mut glob_t); pub fn globfree(pglob: *mut glob_t); } From 48b4b1f52c920f54ef13a739e3cd86cb7434bd9f Mon Sep 17 00:00:00 2001 From: "Felix S. Klock II" Date: Wed, 25 Sep 2013 23:38:59 +0200 Subject: [PATCH 2/2] errfunc ptr is nullable, so use Option as part of interface to glob (#7752). --- src/libstd/libc.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/libstd/libc.rs b/src/libstd/libc.rs index 770ee96a89583..e772ade135ec3 100644 --- a/src/libstd/libc.rs +++ b/src/libstd/libc.rs @@ -3226,11 +3226,12 @@ pub mod funcs { pub mod glob { use libc::types::os::arch::c95::{c_char, c_int}; use libc::types::os::common::posix01::{glob_t}; + use option::Option; extern { pub fn glob(pattern: *c_char, flags: c_int, - errfunc: extern "C" fn(epath: *c_char, errno: int) -> int, + errfunc: Option int>, pglob: *mut glob_t); pub fn globfree(pglob: *mut glob_t); }