msgstr ""
"Project-Id-Version: PSPP 0.4.3\n"
"Report-Msgid-Bugs-To: pspp-dev@gnu.org\n"
-"POT-Creation-Date: 2007-08-15 08:33+0800\n"
+"POT-Creation-Date: 2007-08-16 14:11+0800\n"
"PO-Revision-Date: 2006-07-28 19:32+0800\n"
"Last-Translator: John Darrington <john@darrington.wattle.id.au>\n"
"Language-Team: German <pspp-dev@gnu.org>\n"
msgid "Multivariate GLM not yet supported"
msgstr ""
-#: src/language/stats/glm.q:268 src/language/stats/regression.q:1140
+#: src/language/stats/glm.q:268 src/language/stats/regression.q:1153
msgid "Dependent variable must be numeric."
msgstr ""
-#: src/language/stats/glm.q:343 src/language/stats/regression.q:1240
+#: src/language/stats/glm.q:343 src/language/stats/regression.q:1252
msgid "No valid data found. This command was skipped."
msgstr ""
msgid "Coefficient Correlations"
msgstr ""
+#: src/language/stats/regression.q:1031
+msgid ""
+"The dependent variable is equal to the independent variable. The least "
+"sequares line is therefore Y=X. Standard errors and related statistics may "
+"be meaningless."
+msgstr ""
+
#: src/language/stats/sort-cases.c:63
msgid "Buffer limit must be at least 2."
msgstr ""
msgid "unexpected end of line expecting string"
msgstr ""
-#: src/output/ascii.c:176
+#: src/output/ascii.c:179
#, c-format
msgid ""
"ascii: page excluding margins and headers must be at least 59 characters "
"wide by 15 lines long, but as configured is only %d characters by %d lines"
msgstr ""
-#: src/output/ascii.c:291
+#: src/output/ascii.c:295
#, c-format
msgid ""
"ascii: bad index value for `box' key: syntax is box[INDEX], 0 <= INDEX < %d "
"decimal, with INDEX expressed in base 4"
msgstr ""
-#: src/output/ascii.c:298
+#: src/output/ascii.c:302
#, c-format
msgid "ascii: multiple values for %s"
msgstr ""
-#: src/output/ascii.c:306
+#: src/output/ascii.c:310
#, c-format
msgid "ascii: unknown parameter `%s'"
msgstr ""
-#: src/output/ascii.c:317
+#: src/output/ascii.c:321
#, c-format
msgid "ascii: positive integer required as `%s' value"
msgstr ""
-#: src/output/ascii.c:343
+#: src/output/ascii.c:347
msgid "ascii: `emphasis' value must be `bold', `underline', or `none'"
msgstr ""
-#: src/output/ascii.c:356
+#: src/output/ascii.c:360
#, c-format
msgid "ascii: zero or positive integer required as `%s' value"
msgstr ""
-#: src/output/ascii.c:387
+#: src/output/ascii.c:391
#, c-format
msgid "ascii: boolean value expected for `%s'"
msgstr ""
-#: src/output/ascii.c:416 src/output/html.c:188
+#: src/output/ascii.c:423 src/output/html.c:188
msgid "`chart-files' value must contain `#'"
msgstr ""
-#: src/output/ascii.c:447
+#: src/output/ascii.c:454
#, c-format
msgid "ascii: opening output file \"%s\""
msgstr ""
-#: src/output/ascii.c:514
+#: src/output/ascii.c:521
#, c-format
msgid "ascii: bad line (%d,%d)-(%d,%d) out of (%d,%d)\n"
msgstr ""
-#: src/output/ascii.c:736 src/output/postscript.c:826
+#: src/output/ascii.c:743 src/output/postscript.c:826
#, c-format
msgid "%s - Page %d"
msgstr ""
-#: src/output/ascii.c:789
+#: src/output/ascii.c:795
#, c-format
msgid "ascii: closing output file \"%s\""
msgstr ""
msgid "unknown configuration parameter `%s' for HTML device driver"
msgstr ""
-#: src/output/output.c:162
+#: src/output/output.c:161
#, c-format
msgid "unknown output driver `%s'"
msgstr ""
-#: src/output/output.c:164
+#: src/output/output.c:163
#, c-format
msgid "output driver `%s' referenced but never defined"
msgstr ""
-#: src/output/output.c:255
+#: src/output/output.c:254
msgid "using default output driver configuration"
msgstr ""
-#: src/output/output.c:284
+#: src/output/output.c:283
msgid "cannot find output initialization file (use `-vv' to view search path)"
msgstr ""
-#: src/output/output.c:292
+#: src/output/output.c:291
#, c-format
msgid "cannot open \"%s\""
msgstr ""
-#: src/output/output.c:304
+#: src/output/output.c:303
#, c-format
msgid "reading \"%s\""
msgstr ""
-#: src/output/output.c:326
+#: src/output/output.c:325
msgid "syntax error"
msgstr ""
-#: src/output/output.c:335
+#: src/output/output.c:334
#, c-format
msgid "error closing \"%s\""
msgstr ""
-#: src/output/output.c:343
+#: src/output/output.c:342
msgid "no active output drivers"
msgstr ""
-#: src/output/output.c:346
+#: src/output/output.c:345
msgid "error reading device definition file"
msgstr ""
-#: src/output/output.c:463
+#: src/output/output.c:462
#, c-format
msgid ""
"Driver classes:\n"
"\t"
msgstr ""
-#: src/output/output.c:495
+#: src/output/output.c:494
#, c-format
msgid "syntax error parsing options for \"%s\" driver"
msgstr ""
-#: src/output/output.c:511
+#: src/output/output.c:510
#, c-format
msgid ""
"reached end of options inside quoted string parsing options for \"%s\" driver"
msgstr ""
-#: src/output/output.c:581
+#: src/output/output.c:580
#, c-format
msgid "syntax error in string constant parsing options for \"%s\" driver"
msgstr ""
-#: src/output/output.c:629
+#: src/output/output.c:628
#, c-format
msgid "syntax error expecting `=' parsing options for driver \"%s\""
msgstr ""
-#: src/output/output.c:680
+#: src/output/output.c:679
#, c-format
msgid "unknown output driver class `%.*s'"
msgstr ""
-#: src/output/output.c:695
+#: src/output/output.c:694
#, c-format
msgid "unknown device type `%.*s'"
msgstr ""
-#: src/output/output.c:712
+#: src/output/output.c:711
#, c-format
msgid "cannot initialize output driver `%s' of class `%s'"
msgstr ""
-#: src/output/output.c:758
+#: src/output/output.c:757
msgid "driver definition line missing driver name or class name"
msgstr ""
-#: src/output/output.c:904
+#: src/output/output.c:903
#, c-format
msgid "unit \"%s\" is unknown in dimension \"%s\""
msgstr ""
-#: src/output/output.c:919
+#: src/output/output.c:918
#, c-format
msgid "bad dimension \"%s\""
msgstr ""
-#: src/output/output.c:945
+#: src/output/output.c:944
#, c-format
msgid "`x' expected in paper size `%s'"
msgstr ""
-#: src/output/output.c:955
+#: src/output/output.c:954
#, c-format
msgid "trailing garbage `%s' on paper size `%s'"
msgstr ""
-#: src/output/output.c:999
+#: src/output/output.c:998
msgid "paper size name cannot be empty"
msgstr ""
-#: src/output/output.c:1016
+#: src/output/output.c:1015
msgid "cannot find `papersize' configuration file"
msgstr ""
-#: src/output/output.c:1023
+#: src/output/output.c:1022
#, c-format
msgid "error opening \"%s\""
msgstr ""
-#: src/output/output.c:1034
+#: src/output/output.c:1033
#, c-format
msgid "error reading \"%s\""
msgstr ""
-#: src/output/output.c:1060
+#: src/output/output.c:1059
msgid "syntax error in paper size definition"
msgstr ""
-#: src/output/output.c:1072
+#: src/output/output.c:1071
msgid "error reading paper size definition file"
msgstr ""
msgid "Sort Descending"
msgstr ""
-#: src/ui/gui/data-editor.glade:18 src/ui/gui/syntax-editor.glade:39
+#: src/ui/gui/data-editor.glade:18 src/ui/gui/output-viewer.glade:22
+#: src/ui/gui/syntax-editor.glade:39
msgid "_File"
msgstr "_Datei"
msgid "Recently Used _Files"
msgstr ""
-#: src/ui/gui/data-editor.glade:132 src/ui/gui/syntax-editor.glade:143
+#: src/ui/gui/data-editor.glade:132 src/ui/gui/output-viewer.glade:55
+#: src/ui/gui/syntax-editor.glade:143
msgid "_Edit"
msgstr "_Bearbeiten"
msgid "Data File _Comments"
msgstr "Datei Fehler"
-#: src/ui/gui/data-editor.glade:456 src/ui/gui/syntax-editor.glade:233
+#: src/ui/gui/data-editor.glade:456 src/ui/gui/output-viewer.glade:78
+#: src/ui/gui/syntax-editor.glade:234
#, fuzzy
msgid "_Windows"
msgstr "_Datei"
-#: src/ui/gui/data-editor.glade:463 src/ui/gui/syntax-editor.glade:242
+#: src/ui/gui/data-editor.glade:463 src/ui/gui/output-viewer.glade:88
+#: src/ui/gui/syntax-editor.glade:243
msgid "_Minimise All Windows"
msgstr ""
-#: src/ui/gui/data-editor.glade:474 src/ui/gui/syntax-editor.glade:254
+#: src/ui/gui/data-editor.glade:474 src/ui/gui/output-viewer.glade:99
+#: src/ui/gui/syntax-editor.glade:254
msgid "_Help"
msgstr "_Hilfe"
-#: src/ui/gui/data-editor.glade:481 src/ui/gui/syntax-editor.glade:263
+#: src/ui/gui/data-editor.glade:481 src/ui/gui/output-viewer.glade:106
+#: src/ui/gui/syntax-editor.glade:262
msgid "_Reference Manual"
msgstr ""
-#: src/ui/gui/data-editor.glade:488 src/ui/gui/syntax-editor.glade:271
+#: src/ui/gui/data-editor.glade:488 src/ui/gui/output-viewer.glade:113
+#: src/ui/gui/syntax-editor.glade:269
msgid "_About"
msgstr "_Info"
msgid "Incorrect range specification"
msgstr "Falshe Spannweitebeschreibung"
+#: src/ui/gui/output-viewer.glade:32
+msgid "gtk-save"
+msgstr ""
+
+#: src/ui/gui/output-viewer.glade:41
+msgid "gtk-save-as"
+msgstr ""
+
+#: src/ui/gui/output-viewer.glade:65
+msgid "gtk-copy"
+msgstr ""
+
#: src/ui/gui/psppire-buttonbox.c:143
msgid "Buttons"
msgstr ""
msgid "Current Line"
msgstr ""
-#: src/ui/gui/syntax-editor.glade:221
+#: src/ui/gui/syntax-editor.glade:222
msgid "To End"
msgstr ""
msgid "Weight cases by %s"
msgstr ""
-#: src/ui/gui/window-manager.c:138
+#: src/ui/gui/window-manager.c:142
#, fuzzy, c-format
msgid "Syntax%d"
msgstr "Speichern unter"
-#: src/ui/gui/window-manager.c:139 src/ui/gui/window-manager.c:170
+#: src/ui/gui/window-manager.c:143 src/ui/gui/window-manager.c:178
#, fuzzy, c-format
msgid "%s --- PSPP Syntax Editor"
msgstr "PSPP Dateiaufbereiter"
-#: src/ui/gui/window-manager.c:142
+#: src/ui/gui/window-manager.c:146
#, fuzzy, c-format
msgid "Untitled%d"
msgstr "Unbetitelt"
-#: src/ui/gui/window-manager.c:143 src/ui/gui/window-manager.c:173
+#: src/ui/gui/window-manager.c:147 src/ui/gui/window-manager.c:181
#, fuzzy, c-format
msgid "%s --- PSPP Data Editor"
msgstr "PSPP Dateiaufbereiter"
+#: src/ui/gui/window-manager.c:150
+#, c-format
+msgid "Output%d"
+msgstr ""
+
+#: src/ui/gui/window-manager.c:151
+#, fuzzy, c-format
+msgid "%s --- PSPP Output"
+msgstr "PSPP Dateiaufbereiter"
+
#: src/ui/terminal/command-line.c:219
#, c-format
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: pspp-dev@gnu.org\n"
-"POT-Creation-Date: 2007-08-15 08:33+0800\n"
+"POT-Creation-Date: 2007-08-16 14:11+0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgid "Multivariate GLM not yet supported"
msgstr ""
-#: src/language/stats/glm.q:268 src/language/stats/regression.q:1140
+#: src/language/stats/glm.q:268 src/language/stats/regression.q:1153
msgid "Dependent variable must be numeric."
msgstr ""
-#: src/language/stats/glm.q:343 src/language/stats/regression.q:1240
+#: src/language/stats/glm.q:343 src/language/stats/regression.q:1252
msgid "No valid data found. This command was skipped."
msgstr ""
msgid "Coefficient Correlations"
msgstr ""
+#: src/language/stats/regression.q:1031
+msgid ""
+"The dependent variable is equal to the independent variable. The least "
+"sequares line is therefore Y=X. Standard errors and related statistics may "
+"be meaningless."
+msgstr ""
+
#: src/language/stats/sort-cases.c:63
msgid "Buffer limit must be at least 2."
msgstr ""
msgid "unexpected end of line expecting string"
msgstr ""
-#: src/output/ascii.c:176
+#: src/output/ascii.c:179
#, c-format
msgid ""
"ascii: page excluding margins and headers must be at least 59 characters "
"wide by 15 lines long, but as configured is only %d characters by %d lines"
msgstr ""
-#: src/output/ascii.c:291
+#: src/output/ascii.c:295
#, c-format
msgid ""
"ascii: bad index value for `box' key: syntax is box[INDEX], 0 <= INDEX < %d "
"decimal, with INDEX expressed in base 4"
msgstr ""
-#: src/output/ascii.c:298
+#: src/output/ascii.c:302
#, c-format
msgid "ascii: multiple values for %s"
msgstr ""
-#: src/output/ascii.c:306
+#: src/output/ascii.c:310
#, c-format
msgid "ascii: unknown parameter `%s'"
msgstr ""
-#: src/output/ascii.c:317
+#: src/output/ascii.c:321
#, c-format
msgid "ascii: positive integer required as `%s' value"
msgstr ""
-#: src/output/ascii.c:343
+#: src/output/ascii.c:347
msgid "ascii: `emphasis' value must be `bold', `underline', or `none'"
msgstr ""
-#: src/output/ascii.c:356
+#: src/output/ascii.c:360
#, c-format
msgid "ascii: zero or positive integer required as `%s' value"
msgstr ""
-#: src/output/ascii.c:387
+#: src/output/ascii.c:391
#, c-format
msgid "ascii: boolean value expected for `%s'"
msgstr ""
-#: src/output/ascii.c:416 src/output/html.c:188
+#: src/output/ascii.c:423 src/output/html.c:188
msgid "`chart-files' value must contain `#'"
msgstr ""
-#: src/output/ascii.c:447
+#: src/output/ascii.c:454
#, c-format
msgid "ascii: opening output file \"%s\""
msgstr ""
-#: src/output/ascii.c:514
+#: src/output/ascii.c:521
#, c-format
msgid "ascii: bad line (%d,%d)-(%d,%d) out of (%d,%d)\n"
msgstr ""
-#: src/output/ascii.c:736 src/output/postscript.c:826
+#: src/output/ascii.c:743 src/output/postscript.c:826
#, c-format
msgid "%s - Page %d"
msgstr ""
-#: src/output/ascii.c:789
+#: src/output/ascii.c:795
#, c-format
msgid "ascii: closing output file \"%s\""
msgstr ""
msgid "unknown configuration parameter `%s' for HTML device driver"
msgstr ""
-#: src/output/output.c:162
+#: src/output/output.c:161
#, c-format
msgid "unknown output driver `%s'"
msgstr ""
-#: src/output/output.c:164
+#: src/output/output.c:163
#, c-format
msgid "output driver `%s' referenced but never defined"
msgstr ""
-#: src/output/output.c:255
+#: src/output/output.c:254
msgid "using default output driver configuration"
msgstr ""
-#: src/output/output.c:284
+#: src/output/output.c:283
msgid "cannot find output initialization file (use `-vv' to view search path)"
msgstr ""
-#: src/output/output.c:292
+#: src/output/output.c:291
#, c-format
msgid "cannot open \"%s\""
msgstr ""
-#: src/output/output.c:304
+#: src/output/output.c:303
#, c-format
msgid "reading \"%s\""
msgstr ""
-#: src/output/output.c:326
+#: src/output/output.c:325
msgid "syntax error"
msgstr ""
-#: src/output/output.c:335
+#: src/output/output.c:334
#, c-format
msgid "error closing \"%s\""
msgstr ""
-#: src/output/output.c:343
+#: src/output/output.c:342
msgid "no active output drivers"
msgstr ""
-#: src/output/output.c:346
+#: src/output/output.c:345
msgid "error reading device definition file"
msgstr ""
-#: src/output/output.c:463
+#: src/output/output.c:462
#, c-format
msgid ""
"Driver classes:\n"
"\t"
msgstr ""
-#: src/output/output.c:495
+#: src/output/output.c:494
#, c-format
msgid "syntax error parsing options for \"%s\" driver"
msgstr ""
-#: src/output/output.c:511
+#: src/output/output.c:510
#, c-format
msgid ""
"reached end of options inside quoted string parsing options for \"%s\" driver"
msgstr ""
-#: src/output/output.c:581
+#: src/output/output.c:580
#, c-format
msgid "syntax error in string constant parsing options for \"%s\" driver"
msgstr ""
-#: src/output/output.c:629
+#: src/output/output.c:628
#, c-format
msgid "syntax error expecting `=' parsing options for driver \"%s\""
msgstr ""
-#: src/output/output.c:680
+#: src/output/output.c:679
#, c-format
msgid "unknown output driver class `%.*s'"
msgstr ""
-#: src/output/output.c:695
+#: src/output/output.c:694
#, c-format
msgid "unknown device type `%.*s'"
msgstr ""
-#: src/output/output.c:712
+#: src/output/output.c:711
#, c-format
msgid "cannot initialize output driver `%s' of class `%s'"
msgstr ""
-#: src/output/output.c:758
+#: src/output/output.c:757
msgid "driver definition line missing driver name or class name"
msgstr ""
-#: src/output/output.c:904
+#: src/output/output.c:903
#, c-format
msgid "unit \"%s\" is unknown in dimension \"%s\""
msgstr ""
-#: src/output/output.c:919
+#: src/output/output.c:918
#, c-format
msgid "bad dimension \"%s\""
msgstr ""
-#: src/output/output.c:945
+#: src/output/output.c:944
#, c-format
msgid "`x' expected in paper size `%s'"
msgstr ""
-#: src/output/output.c:955
+#: src/output/output.c:954
#, c-format
msgid "trailing garbage `%s' on paper size `%s'"
msgstr ""
-#: src/output/output.c:999
+#: src/output/output.c:998
msgid "paper size name cannot be empty"
msgstr ""
-#: src/output/output.c:1016
+#: src/output/output.c:1015
msgid "cannot find `papersize' configuration file"
msgstr ""
-#: src/output/output.c:1023
+#: src/output/output.c:1022
#, c-format
msgid "error opening \"%s\""
msgstr ""
-#: src/output/output.c:1034
+#: src/output/output.c:1033
#, c-format
msgid "error reading \"%s\""
msgstr ""
-#: src/output/output.c:1060
+#: src/output/output.c:1059
msgid "syntax error in paper size definition"
msgstr ""
-#: src/output/output.c:1072
+#: src/output/output.c:1071
msgid "error reading paper size definition file"
msgstr ""
msgid "Sort Descending"
msgstr ""
-#: src/ui/gui/data-editor.glade:18 src/ui/gui/syntax-editor.glade:39
+#: src/ui/gui/data-editor.glade:18 src/ui/gui/output-viewer.glade:22
+#: src/ui/gui/syntax-editor.glade:39
msgid "_File"
msgstr ""
msgid "Recently Used _Files"
msgstr ""
-#: src/ui/gui/data-editor.glade:132 src/ui/gui/syntax-editor.glade:143
+#: src/ui/gui/data-editor.glade:132 src/ui/gui/output-viewer.glade:55
+#: src/ui/gui/syntax-editor.glade:143
msgid "_Edit"
msgstr ""
msgid "Data File _Comments"
msgstr ""
-#: src/ui/gui/data-editor.glade:456 src/ui/gui/syntax-editor.glade:233
+#: src/ui/gui/data-editor.glade:456 src/ui/gui/output-viewer.glade:78
+#: src/ui/gui/syntax-editor.glade:234
msgid "_Windows"
msgstr ""
-#: src/ui/gui/data-editor.glade:463 src/ui/gui/syntax-editor.glade:242
+#: src/ui/gui/data-editor.glade:463 src/ui/gui/output-viewer.glade:88
+#: src/ui/gui/syntax-editor.glade:243
msgid "_Minimise All Windows"
msgstr ""
-#: src/ui/gui/data-editor.glade:474 src/ui/gui/syntax-editor.glade:254
+#: src/ui/gui/data-editor.glade:474 src/ui/gui/output-viewer.glade:99
+#: src/ui/gui/syntax-editor.glade:254
msgid "_Help"
msgstr ""
-#: src/ui/gui/data-editor.glade:481 src/ui/gui/syntax-editor.glade:263
+#: src/ui/gui/data-editor.glade:481 src/ui/gui/output-viewer.glade:106
+#: src/ui/gui/syntax-editor.glade:262
msgid "_Reference Manual"
msgstr ""
-#: src/ui/gui/data-editor.glade:488 src/ui/gui/syntax-editor.glade:271
+#: src/ui/gui/data-editor.glade:488 src/ui/gui/output-viewer.glade:113
+#: src/ui/gui/syntax-editor.glade:269
msgid "_About"
msgstr ""
msgid "Incorrect range specification"
msgstr ""
+#: src/ui/gui/output-viewer.glade:32
+msgid "gtk-save"
+msgstr ""
+
+#: src/ui/gui/output-viewer.glade:41
+msgid "gtk-save-as"
+msgstr ""
+
+#: src/ui/gui/output-viewer.glade:65
+msgid "gtk-copy"
+msgstr ""
+
#: src/ui/gui/psppire-buttonbox.c:143
msgid "Buttons"
msgstr ""
msgid "Current Line"
msgstr ""
-#: src/ui/gui/syntax-editor.glade:221
+#: src/ui/gui/syntax-editor.glade:222
msgid "To End"
msgstr ""
msgid "Weight cases by %s"
msgstr ""
-#: src/ui/gui/window-manager.c:138
+#: src/ui/gui/window-manager.c:142
#, c-format
msgid "Syntax%d"
msgstr ""
-#: src/ui/gui/window-manager.c:139 src/ui/gui/window-manager.c:170
+#: src/ui/gui/window-manager.c:143 src/ui/gui/window-manager.c:178
#, c-format
msgid "%s --- PSPP Syntax Editor"
msgstr ""
-#: src/ui/gui/window-manager.c:142
+#: src/ui/gui/window-manager.c:146
#, c-format
msgid "Untitled%d"
msgstr ""
-#: src/ui/gui/window-manager.c:143 src/ui/gui/window-manager.c:173
+#: src/ui/gui/window-manager.c:147 src/ui/gui/window-manager.c:181
#, c-format
msgid "%s --- PSPP Data Editor"
msgstr ""
+#: src/ui/gui/window-manager.c:150
+#, c-format
+msgid "Output%d"
+msgstr ""
+
+#: src/ui/gui/window-manager.c:151
+#, c-format
+msgid "%s --- PSPP Output"
+msgstr ""
+
#: src/ui/terminal/command-line.c:219
#, c-format
msgid ""
FILE *
fn_open (const char *fn, const char *mode)
{
- assert (mode[0] == 'r' || mode[0] == 'w');
+ assert (mode[0] == 'r' || mode[0] == 'w' || mode[0] == 'a');
if (mode[0] == 'r' && (!strcmp (fn, "stdin") || !strcmp (fn, "-")))
return stdin;
+2007-08-16 Ben Pfaff <blp@gnu.org>
+
+ * output.c output.h: export function outp_configure_driver_line.
+ * ascii.c: Added an "append" property.
+
2007-08-12 Ben Pfaff <blp@gnu.org>
Add support for charts to ASCII driver. Bug #16364.
/* ASCII driver options: (defaults listed first)
output-file="pspp.list"
+ append=no|yes If output-file exists, append to it?
chart-files="pspp-#.png" Name used for charts.
chart-type=png Format of charts (use "none" to disable).
struct pool *pool;
/* User parameters. */
+ bool append; /* Append if output-file already exists? */
bool headers; /* Print headers at top of page? */
bool paginate; /* Insert formfeeds? */
bool squeeze_blank_lines; /* Squeeze multiple blank lines into one? */
this->horiz_line_width[i] = this->vert_line_width[i] = i != OUTP_L_NONE;
this->ext = x = pool_create_container (struct ascii_driver_ext, pool);
+ x->append = false;
x->headers = true;
x->paginate = true;
x->squeeze_blank_lines = false;
{"headers", boolean_arg, 0},
{"paginate", boolean_arg, 1},
{"squeeze", boolean_arg, 2},
+ {"append", boolean_arg, 3},
{"emphasis", emphasis_arg, 0},
case 2:
x->squeeze_blank_lines = setting;
break;
+ case 3:
+ x->append = setting;
+ break;
default:
NOT_REACHED ();
}
if (x->file == NULL)
{
- x->file = fn_open (x->file_name, "w");
+ x->file = fn_open (x->file_name, x->append ? "a" : "w");
if (x->file == NULL)
{
error (0, errno, _("ascii: opening output file \"%s\""),
ascii_flush (struct outp_driver *this)
{
struct ascii_driver_ext *x = this->ext;
-
if (x->file != NULL)
{
if (fn_close (x->file_name, x->file) != 0)
static int disabled_devices;
static void destroy_driver (struct outp_driver *);
-static void configure_driver_line (struct substring);
static void configure_driver (const struct substring, const struct substring,
const struct substring, const struct substring);
struct outp_names *n = search_names (cp, ep);
if (n)
{
- configure_driver_line (ds_ss (&line));
+ outp_configure_driver_line (ds_ss (&line));
delete_name (n);
}
}
DRIVERNAME:CLASSNAME:DEVICETYPE:OPTIONS
Adds a driver to outp_driver_list pursuant to the specification
provided. */
-static void
-configure_driver_line (struct substring line_)
+void
+outp_configure_driver_line (struct substring line_)
{
struct string line = DS_EMPTY_INITIALIZER;
struct substring tokens[4];
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
-#if !output_h
-#define output_h 1
+#ifndef OUTPUT_OUTPUT_H
+#define OUTPUT_OUTPUT_H 1
#include <config.h>
void outp_init (void);
void outp_read_devices (void);
+void outp_configure_driver_line (struct substring);
void outp_done (void);
void outp_configure_clear (void);
/* Imported from som-frnt.c. */
void som_destroy_driver (struct outp_driver *);
-#endif /* output.h */
+#endif /* output/output.h */
+2007-08-16 John Darrington <john@darrington.wattle.id.au>
+
+ * output-viewer.c output-viewer.h output-viewer.glade (new files)
+ helper.c psppire.c syntax-editor.glade window-manager.c
+ window-manager.h : Added a basic output viewer window.
+
2007-08-13 John Darrington <john@darrington.wattle.id.au>
* clipboard.c (clip_to_html clip_to_text): Fixed bug --- use the
$(top_srcdir)/src/ui/gui/psppire.glade \
$(top_srcdir)/src/ui/gui/syntax-editor.glade \
$(top_srcdir)/src/ui/gui/data-editor.glade \
+ $(top_srcdir)/src/ui/gui/output-viewer.glade \
$(top_srcdir)/src/ui/gui/psppicon.png \
$(top_srcdir)/src/ui/gui/pspplogo.png \
$(top_srcdir)/src/ui/gui/icons/value-labels.png \
src/ui/gui/helper.h \
src/ui/gui/missing-val-dialog.c \
src/ui/gui/missing-val-dialog.h \
+ src/ui/gui/output-viewer.c \
+ src/ui/gui/output-viewer.h \
src/ui/gui/psppire-buttonbox.c \
src/ui/gui/psppire-buttonbox.h \
src/ui/gui/psppire-hbuttonbox.c \
#include <language/lexer/lexer.h>
#include "psppire-data-store.h"
#include <output/manager.h>
-
+#include "output-viewer.h"
#include <gettext.h>
w = glade_xml_get_widget (xml, name);
if ( !w )
- g_warning ("Widget \"%s\" could not be found\n", name);
+ g_critical ("Widget \"%s\" could not be found\n", name);
return w;
}
proc_set_active_file_data (the_dataset, NULL);
som_flush ();
+
+ reload_the_viewer ();
}
--- /dev/null
+/* PSPPIRE - a graphical user interface for PSPP.
+ Copyright (C) 2007 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 published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <config.h>
+#include <gtk/gtk.h>
+#include "window-manager.h"
+#include "output-viewer.h"
+#include "helper.h"
+#include "about.h"
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
+
+#include <glade/glade.h>
+#include <ctype.h>
+
+struct output_viewer
+{
+ struct editor_window parent;
+ GtkTextBuffer *buffer; /* The buffer which contains the text */
+ GtkWidget *textview ;
+ FILE *fp; /* The file it's viewing */
+};
+
+
+static void
+cancel_urgency (GtkWindow *window, gpointer data)
+{
+ gtk_window_set_urgency_hint (window, FALSE);
+}
+
+
+static struct output_viewer *the_output_viewer = NULL;
+
+
+/* Callback for the "delete" action (clicking the x on the top right
+ hand corner of the window) */
+static gboolean
+on_delete (GtkWidget *w, GdkEvent *event, gpointer user_data)
+{
+ struct output_viewer *ov = user_data;
+
+ g_free (ov);
+
+ the_output_viewer = NULL;
+
+ unlink (OUTPUT_FILE_NAME);
+
+ return FALSE;
+}
+
+
+/*
+ Create a new output viewer
+*/
+struct output_viewer *
+new_output_viewer (void)
+{
+ GladeXML *xml = XML_NEW ("output-viewer.glade");
+
+ struct output_viewer *ov ;
+ struct editor_window *e;
+
+ connect_help (xml);
+
+ ov = g_malloc (sizeof (*ov));
+
+ e = (struct editor_window *)ov;
+
+
+ e->window = GTK_WINDOW (get_widget_assert (xml, "output-viewer-window"));
+ ov->textview = get_widget_assert (xml, "output-viewer-textview");
+ ov->buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (ov->textview));
+
+ g_signal_connect (e->window,
+ "focus-in-event",
+ G_CALLBACK (cancel_urgency),
+ NULL);
+
+ {
+ /* Output uses ascii characters for tabular material.
+ So we need a monospaced font otherwise it'll look silly */
+ PangoFontDescription *font_desc =
+ pango_font_description_from_string ("monospace");
+
+ gtk_widget_modify_font (ov->textview, font_desc);
+ pango_font_description_free (font_desc);
+ }
+
+ ov->fp = NULL;
+
+ g_signal_connect (get_widget_assert (xml,"help_about"),
+ "activate",
+ G_CALLBACK (about_new),
+ e->window);
+
+ g_signal_connect (get_widget_assert (xml,"help_reference"),
+ "activate",
+ G_CALLBACK (reference_manual),
+ NULL);
+
+ g_signal_connect (get_widget_assert (xml,"windows_minimise-all"),
+ "activate",
+ G_CALLBACK (minimise_all_windows),
+ NULL);
+
+ g_object_unref (xml);
+
+
+ g_signal_connect (e->window, "delete-event",
+ G_CALLBACK (on_delete), ov);
+
+ return ov;
+}
+
+
+void
+reload_the_viewer (void)
+{
+ struct stat buf;
+
+ /* If there is no output, then don't do anything */
+ if (0 != stat (OUTPUT_FILE_NAME, &buf))
+ return ;
+
+ if ( NULL == the_output_viewer )
+ {
+ the_output_viewer =
+ (struct output_viewer *) window_create (WINDOW_OUTPUT, NULL);
+ }
+
+ reload_viewer (the_output_viewer);
+}
+
+
+void
+reload_viewer (struct output_viewer *ov)
+{
+ GtkTextIter end_iter;
+ char line[OUTPUT_LINE_WIDTH];
+ GtkTextMark *mark ;
+ gboolean chars_inserted = FALSE;
+
+
+ if ( ov->fp == NULL)
+ {
+ ov->fp = fopen (OUTPUT_FILE_NAME, "r");
+ if ( ov->fp == NULL)
+ {
+ g_print ("Cannot open %s\n", OUTPUT_FILE_NAME);
+ return;
+ }
+ }
+
+ gtk_text_buffer_get_end_iter (ov->buffer, &end_iter);
+
+ mark = gtk_text_buffer_create_mark (ov->buffer, NULL, &end_iter, TRUE);
+
+ /* Read in the next lot of text */
+ while (fgets (line, OUTPUT_LINE_WIDTH, ov->fp) != NULL)
+ {
+ chars_inserted = TRUE;
+ gtk_text_buffer_insert (ov->buffer, &end_iter, line, -1);
+ }
+
+ /* Scroll to where the start of this lot of text begins */
+ gtk_text_view_scroll_to_mark (GTK_TEXT_VIEW (ov->textview),
+ mark,
+ 0.1, TRUE, 0.0, 0.0);
+
+
+ if ( chars_inserted )
+ gtk_window_set_urgency_hint ( ((struct editor_window *)ov)->window, TRUE);
+}
+
+
+
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
+<!--Generated with glade3 3.2.0 on Sat Aug 11 17:19:54 2007 by john@marilyn-->
+<glade-interface>
+ <widget class="GtkWindow" id="output-viewer-window">
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="default_width">600</property>
+ <property name="default_height">400</property>
+ <child>
+ <widget class="GtkVBox" id="vbox1">
+ <property name="visible">True</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <child>
+ <widget class="GtkMenuBar" id="menubar1">
+ <property name="visible">True</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <child>
+ <widget class="GtkMenuItem" id="menuitem1">
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="label" translatable="yes">_File</property>
+ <property name="use_underline">True</property>
+ <child>
+ <widget class="GtkMenu" id="menu1">
+ <property name="visible">True</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <child>
+ <widget class="GtkImageMenuItem" id="file_save">
+ <property name="visible">True</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="label" translatable="yes">gtk-save</property>
+ <property name="use_underline">True</property>
+ <property name="use_stock">True</property>
+ </widget>
+ </child>
+ <child>
+ <widget class="GtkImageMenuItem" id="file_save-as">
+ <property name="visible">True</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="label" translatable="yes">gtk-save-as</property>
+ <property name="use_underline">True</property>
+ <property name="use_stock">True</property>
+ </widget>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ </child>
+ <child>
+ <widget class="GtkMenuItem" id="menuitem2">
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="label" translatable="yes">_Edit</property>
+ <property name="use_underline">True</property>
+ <child>
+ <widget class="GtkMenu" id="menu2">
+ <property name="visible">True</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <child>
+ <widget class="GtkImageMenuItem" id="imagemenuitem7">
+ <property name="visible">True</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="label" translatable="yes">gtk-copy</property>
+ <property name="use_underline">True</property>
+ <property name="use_stock">True</property>
+ </widget>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ </child>
+ <child>
+ <widget class="GtkMenuItem" id="menuitem3">
+ <property name="visible">True</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="label" translatable="yes">_Windows</property>
+ <property name="use_underline">True</property>
+ <child>
+ <widget class="GtkMenu" id="menu4">
+ <property name="visible">True</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <child>
+ <widget class="GtkMenuItem" id="windows_minimise-all">
+ <property name="visible">True</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="label" translatable="yes">_Minimise All Windows</property>
+ <property name="use_underline">True</property>
+ </widget>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ </child>
+ <child>
+ <widget class="GtkMenuItem" id="menuitem9">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_Help</property>
+ <property name="use_underline">True</property>
+ <child>
+ <widget class="GtkMenu" id="menuitem9_menu">
+ <child>
+ <widget class="GtkMenuItem" id="help_reference">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_Reference Manual</property>
+ <property name="use_underline">True</property>
+ </widget>
+ </child>
+ <child>
+ <widget class="GtkMenuItem" id="help_about">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_About</property>
+ <property name="use_underline">True</property>
+ </widget>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkScrolledWindow" id="scrolledwindow1">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+ <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+ <child>
+ <widget class="GtkTextView" id="output-viewer-textview">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="editable">False</property>
+ <property name="left_margin">5</property>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
+</glade-interface>
--- /dev/null
+/* PSPPIRE - a graphical user interface for PSPP.
+ Copyright (C) 2007 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
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+
+#ifndef OUTPUT_VIEWER_H
+#define OUTPUT_VIEWER_H
+
+#include <gtk/gtk.h>
+
+#include "window-manager.h"
+
+
+struct output_viewer * new_output_viewer (void);
+
+void reload_viewer (struct output_viewer *);
+
+void reload_the_viewer (void);
+
+
+#define OUTPUT_FILE_NAME "psppire.txt"
+
+/* Make sure these two agree !! */
+#define OUTPUT_LINE_WIDTH 80
+#define OUTPUT_LINE_WIDTH_str "80"
+
+
+
+#endif
#include "relocatable.h"
#include "data-editor.h"
-
#include "psppire.h"
-
+#include <unistd.h>
#include <data/casereader.h>
#include <data/datasheet.h>
#include <data/file-handle-def.h>
#include "var-sheet.h"
#include "message-dialog.h"
+#include "output-viewer.h"
+
PsppireDataStore *the_data_store = 0;
PsppireVarStore *the_var_store = 0;
create_icon_factory ();
- outp_read_devices ();
- outp_enable_device (true, OUTP_DEV_SCREEN);
+ outp_configure_driver_line (
+ ss_cstr ("gui:ascii:screen:squeeze=on headers=off top-margin=0 "
+ "bottom-margin=0 paginate=off length=50 "
+ "width=" OUTPUT_LINE_WIDTH_str " emphasis=none "
+ "output-file=\"" OUTPUT_FILE_NAME "\" append=yes"));
+
+ unlink (OUTPUT_FILE_NAME);
new_data_window (NULL, NULL);
}
<property name="visible">True</property>
<property name="label" translatable="yes">Current Line</property>
<property name="use_underline">True</property>
+ <accelerator key="R" modifiers="GDK_CONTROL_MASK" signal="activate"/>
</widget>
</child>
</child>
</widget>
</child>
-
<child>
<widget class="GtkMenuItem" id="menuitem9">
<property name="visible">True</property>
<child>
<widget class="GtkMenu" id="menuitem9_menu">
-
<child>
<widget class="GtkMenuItem" id="help_reference">
<property name="visible">True</property>
<property name="use_underline">True</property>
</widget>
</child>
-
<child>
<widget class="GtkMenuItem" id="help_about">
<property name="visible">True</property>
#include <glib.h>
#include "syntax-editor.h"
#include "data-editor.h"
+#include "output-viewer.h"
#include <gettext.h>
#define _(msgid) gettext (msgid)
case WINDOW_DATA:
e = (struct editor_window *) new_data_editor ();
break;
+ case WINDOW_OUTPUT:
+ e = (struct editor_window *) new_output_viewer ();
+ break;
default:
g_assert_not_reached ();
};
e->name = g_strdup_printf (_("Untitled%d"), next_window_id () );
title = g_strdup_printf (_("%s --- PSPP Data Editor"), e->name);
break;
+ case WINDOW_OUTPUT:
+ e->name = g_strdup_printf (_("Output%d"), next_window_id () );
+ title = g_strdup_printf (_("%s --- PSPP Output"), e->name);
+ break;
default:
g_assert_not_reached ();
}
enum window_type
{
WINDOW_DATA,
- WINDOW_SYNTAX
+ WINDOW_SYNTAX,
+ WINDOW_OUTPUT
};