Explorar el Código

Handle getopt reinitialization

Tibor Nagy hace 6 años
padre
commit
f97f93c48d
Se han modificado 1 ficheros con 6 adiciones y 0 borrados
  1. 6 0
      src/header/getopt/mod.rs

+ 6 - 0
src/header/getopt/mod.rs

@@ -30,6 +30,12 @@ pub unsafe extern "C" fn getopt_long(
     // if optarg is not set, we still don't want the previous value leaking
     optarg = ptr::null_mut();
 
+    // handle reinitialization request
+    if optind == 0 {
+        optind = 1;
+        CURRENT_OPT = ptr::null_mut();
+    }
+
     if CURRENT_OPT.is_null() || *CURRENT_OPT == 0 {
         if optind >= argc {
             -1