- /* s0l > s1l */
- if (s1l)
- {
- r = memcmp (s0, s1, s1l);
- if (r)
- return r;
- }
- return memcmp (&s0[s1l], blanks, diff);
- }
- else
- /* diff<0 */
- {
- /* s0l < s1l */
- if (s0l)
- {
- r = memcmp (s0, s1, s0l);
- if (r)
- return r;
- }
- return memcmp (blanks, &s1[s0l], -diff);
+ size_t idx;
+
+ if (a_len < b_len)
+ {
+ for (idx = min_len; idx < b_len; idx++)
+ if (' ' != b[idx])
+ return ' ' > b[idx] ? 1 : -1;
+ }
+ else
+ {
+ for (idx = min_len; idx < a_len; idx++)
+ if (a[idx] != ' ')
+ return a[idx] > ' ' ? 1 : -1;
+ }
+ return 0;