projects
/
pspp
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fixed problem reading long string continuation records.
[pspp]
/
src
/
devind.c
diff --git
a/src/devind.c
b/src/devind.c
index 834e96e03be7c1edbd8efcaac88f5ea060193294..83576e9dcee9c640402958ef2287630c2e98f7a7 100644
(file)
--- a/
src/devind.c
+++ b/
src/devind.c
@@
-14,8
+14,8
@@
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
- Foundation, Inc., 5
9 Temple Place - Suite 330
, Boston, MA
- 0211
1-1307
, USA. */
+ Foundation, Inc., 5
1 Franklin Street, Fifth Floor
, Boston, MA
+ 0211
0-1301
, USA. */
/* Device-independent output format. Eventually I intend for all
PSPP output to work this way, but adding it as an available
/* Device-independent output format. Eventually I intend for all
PSPP output to work this way, but adding it as an available
@@
-220,7
+220,7
@@
devind_option (struct outp_driver *this, const char *key, const struct string *v
break;
case 1:
free (x->file.filename);
break;
case 1:
free (x->file.filename);
- x->file.filename = xstrdup (ds_
value
(val));
+ x->file.filename = xstrdup (ds_
c_str
(val));
break;
default:
assert (0);
break;
default:
assert (0);
@@
-260,7
+260,7
@@
devind_close_page (struct outp_driver *this)
static void output_tab_table (struct outp_driver *, struct tab_table *);
static void
static void output_tab_table (struct outp_driver *, struct tab_table *);
static void
-devind_submit (struct outp_driver *this, struct som_
table
*s)
+devind_submit (struct outp_driver *this, struct som_
entity
*s)
{
extern struct som_table_class tab_table_class;
struct devind_driver_ext *x = this->ext;
{
extern struct som_table_class tab_table_class;
struct devind_driver_ext *x = this->ext;
@@
-272,10
+272,10
@@
devind_submit (struct outp_driver *this, struct som_table *s)
return;
}
return;
}
- if (s->class == &tab_table_class)
+ assert (s->class == &tab_table_class);
+
+ if ( s->type == SOM_TABLE )
output_tab_table (this, s->ext);
output_tab_table (this, s->ext);
- else
- assert (0);
}
/* Write string S of length LEN to file F, escaping characters as
}
/* Write string S of length LEN to file F, escaping characters as
@@
-320,7
+320,7
@@
output_tab_table (struct outp_driver *this, struct tab_table *t)
if (t->nr == 1 && t->nc == 1)
{
fputs ("p:", x->file.file);
if (t->nr == 1 && t->nc == 1)
{
fputs ("p:", x->file.file);
- escape_string (x->file.file, ls_
value
(t->cc), ls_length (t->cc));
+ escape_string (x->file.file, ls_
c_str
(t->cc), ls_length (t->cc));
putc ('\n', x->file.file);
return;
putc ('\n', x->file.file);
return;
@@
-347,7
+347,7
@@
output_tab_table (struct outp_driver *this, struct tab_table *t)
if (!ls_empty_p (&t->title))
{
putc ('T', x->file.file);
if (!ls_empty_p (&t->title))
{
putc ('T', x->file.file);
- escape_string (x->file.file, ls_
value
(&t->title),
+ escape_string (x->file.file, ls_
c_str
(&t->title),
ls_length (&t->title));
putc ('\n', x->file.file);
}
ls_length (&t->title));
putc ('\n', x->file.file);
}
@@
-367,7
+367,7
@@
output_tab_table (struct outp_driver *this, struct tab_table *t)
for (c = 0; c < t->nc; c++, ct++)
{
for (c = 0; c < t->nc; c++, ct++)
{
- struct
len
_string *cc;
+ struct
fixed
_string *cc;
struct tab_joined_cell *j;
if (*ct == TAB_EMPTY)
struct tab_joined_cell *j;
if (*ct == TAB_EMPTY)
@@
-376,7
+376,7
@@
output_tab_table (struct outp_driver *this, struct tab_table *t)
cc = t->cc + c + r * t->nc;
if (*ct & TAB_JOIN)
{
cc = t->cc + c + r * t->nc;
if (*ct & TAB_JOIN)
{
- j = (struct tab_joined_cell *) ls_
value
(cc);
+ j = (struct tab_joined_cell *) ls_
c_str
(cc);
cc = &j->contents;
if (c != j->x1 || r != j->y1)
continue;
cc = &j->contents;
if (c != j->x1 || r != j->y1)
continue;
@@
-399,7
+399,7
@@
output_tab_table (struct outp_driver *this, struct tab_table *t)
else
putc ('c', x->file.file);
putc ('t', x->file.file);
else
putc ('c', x->file.file);
putc ('t', x->file.file);
- escape_string (x->file.file, ls_
value
(cc), ls_length (cc));
+ escape_string (x->file.file, ls_
c_str
(cc), ls_length (cc));
putc ('\n', x->file.file);
}
}
putc ('\n', x->file.file);
}
}
@@
-474,4
+474,7
@@
struct outp_class devind_class =
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
+
+ NULL,
+ NULL,
};
};