[24434] trunk/base/src/pextlib1.0

source_changes at macosforge.org source_changes at macosforge.org
Tue Apr 24 02:54:38 PDT 2007


Revision: 24434
          http://trac.macosforge.org/projects/macports/changeset/24434
Author:   eridius at macports.org
Date:     2007-04-24 02:54:38 -0700 (Tue, 24 Apr 2007)

Log Message:
-----------
Add handling of -- meta-flag to fs-traverse

Modified Paths:
--------------
    trunk/base/src/pextlib1.0/fs-traverse.c
    trunk/base/src/pextlib1.0/tests/fs-traverse.tcl

Modified: trunk/base/src/pextlib1.0/fs-traverse.c
===================================================================
--- trunk/base/src/pextlib1.0/fs-traverse.c	2007-04-24 09:49:17 UTC (rev 24433)
+++ trunk/base/src/pextlib1.0/fs-traverse.c	2007-04-24 09:54:38 UTC (rev 24434)
@@ -63,7 +63,7 @@
 #define F_DEPTH 0x1
 #define F_IGNORE_ERRORS 0x2
 
-/* fs-traverse ?-depth? ?-ignoreErrors? varname target-list body */
+/* fs-traverse ?-depth? ?-ignoreErrors? ?--? varname target-list body */
 int
 FsTraverseCmd(ClientData clientData UNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])
 {
@@ -76,27 +76,32 @@
     int lobjc;
     Tcl_Obj **lobjv;
 
-    /* Adjust arguments to remove initial `find' */
+    /* Adjust arguments to remove command name */
     ++objv, --objc;
 
     /* Parse flags */
     while (objc) {
-        if (!strcmp(Tcl_GetString(*objv), "-depth")) {
+        char *arg = Tcl_GetString(*objv);
+        if (!strcmp(arg, "-depth")) {
             flags |= F_DEPTH;
             ++objv, --objc;
             continue;
         }
-        if (!strcmp(Tcl_GetString(*objv), "-ignoreErrors")) {
+        if (!strcmp(arg, "-ignoreErrors")) {
             flags |= F_IGNORE_ERRORS;
             ++objv, --objc;
             continue;
         }
+        if (!strcmp(arg, "--")) {
+            ++objv, --objc;
+            break;
+        }
         break;
     }
     
     /* Parse remaining args */
     if (objc != 3) {
-        Tcl_WrongNumArgs(interp, 1, objv_orig, "?-depth? ?-ignoreErrors? varname target-list body");
+        Tcl_WrongNumArgs(interp, 1, objv_orig, "?-depth? ?-ignoreErrors? ?--? varname target-list body");
         return TCL_ERROR;
     }
     

Modified: trunk/base/src/pextlib1.0/tests/fs-traverse.tcl
===================================================================
--- trunk/base/src/pextlib1.0/tests/fs-traverse.tcl	2007-04-24 09:49:17 UTC (rev 24433)
+++ trunk/base/src/pextlib1.0/tests/fs-traverse.tcl	2007-04-24 09:54:38 UTC (rev 24434)
@@ -121,6 +121,13 @@
             error "fs-traverse did not error with malformed target list using -ignoreErrors"
         }
         
+        # Test wacky variable name called -depth
+        set output [list]
+        fs-traverse -- -depth $root {
+            lappend output ${-depth}
+        }
+        check_output $output $trees(1)
+        
         # NOTE: This should be the last test performed, as it modifies the file tree
         # Test to make sure deleting files during traversal works as expected
         set output [list]

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/macports-changes/attachments/20070424/104f87a0/attachment.html


More information about the macports-changes mailing list