Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 85779 | Differences between
and this patch

Collapse All | Expand All

(-)grub-0.96.wildcard/stage2/stage2.c (-1 / +37 lines)
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;

Return to bug 85779