02110-1301, USA. */
#include <config.h>
+
#include <ctype.h>
#include <stdlib.h>
-#include "alloc.h"
-#include "command.h"
-#include "dictionary.h"
-#include "message.h"
-#include "lexer.h"
-#include "output.h"
-#include "start-date.h"
-#include "variable.h"
-#include "version.h"
-#include "procedure.h"
+
+#include <data/dictionary.h>
+#include <data/procedure.h>
+#include <data/variable.h>
+#include <language/command.h>
+#include <language/lexer/lexer.h>
+#include <libpspp/alloc.h>
+#include <libpspp/message.h>
+#include <libpspp/start-date.h>
+#include <libpspp/version.h>
+#include <output/output.h>
#include "gettext.h"
#define _(msgid) gettext (msgid)
-#include "debug-print.h"
-
static int get_title (const char *cmd, char **title);
int
-cmd_title (void)
+cmd_title (struct dataset *ds UNUSED)
{
return get_title ("TITLE", &outp_title);
}
int
-cmd_subtitle (void)
+cmd_subtitle (struct dataset *ds UNUSED)
{
return get_title ("SUBTITLE", &outp_subtitle);
}
int c;
c = lex_look_ahead ();
- debug_printf ((_("%s before: %s\n"), cmd, *title ? *title : _("<none>")));
if (c == '"' || c == '\'')
{
lex_get ();
return CMD_FAILURE;
if (*title)
free (*title);
- *title = xstrdup (ds_c_str (&tokstr));
+ *title = ds_xstrdup (&tokstr);
lex_get ();
if (token != '.')
{
*cp = toupper ((unsigned char) (*cp));
token = '.';
}
- debug_printf ((_("%s after: %s\n"), cmd, *title));
return CMD_SUCCESS;
}
/* Performs the FILE LABEL command. */
int
-cmd_file_label (void)
+cmd_file_label (struct dataset *ds)
{
const char *label;
while (isspace ((unsigned char) *label))
label++;
- dict_set_label (default_dict, label);
+ dict_set_label (dataset_dict (ds), label);
token = '.';
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);
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 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 (;;)
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 ();
/* Performs the DROP DOCUMENTS command. */
int
-cmd_drop_documents (void)
+cmd_drop_documents (struct dataset *ds)
{
- dict_set_documents (default_dict, NULL);
+ dict_set_documents (dataset_dict (ds), NULL);
return lex_end_of_command ();
}