Magellan Linux

Diff of /tags/grubby-8_36/grubby.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2692 by niro, Wed Jul 16 10:45:12 2014 UTC revision 2957 by niro, Wed Jun 29 14:06:18 2016 UTC
# Line 60  int debug = 0; /* Currently just for tem Line 60  int debug = 0; /* Currently just for tem
60    
61  int isEfi = 0;  int isEfi = 0;
62    
63  #if defined(__arch64__)  #if defined(__aarch64__)
64  #define isEfiOnly 1  #define isEfiOnly 1
65  #else  #else
66  #define isEfiOnly 0  #define isEfiOnly 0
# Line 1199  static struct grubConfig * readConfig(co Line 1199  static struct grubConfig * readConfig(co
1199       * lines came earlier in the template, make sure to use LT_HYPER       * lines came earlier in the template, make sure to use LT_HYPER
1200       * instead of LT_KERNEL now       * instead of LT_KERNEL now
1201       */       */
1202      if (entry->multiboot)      if (entry && entry->multiboot)
1203   line->type = LT_HYPER;   line->type = LT_HYPER;
1204    
1205          } else if (line->type == LT_MBMODULE) {          } else if (line->type == LT_MBMODULE) {
# Line 1960  struct singleEntry * findEntryByPath(str Line 1960  struct singleEntry * findEntryByPath(str
1960   }   }
1961    
1962   indexVars[i + 1] = -1;   indexVars[i + 1] = -1;
1963    
1964   i = 0;   i = 0;
1965   if (index) {   if (index) {
1966      while (i < *index) i++;      while (i < *index) {
1967      if (indexVars[i] == -1) return NULL;   i++;
1968     if (indexVars[i] == -1) return NULL;
1969        }
1970   }   }
1971    
1972   entry = findEntryByIndex(config, indexVars[i]);   entry = findEntryByIndex(config, indexVars[i]);
# Line 2276  void displayEntry(struct singleEntry * e Line 2278  void displayEntry(struct singleEntry * e
2278      struct singleLine * line;      struct singleLine * line;
2279      char * root = NULL;      char * root = NULL;
2280      int i;      int i;
2281        int j;
2282    
2283      printf("index=%d\n", index);      printf("index=%d\n", index);
2284    
# Line 2367  void displayEntry(struct singleEntry * e Line 2370  void displayEntry(struct singleEntry * e
2370   if (title)   if (title)
2371      printf("title=%s\n", title);      printf("title=%s\n", title);
2372      }      }
2373    
2374        for (j = 0, line = entry->lines; line; line = line->next) {
2375     if ((line->type & LT_MBMODULE) && line->numElements >= 2) {
2376        if (!strncmp(prefix, line->elements[1].item, strlen(prefix)))
2377     printf("mbmodule%d=", j);
2378        else
2379     printf("mbmodule%d=%s", j, prefix);
2380    
2381        for (i = 1; i < line->numElements; i++)
2382     printf("%s%s", line->elements[i].item, line->elements[i].indent);
2383        printf("\n");
2384        j++;
2385     }
2386        }
2387  }  }
2388    
2389  int isSuseSystem(void) {  int isSuseSystem(void) {
# Line 3295  int addMBInitrd(struct grubConfig * cfg, Line 3312  int addMBInitrd(struct grubConfig * cfg,
3312    
3313      if (!image) return 0;      if (!image) return 0;
3314    
3315      for (; (entry = findEntryByPath(cfg, newMBKernel, prefix, &index)); index++) {      for (; (entry = findEntryByPath(cfg, image, prefix, &index)); index++) {
3316          kernelLine = getLineByType(LT_MBMODULE, entry->lines);          kernelLine = getLineByType(LT_MBMODULE, entry->lines);
3317          if (!kernelLine) continue;          if (!kernelLine) continue;
3318    
# Line 4038  int addNewKernel(struct grubConfig * con Line 4055  int addNewKernel(struct grubConfig * con
4055   }   }
4056      }      }
4057    
4058        struct singleLine *endLine = NULL;
4059        endLine = getLineByType(LT_ENTRY_END, new->lines);
4060        if (endLine) {
4061        removeLine(new, endLine);
4062        needs |= NEED_END;
4063        }
4064    
4065      /* add the remainder of the lines, i.e. those that either      /* add the remainder of the lines, i.e. those that either
4066       * weren't present in the template, or in the case of no template,       * weren't present in the template, or in the case of no template,
4067       * all the lines following the entryStart.       * all the lines following the entryStart.
# Line 4096  int addNewKernel(struct grubConfig * con Line 4120  int addNewKernel(struct grubConfig * con
4120   config->secondaryIndent, NULL);   config->secondaryIndent, NULL);
4121   needs &= ~NEED_END;   needs &= ~NEED_END;
4122      }      }
4123    
4124      if (needs) {      if (needs) {
4125   printf(_("grubby: needs=%d, aborting\n"), needs);   printf(_("grubby: needs=%d, aborting\n"), needs);
4126   abort();   abort();

Legend:
Removed from v.2692  
changed lines
  Added in v.2957