sort: two small optimizations
authorDenis Vlasenko <vda.linux@googlemail.com>
Sun, 26 Nov 2006 15:48:54 +0000 (15:48 -0000)
committerDenis Vlasenko <vda.linux@googlemail.com>
Sun, 26 Nov 2006 15:48:54 +0000 (15:48 -0000)
coreutils/sort.c

index 5f91bcb4424b514cdb365d8e290767cf8c16d329..c23bf9c605dc296adcb784863cadf349b86bf1df 100644 (file)
@@ -70,8 +70,7 @@ static char *get_key(char *str, struct sort_key *key, int flags)
                        for (i = 1; i < key->range[2*j] + j; i++) {
                                /* Skip leading blanks or first separator */
                                if (str[end]) {
-                                       if (!key_separator && isspace(str[end]))
-/* TODO: remove "&& isspace(str[end])" */
+                                       if (!key_separator)
                                                while (isspace(str[end])) end++;
                                }
                                /* Skip body of key */
@@ -158,7 +157,7 @@ static int compare_keys(const void *xarg, const void *yarg)
        struct sort_key *key;
 
        for (key = key_list; !retval && key; key = key->next_key) {
-               flags = (key->flags) ? key->flags : global_flags;
+               flags = key->flags ? key->flags : global_flags;
                /* Chop out and modify key chunks, handling -dfib */
                x = get_key(*(char **)xarg, key, flags);
                y = get_key(*(char **)yarg, key, flags);
@@ -181,7 +180,8 @@ static int compare_keys(const void *xarg, const void *yarg)
 #if ENABLE_FEATURE_SORT_BIG
                case FLAG_g: {
                        char *xx, *yy;
-                       double dx = strtod(x, &xx), dy = strtod(y, &yy);
+                       double dx = strtod(x, &xx);
+                       double dy = strtod(y, &yy);
                        /* not numbers < NaN < -infinity < numbers < +infinity) */
                        if (x == xx)
                                retval = (y == yy ? 0 : -1);
@@ -217,26 +217,27 @@ static int compare_keys(const void *xarg, const void *yarg)
                        else if (!yy)
                                retval = 1;
                        else
-                               retval = (dx==thyme.tm_mon) ? 0 : dx-thyme.tm_mon;
+                               retval = (dx == thyme.tm_mon) ? 0 : dx - thyme.tm_mon;
                        break;
                }
                /* Full floating point version of -n */
                case FLAG_n: {
-                       double dx = atof(x), dy  =atof(y);
+                       double dx = atof(x);
+                       double dy = atof(y);
                        retval = (dx > dy) ? 1 : ((dx < dy) ? -1 : 0);
                        break;
                }
-               }
+               } /* switch */
                /* Free key copies. */
                if (x != *(char **)xarg) free(x);
                if (y != *(char **)yarg) free(y);
-               if (retval) break;
+               /* if (retval) break; - done by for() anyway */
 #else
                /* Integer version of -n for tiny systems */
                case FLAG_n:
                        retval = atoi(x) - atoi(y);
                        break;
-               }
+               } /* switch */
 #endif
        }
        /* Perform fallback sort if necessary */