projects
/
pspp-builds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Added a dict parameter to data_in and dealt with the consequences.
[pspp-builds.git]
/
src
/
ui
/
gui
/
find-dialog.c
diff --git
a/src/ui/gui/find-dialog.c
b/src/ui/gui/find-dialog.c
index 985e73fbc321f8dc5793a2dab193f4edc634a19a..f24bdbd0d87a577e54c146568dcfcc4564bc5853 100644
(file)
--- a/
src/ui/gui/find-dialog.c
+++ b/
src/ui/gui/find-dialog.c
@@
-1,5
+1,5
@@
/* PSPPIRE - a graphical user interface for PSPP.
/* PSPPIRE - a graphical user interface for PSPP.
- Copyright (C) 2007 Free Software Foundation
+ Copyright (C) 2007
, 2009
Free Software Foundation
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@
-24,7
+24,7
@@
which match particular strings */
#include "psppire-selector.h"
#include "psppire-dialog.h"
#include "helper.h"
#include "psppire-selector.h"
#include "psppire-dialog.h"
#include "helper.h"
-#include "
data-editor
.h"
+#include "
psppire-data-window
.h"
#include "dict-display.h"
#include <data/value.h>
#include <data/format.h>
#include "dict-display.h"
#include <data/value.h>
#include <data/format.h>
@@
-54,7
+54,7
@@
struct find_dialog
GtkBuilder *xml;
PsppireDict *dict;
struct datasheet *data;
GtkBuilder *xml;
PsppireDict *dict;
struct datasheet *data;
-
struct data_editor
*de;
+
PsppireDataWindow
*de;
GtkWidget *variable_entry;
GtkWidget *value_entry;
GtkWidget *value_labels_checkbox;
GtkWidget *variable_entry;
GtkWidget *value_entry;
GtkWidget *value_labels_checkbox;
@@
-185,7
+185,7
@@
value_labels_toggled (GtkToggleButton *tb, gpointer data)
void
find_dialog (GObject *o, gpointer data)
{
void
find_dialog (GObject *o, gpointer data)
{
-
struct data_editor *de = data
;
+
PsppireDataWindow *de = PSPPIRE_DATA_WINDOW (data)
;
struct find_dialog fd;
struct find_dialog fd;
@@
-199,7
+199,7
@@
find_dialog (GObject *o, gpointer data)
PsppireVarStore *vs ;
PsppireDataStore *ds ;
PsppireVarStore *vs ;
PsppireDataStore *ds ;
- fd.xml = builder_new ("
psppire
.ui");
+ fd.xml = builder_new ("
find
.ui");
fd.de = de;
find_button = gtk_button_new_from_stock (GTK_STOCK_FIND);
fd.de = de;
find_button = gtk_button_new_from_stock (GTK_STOCK_FIND);
@@
-238,13
+238,12
@@
find_dialog (GObject *o, gpointer data)
- gtk_window_set_transient_for (GTK_WINDOW (dialog),
de->parent.window
);
+ gtk_window_set_transient_for (GTK_WINDOW (dialog),
GTK_WINDOW (de)
);
- attach_dictionary_to_treeview (GTK_TREE_VIEW (source),
- fd.dict,
- GTK_SELECTION_SINGLE,
- NULL);
+ g_object_set (source, "dictionary", fd.dict,
+ "selection-mode", GTK_SELECTION_SINGLE,
+ NULL);
psppire_selector_set_subjects (PSPPIRE_SELECTOR (selector),
source,
psppire_selector_set_subjects (PSPPIRE_SELECTOR (selector),
source,
@@
-286,7
+285,7
@@
forward (casenumber *i, struct datasheet *data UNUSED)
static void
forward_wrap (casenumber *i, struct datasheet *data)
{
static void
forward_wrap (casenumber *i, struct datasheet *data)
{
- if ( ++*i >= datasheet_get_
row_cnt
(data) ) *i = 0;
+ if ( ++*i >= datasheet_get_
n_rows
(data) ) *i = 0;
}
static void
}
static void
@@
-300,7
+299,7
@@
static void
backward_wrap (casenumber *i, struct datasheet *data)
{
if ( --*i < 0 )
backward_wrap (casenumber *i, struct datasheet *data)
{
if ( --*i < 0 )
- *i = datasheet_get_
row_cnt
(data) - 1;
+ *i = datasheet_get_
n_rows
(data) - 1;
}
}
@@
-345,7
+344,7
@@
cm1c (casenumber current, struct datasheet *data)
static casenumber
last (casenumber current, struct datasheet *data)
{
static casenumber
last (casenumber current, struct datasheet *data)
{
- return datasheet_get_
row_cnt
(data) ;
+ return datasheet_get_
n_rows
(data) ;
}
static casenumber
}
static casenumber
@@
-440,7
+439,7
@@
struct comparator
struct value_comparator
{
struct comparator parent;
struct value_comparator
{
struct comparator parent;
- union value
*
pattern;
+ union value pattern;
};
/* A comparator which matches string values or parts thereof */
};
/* A comparator which matches string values or parts thereof */
@@
-463,7
+462,7
@@
value_compare (const struct comparator *cmptr,
const union value *v)
{
const struct value_comparator *vc = (const struct value_comparator *) cmptr;
const union value *v)
{
const struct value_comparator *vc = (const struct value_comparator *) cmptr;
- return 0 == value_compare_3way (v, vc->pattern, var_get_width (cmptr->var));
+ return 0 == value_compare_3way (v,
&
vc->pattern, var_get_width (cmptr->var));
}
}
@@
-496,8
+495,8
@@
string_value_compare (const struct comparator *cmptr,
const struct string_comparator *ssc =
(const struct string_comparator *) cmptr;
const struct string_comparator *ssc =
(const struct string_comparator *) cmptr;
- const char *text = val->s;
int width = var_get_width (cmptr->var);
int width = var_get_width (cmptr->var);
+ const char *text = value_str (val, width);
assert ( ! (cmptr->flags & STR_CMP_LABELS));
assert ( ! (cmptr->flags & STR_CMP_LABELS));
@@
-529,7
+528,7
@@
regexp_value_compare (const struct comparator *cmptr,
/* We must remove trailing whitespace, otherwise $ will not match where
one would expect */
/* We must remove trailing whitespace, otherwise $ will not match where
one would expect */
- text = g_strndup (val
->s
, width);
+ text = g_strndup (val
ue_str (val, width)
, width);
g_strchomp (text);
retval = (0 == regexec (&rec->re, text, 0, 0, 0));
g_strchomp (text);
retval = (0 == regexec (&rec->re, text, 0, 0, 0));
@@
-571,10
+570,10
@@
regexp_destroy (struct comparator *cmptr)
}
static void
}
static void
-value_destroy (struct comparator *cmptr)
+
cmptr_
value_destroy (struct comparator *cmptr)
{
struct value_comparator *vc = (struct value_comparator *) cmptr;
{
struct value_comparator *vc = (struct value_comparator *) cmptr;
-
free (vc->pattern
);
+
value_destroy (&vc->pattern, var_get_width (cmptr->var)
);
}
}
@@
-589,19
+588,21
@@
value_comparator_create (const struct variable *var, const char *target)
cmptr->flags = 0;
cmptr->var = var;
cmptr->compare = value_compare ;
cmptr->flags = 0;
cmptr->var = var;
cmptr->compare = value_compare ;
- cmptr->destroy = value_destroy;
+ cmptr->destroy =
cmptr_
value_destroy;
width = var_get_width (var);
fmt = var_get_write_format (var);
width = var_get_width (var);
fmt = var_get_write_format (var);
- v
c->pattern = value_create (
width);
+ v
alue_init (&vc->pattern,
width);
if ( ! data_in (ss_cstr (target),
LEGACY_NATIVE,
fmt->type,
0, 0, 0,
if ( ! data_in (ss_cstr (target),
LEGACY_NATIVE,
fmt->type,
0, 0, 0,
- vc->pattern, width) )
+ NULL,
+ &vc->pattern, width) )
{
{
+ value_destroy (&vc->pattern, width);
free (vc);
return NULL;
}
free (vc);
return NULL;
}
@@
-740,12
+741,13
@@
find_value (const struct find_dialog *fd, casenumber current_row,
flags |= STR_CMP_LABELS;
{
flags |= STR_CMP_LABELS;
{
- union value
*val = value_create (width)
;
+ union value
val
;
casenumber i;
const struct casenum_iterator *ip = get_iteration_params (fd);
struct comparator *cmptr =
comparator_factory (var, target_string, flags);
casenumber i;
const struct casenum_iterator *ip = get_iteration_params (fd);
struct comparator *cmptr =
comparator_factory (var, target_string, flags);
+ value_init (&val, width);
if ( ! cmptr)
goto finish;
if ( ! cmptr)
goto finish;
@@
-753,10
+755,9
@@
find_value (const struct find_dialog *fd, casenumber current_row,
i != ip->end (current_row, fd->data);
ip->next (&i, fd->data))
{
i != ip->end (current_row, fd->data);
ip->next (&i, fd->data))
{
- datasheet_get_value (fd->data, i, var_get_case_index (var),
- val, width);
+ datasheet_get_value (fd->data, i, var_get_case_index (var), &val);
- if ( comparator_compare (cmptr, val))
+ if ( comparator_compare (cmptr,
&
val))
{
*row = i;
break;
{
*row = i;
break;
@@
-765,6
+766,6
@@
find_value (const struct find_dialog *fd, casenumber current_row,
finish:
comparator_destroy (cmptr);
finish:
comparator_destroy (cmptr);
-
free (val
);
+
value_destroy (&val, width
);
}
}
}
}