60 lines
1.5 KiB
Diff
60 lines
1.5 KiB
Diff
|
From 486526858271c8ea890e8728a1cf1cceeceb9b1a Mon Sep 17 00:00:00 2001
|
||
|
From: =?utf-8?q?Dan=20Hor=C3=A1k?= <dan@danny.cz>
|
||
|
Date: Thu, 23 Apr 2009 15:28:06 +0200
|
||
|
Subject: [PATCH] don't create automenu when default menu exists
|
||
|
|
||
|
---
|
||
|
zipl/src/job.c | 25 +++++++++++++++----------
|
||
|
1 files changed, 15 insertions(+), 10 deletions(-)
|
||
|
|
||
|
diff --git a/zipl/src/job.c b/zipl/src/job.c
|
||
|
index 1b7bcb2..9fc6c2d 100644
|
||
|
--- a/zipl/src/job.c
|
||
|
+++ b/zipl/src/job.c
|
||
|
@@ -1441,6 +1441,8 @@ get_job_from_config_file(struct command_line* cmdline, struct job_data* job)
|
||
|
struct scan_token* scan, *nscan;
|
||
|
char* filename;
|
||
|
char* source;
|
||
|
+ char* default_section;
|
||
|
+ int is_menu;
|
||
|
int rc;
|
||
|
|
||
|
/* Read configuration file */
|
||
|
@@ -1470,20 +1472,23 @@ get_job_from_config_file(struct command_line* cmdline, struct job_data* job)
|
||
|
scan_free(scan);
|
||
|
return rc;
|
||
|
}
|
||
|
-
|
||
|
- if (cmdline->automenu) {
|
||
|
- nscan = create_fake_menu(scan);
|
||
|
- if (nscan == NULL) {
|
||
|
- scan_free(scan);
|
||
|
- return -1;
|
||
|
- }
|
||
|
- scan = nscan;
|
||
|
- }
|
||
|
+
|
||
|
+ /* disable automenu iff default menu exists */
|
||
|
+ rc = get_default_section(scan, &default_section, &is_menu);
|
||
|
+ if (!rc && is_menu)
|
||
|
+ cmdline->automenu = 0;
|
||
|
|
||
|
/* Get job from config file data */
|
||
|
if (cmdline->menu != NULL || cmdline->automenu) {
|
||
|
- if (cmdline->automenu)
|
||
|
+ if (cmdline->automenu) {
|
||
|
+ nscan = create_fake_menu(scan);
|
||
|
+ if (nscan == NULL) {
|
||
|
+ scan_free(scan);
|
||
|
+ return -1;
|
||
|
+ }
|
||
|
+ scan = nscan;
|
||
|
cmdline->menu = misc_strdup("rh-automatic-menu");
|
||
|
+ }
|
||
|
rc = get_menu_job(scan, cmdline->menu, job);
|
||
|
}
|
||
|
else {
|
||
|
--
|
||
|
1.6.0.6
|
||
|
|