/* PSPP - computes sample statistics.
- Copyright (C) 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
#include <data/dictionary.h>
#include <data/case.h>
#include <data/casereader.h>
+#include <data/casewriter.h>
#include <data/variable.h>
#include <data/attributes.h>
#include <data/file-handle-def.h>
+#include <data/identifier.h>
+#include <data/settings.h>
#include <data/sys-file-writer.h>
#include <data/sys-file-reader.h>
#include <data/value.h>
/* A message handler which writes messages to PSPP::errstr */
static void
-message_handler (const struct msg *m)
+message_handler (const struct msg *m, void *aux)
{
SV *errstr = get_sv("PSPP::errstr", TRUE);
sv_setpv (errstr, m->text);
assert (0 == strncmp (ver, bare_version, strlen (ver)));
i18n_init ();
- msg_init (NULL, message_handler);
- settings_init (0, 0);
+ msg_set_handler (message_handler, NULL);
+ settings_init ();
fh_init ();
SV *
struct dictionary *
pxs_dict_new()
CODE:
- RETVAL = dict_create ();
+ RETVAL = dict_create ("UTF-8");
OUTPUT:
RETVAL
struct dictionary *dict
char *docs
CODE:
- dict_set_documents (dict, docs);
+ dict_set_documents_string (dict, docs);
void
struct dictionary *dict
char *doc
CODE:
- dict_add_document_line (dict, doc);
+ dict_add_document_line (dict, doc, false);
void
INIT:
SV *errstr = get_sv("PSPP::errstr", TRUE);
sv_setpv (errstr, "");
- if ( ! var_is_plausible_name (name, false))
+ if ( ! id_is_plausible (name, false))
{
sv_setpv (errstr, "The variable name is not valid.");
XSRETURN_UNDEF;
struct variable *var;
char *label
CODE:
- var_set_label (var, label);
+ var_set_label (var, label, false);
void
struct file_handle *fh =
fh_create_file (NULL, name, fh_default_properties () );
struct sysfile_info *sfi = xmalloc (sizeof (*sfi));
- dict_set_encoding (dict, UTF8);
sfi->writer = sfm_open_writer (fh, dict, opts);
sfi->dict = dict;
sfi->opened = true;
OUTPUT:
RETVAL
+SV *
+get_case_cnt (sfr)
+ struct sysreader_info *sfr;
+CODE:
+ SV *ret;
+ casenumber n = casereader_get_case_cnt (sfr->reader);
+ if (n == CASENUMBER_MAX)
+ ret = &PL_sv_undef;
+ else
+ ret = newSViv (n);
+ RETVAL = ret;
+ OUTPUT:
+RETVAL
+
+
void
get_next_case (sfr)
PPCODE:
struct ccase *c;
- if (c = casereader_read (sfr->reader))
+ if ((c = casereader_read (sfr->reader)) != NULL)
{
int v;