- int c;
-
- c = lex_look_ahead ();
- debug_printf ((_("%s before: %s\n"), cmd, *title ? *title : _("<none>")));
- if (c == '"' || c == '\'')
- {
- lex_get ();
- if (!lex_force_string ())
- return CMD_FAILURE;
- if (*title)
- free (*title);
- *title = xstrdup (ds_c_str (&tokstr));
- lex_get ();
- if (token != '.')
- {
- msg (SE, _("%s: `.' expected after string."), cmd);
- return CMD_FAILURE;
- }
- }
- else
- {
- char *cp;
-
- if (*title)
- free (*title);
- *title = xstrdup (lex_rest_of_line (NULL));
- lex_discard_line ();
- for (cp = *title; *cp; cp++)
- *cp = toupper ((unsigned char) (*cp));
- token = '.';
- }
- debug_printf ((_("%s after: %s\n"), cmd, *title));
+ if (!lex_force_string (lexer))
+ return CMD_FAILURE;
+ set_title (lex_tokcstr (lexer), type);
+ lex_get (lexer);