bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

FYI: fts.c readability/maintainability improvement


From: Jim Meyering
Subject: FYI: fts.c readability/maintainability improvement
Date: Wed, 10 Jan 2007 18:26:47 +0100

I've just checked in the following change:

        fts.c: a small readability/maintainability improvement
        * lib/fts.c (fts_read): Make this code slightly more readable and
        maintainable by hoisting the "sp->fts_cur = p" assignments to
        immediately follow the statements that set P.  Derived from
        the patch by Miloslav Trmac in http://bugzilla.redhat.com/222089.

Index: lib/fts.c
===================================================================
RCS file: /sources/gnulib/gnulib/lib/fts.c,v
retrieving revision 1.33
diff -u -p -r1.33 fts.c
--- lib/fts.c   8 Jan 2007 21:28:13 -0000       1.33
+++ lib/fts.c   10 Jan 2007 16:28:43 -0000
@@ -698,6 +698,7 @@ fts_read (register FTS *sp)
        /* Move to the next node on this level. */
 next:  tmp = p;
        if ((p = p->fts_link) != NULL) {
+               sp->fts_cur = p;
                free(tmp);

                /*
@@ -708,7 +709,6 @@ next:       tmp = p;
                if (p->fts_level == FTS_ROOTLEVEL) {
                        if (RESTORE_INITIAL_CWD(sp)) {
                                SET(FTS_STOP);
-                               sp->fts_cur = p;
                                return (NULL);
                        }
                        fts_load(sp, p);
@@ -738,6 +738,7 @@ name:               t = sp->fts_path + NAPPEND(p->fts
                *t++ = '/';
                memmove(t, p->fts_name, p->fts_namelen + 1);
 check_for_dir:
+               sp->fts_cur = p;
                if (p->fts_info == FTS_NSOK)
                  {
                    if (p->fts_statp->st_size == FTS_STAT_REQUIRED)
@@ -746,7 +747,6 @@ check_for_dir:
                      fts_assert (p->fts_statp->st_size == 
FTS_NO_STAT_REQUIRED);
                  }

-               sp->fts_cur = p;
                if (p->fts_info == FTS_D)
                  {
                    /* Now that P->fts_statp is guaranteed to be valid,
@@ -766,6 +766,7 @@ check_for_dir:

        /* Move up to the parent node. */
        p = tmp->fts_parent;
+       sp->fts_cur = p;
        free(tmp);

        if (p->fts_level == FTS_ROOTPARENTLEVEL) {
@@ -811,7 +812,6 @@ check_for_dir:
        p->fts_info = p->fts_errno ? FTS_ERR : FTS_DP;
        if (p->fts_errno == 0)
                LEAVE_DIR (sp, p, "3");
-       sp->fts_cur = p;
        return ISSET(FTS_STOP) ? NULL : p;
 }





reply via email to

[Prev in Thread] Current Thread [Next in Thread]