Lines 1331-1336
Link Here
|
1331 |
return wildcard_matches; |
1331 |
return wildcard_matches; |
1332 |
} |
1332 |
} |
1333 |
|
1333 |
|
|
|
1334 |
static int inplace_sort_nextint(char **p); |
1335 |
|
1336 |
static int inplace_sort_nextint(char **p) |
1337 |
{ |
1338 |
int i = 0; |
1339 |
|
1340 |
while (**p && **p < '0' && **p > '9') *p++; |
1341 |
if (!**p) return -1; |
1342 |
while (**p && **p >= '0' && **p <= '9') |
1343 |
{ |
1344 |
i = i * 10 + **p - '0'; |
1345 |
*p++; |
1346 |
} |
1347 |
return i; |
1348 |
} |
1349 |
|
1350 |
static int inplace_sort_strcmp(char *l, char *r); |
1351 |
|
1352 |
static int |
1353 |
inplace_sort_strcmp(char *l, char *r) |
1354 |
{ |
1355 |
char *lp = l; |
1356 |
char *rp = r; |
1357 |
int li, ri; |
1358 |
|
1359 |
do |
1360 |
{ |
1361 |
li = inplace_sort_nextint(&lp); |
1362 |
ri = inplace_sort_nextint(&rp); |
1363 |
if (li > ri) return 1; |
1364 |
if (ri > li) return -1; |
1365 |
} |
1366 |
while (li != -1 || ri != -1); |
1367 |
return 0; |
1368 |
} |
1369 |
|
1334 |
#define skip(str) ((str) + grub_strlen (str) + 1) |
1370 |
#define skip(str) ((str) + grub_strlen (str) + 1) |
1335 |
|
1371 |
|
1336 |
static void inplace_sort (char *str, int len); |
1372 |
static void inplace_sort (char *str, int len); |
Lines 1354-1360
Link Here
|
1354 |
|
1390 |
|
1355 |
for (m = n; m >= 2; m--) |
1391 |
for (m = n; m >= 2; m--) |
1356 |
{ |
1392 |
{ |
1357 |
if (grub_strcmp (s, t) > 0) |
1393 |
if (inplace_sort_strcmp (s, t) < 0) |
1358 |
{ |
1394 |
{ |
1359 |
int ls = skip (s) - s; |
1395 |
int ls = skip (s) - s; |
1360 |
int lt = skip (t) - t; |
1396 |
int lt = skip (t) - t; |