includecheck fix: drivers/scsi, libfcoe.c
[safe/jmp/linux-2.6] / scripts / kconfig / kxgettext.c
index ad1cb94..8d9ce22 100644 (file)
@@ -14,6 +14,11 @@ static char *escape(const char* text, char *bf, int len)
 {
        char *bfp = bf;
        int multiline = strchr(text, '\n') != NULL;
+       int eol = 0;
+       int textlen = strlen(text);
+
+       if ((textlen > 0) && (text[textlen-1] == '\n'))
+               eol = 1;
 
        *bfp++ = '"';
        --len;
@@ -38,12 +43,16 @@ static char *escape(const char* text, char *bf, int len)
                        ++text;
                        goto next;
                }
+               else if (*text == '\\') {
+                       *bfp++ = '\\';
+                       len--;
+               }
                *bfp++ = *text++;
 next:
                --len;
        }
 
-       if (multiline)
+       if (multiline && eol)
                bfp -= 3;
 
        *bfp++ = '"';
@@ -165,8 +174,8 @@ void menu_build_message_list(struct menu *menu)
                     menu->file == NULL ? "Root Menu" : menu->file->name,
                     menu->lineno);
 
-       if (menu->sym != NULL && menu->sym->help != NULL)
-               message__add(menu->sym->help, menu->sym->name,
+       if (menu->sym != NULL && menu_has_help(menu))
+               message__add(menu_get_help(menu), menu->sym->name,
                             menu->file == NULL ? "Root Menu" : menu->file->name,
                             menu->lineno);
 
@@ -207,7 +216,9 @@ void menu__xgettext(void)
        struct message *m = message__list;
 
        while (m != NULL) {
-               message__print_gettext_msgid_msgstr(m);
+               /* skip empty lines ("") */
+               if (strlen(m->msg) > sizeof("\"\""))
+                       message__print_gettext_msgid_msgstr(m);
                m = m->next;
        }
 }