Remove "Written by Ben Pfaff <blp@gnu.org>" lines everywhere.
[pspp-builds.git] / src / language / utilities / title.c
index 18e4bb2745068af5f6e156e8642b4d1f497ca070..62c86530fe362e450b70a677e4198bd7392f0465 100644 (file)
@@ -1,6 +1,5 @@
 /* PSPP - computes sample statistics.
    Copyright (C) 1997-9, 2000 Free Software Foundation, Inc.
-   Written by Ben Pfaff <blp@gnu.org>.
 
    This program is free software; you can redistribute it and/or
    modify it under the terms of the GNU General Public License as
 #include "gettext.h"
 #define _(msgid) gettext (msgid)
 
-static int get_title (const char *cmd, char **title);
+static int get_title (struct lexer *, const char *cmd, char **title);
 
 int
-cmd_title (void)
+cmd_title (struct lexer *lexer, struct dataset *ds UNUSED)
 {
-  return get_title ("TITLE", &outp_title);
+  return get_title (lexer, "TITLE", &outp_title);
 }
 
 int
-cmd_subtitle (void)
+cmd_subtitle (struct lexer *lexer, struct dataset *ds UNUSED)
 {
-  return get_title ("SUBTITLE", &outp_subtitle);
+  return get_title (lexer, "SUBTITLE", &outp_subtitle);
 }
 
 static int
-get_title (const char *cmd, char **title)
+get_title (struct lexer *lexer, const char *cmd, char **title)
 {
   int c;
 
-  c = lex_look_ahead ();
+  c = lex_look_ahead (lexer);
   if (c == '"' || c == '\'')
     {
-      lex_get ();
-      if (!lex_force_string ())
+      lex_get (lexer);
+      if (!lex_force_string (lexer))
        return CMD_FAILURE;
       if (*title)
        free (*title);
-      *title = ds_xstrdup (&tokstr);
-      lex_get ();
-      if (token != '.')
+      *title = ds_xstrdup (lex_tokstr (lexer));
+      lex_get (lexer);
+      if (lex_token (lexer) != '.')
        {
          msg (SE, _("%s: `.' expected after string."), cmd);
          return CMD_FAILURE;
@@ -77,42 +76,40 @@ get_title (const char *cmd, char **title)
 
       if (*title)
        free (*title);
-      *title = xstrdup (lex_rest_of_line (NULL));
-      lex_discard_line ();
+      *title = xstrdup (lex_rest_of_line (lexer, NULL));
+      lex_discard_line (lexer);
       for (cp = *title; *cp; cp++)
        *cp = toupper ((unsigned char) (*cp));
-      token = '.';
     }
   return CMD_SUCCESS;
 }
 
 /* Performs the FILE LABEL command. */
 int
-cmd_file_label (void)
+cmd_file_label (struct lexer *lexer, struct dataset *ds)
 {
   const char *label;
 
-  label = lex_rest_of_line (NULL);
-  lex_discard_line ();
+  label = lex_rest_of_line (lexer, NULL);
+  lex_discard_line (lexer);
   while (isspace ((unsigned char) *label))
     label++;
 
-  dict_set_label (default_dict, label);
-  token = '.';
+  dict_set_label (dataset_dict (ds), label);
 
   return CMD_SUCCESS;
 }
 
-/* Add LINE as a line of document information to default_dict,
+/* Add LINE as a line of document information to dictionary
    indented by INDENT spaces. */
 static void
-add_document_line (const char *line, int indent)
+add_document_line (struct dictionary *dict, const char *line, int indent)
 {
   const char *old_documents;
   size_t old_len;
   char *new_documents;
 
-  old_documents = dict_get_documents (default_dict);
+  old_documents = dict_get_documents (dict);
   old_len = old_documents != NULL ? strlen (old_documents) : 0;
   new_documents = xmalloc (old_len + 81);
 
@@ -121,24 +118,25 @@ add_document_line (const char *line, int indent)
   buf_copy_str_rpad (new_documents + old_len + indent, 80 - indent, line);
   new_documents[old_len + 80] = '\0';
 
-  dict_set_documents (default_dict, new_documents);
+  dict_set_documents (dict, new_documents);
 
   free (new_documents);
 }
 
 /* Performs the DOCUMENT command. */
 int
-cmd_document (void)
+cmd_document (struct lexer *lexer, struct dataset *ds)
 {
+  struct dictionary *dict = dataset_dict (ds);
   /* Add a few header lines for reference. */
   {
     char buf[256];
 
-    if (dict_get_documents (default_dict) != NULL)
-      add_document_line ("", 0);
+    if (dict && dict_get_documents (dict))
+      add_document_line (dict, "", 0);
 
     sprintf (buf, _("Document entered %s by %s:"), get_start_date (), version);
-    add_document_line (buf, 1);
+    add_document_line (dict, buf, 1);
   }
 
   for (;;)
@@ -147,8 +145,8 @@ cmd_document (void)
       const char *orig_line;
       char *copy_line;
 
-      orig_line = lex_rest_of_line (&had_dot);
-      lex_discard_line ();
+      orig_line = lex_rest_of_line (lexer, &had_dot);
+      lex_discard_line (lexer);
       while (isspace ((unsigned char) *orig_line))
        orig_line++;
 
@@ -157,23 +155,22 @@ cmd_document (void)
       if (had_dot)
         strcat (copy_line, ".");
 
-      add_document_line (copy_line, 3);
+      add_document_line (dict, copy_line, 3);
       free (copy_line);
 
-      lex_get_line ();
+      lex_get_line (lexer);
       if (had_dot)
        break;
     }
 
-  token = '.';
   return CMD_SUCCESS;
 }
 
 /* Performs the DROP DOCUMENTS command. */
 int
-cmd_drop_documents (void)
+cmd_drop_documents (struct lexer *lexer, struct dataset *ds)
 {
-  dict_set_documents (default_dict, NULL);
+  dict_set_documents (dataset_dict (ds), NULL);
 
-  return lex_end_of_command ();
+  return lex_end_of_command (lexer);
 }