Send error message to non-screen output devices also, if routing to
authorBen Pfaff <blp@gnu.org>
Sun, 26 Aug 2007 18:26:29 +0000 (18:26 +0000)
committerBen Pfaff <blp@gnu.org>
Sun, 26 Aug 2007 18:26:29 +0000 (18:26 +0000)
listing files is enabled.  Bug #17238.  Thanks to John Darrington for
review.

* command/aggregate.sh: Update output to include error messages,
which are now sent to output files also.

* devices: Change raw-ascii from screen to listing device (because
that's how it's used).

config/ChangeLog
config/devices
src/ui/terminal/ChangeLog
src/ui/terminal/msg-ui.c
tests/ChangeLog
tests/command/aggregate.sh
tests/command/rank.sh

index b865ad2d0822ba790a636acf680db4ff5ee70268..93c9e809675aa696b5e1be4c606f82a57cb8957d 100644 (file)
@@ -1,3 +1,8 @@
+2007-08-26  Ben Pfaff  <blp@gnu.org>
+
+       * devices: Change raw-ascii from screen to listing device (because
+       that's how it's used).
+
 2007-07-25  Ben Pfaff  <blp@gnu.org>
 
        * devices: Add tty and listing devices that use VT100 (and xterm)
index 32d51befd6ef041bfcea8b77f4b12cfa07425dd4..7da8eac81a79e6bf6921d3eabf5653535b9803b3 100644 (file)
@@ -53,7 +53,7 @@ tty-ascii:ascii:screen:squeeze=on headers=off top-margin=0 bottom-margin=0 \
   paginate=off length=${viewlength} width=${viewwidth} \
   output-file=${tty-output-file}
 list-ascii:ascii:listing:length=66 width=79 output-file=${list-output-file}
-raw-ascii:ascii:screen:width=9999 length=9999 output-file=${list-output-file} \
+raw-ascii:ascii:listing:width=9999 length=9999 output-file=${list-output-file} \
   emphasis=none headers=off paginate=off squeeze=on \
   top-margin=0 bottom-margin=0
 
index 079aee789cbb01417705843ae9d7613a219b587d..b3063bd28162ede2d072b2156ed9a5f0f45036fd 100644 (file)
@@ -1,3 +1,9 @@
+2007-08-26  Ben Pfaff  <blp@gnu.org>
+
+       * msg-ui.c (handle_msg): Send error message to non-screen output
+       devices also, if routing to listing files is enabled.  Bug
+       #17238.  Thanks to John Darrington for review.
+
 2007-08-23  Ben Pfaff  <blp@gnu.org>
 
        Implement journaling.  Bug #17240.
index b51a3e557021fe26f042ed3e610a4981a315fb3f..93c3683f220f9d084a2e00defb97f23fefff073e 100644 (file)
@@ -26,6 +26,8 @@
 #include <libpspp/message.h>
 #include <libpspp/str.h>
 #include <output/journal.h>
+#include <output/output.h>
+#include <output/table.h>
 #include <errno.h>
 #include <stdio.h>
 #include <stdlib.h>
@@ -177,6 +179,16 @@ handle_msg (const struct msg *m)
 
   dump_message (ds_cstr (&string), 78, 0, write_journal, NULL);
 
+  if (get_error_routing_to_listing ())
+    {
+      /* Disable screen output devices, because the error should
+         already have been reported to the screen with the
+         dump_message call above. */
+      outp_enable_device (false, OUTP_DEV_SCREEN);
+      tab_output_text (TAB_LEFT, ds_cstr (&string));
+      outp_enable_device (true, OUTP_DEV_SCREEN);
+    }
+
   ds_destroy (&string);
 }
 
index dc2c7f983c73744a0d518c9b08a4831dcdf511a5..6c378de604334e8f46372273477df9c0973d1adb 100644 (file)
@@ -1,3 +1,10 @@
+2007-08-26  Ben Pfaff  <blp@gnu.org>
+
+       * command/aggregate.sh: Update output to include error messages,
+       which are now sent to output files also.
+
+       * command/ranks.h: Ditto.
+
 2007-08-12  Ben Pfaff  <blp@gnu.org>
 
        * command/no_case_size.sh: Update to match update DISPLAY and
index 3cdd84dbe77a03f27e8cd9f365a33d5fdb230c00..b95401818ab8f1edb938a4fa7f50a8b635ffb5cc 100755 (executable)
@@ -150,6 +150,10 @@ EOF
 
 activity="expected output (itemwise missing) create"
 cat > agg-itemwise.out <<EOF
+warning: AGGREGATE: The value arguments passed to the FOUT function are out-of-order.  They will be treated as if they had been specified in the correct order.
+warning: AGGREGATE: The value arguments passed to the FOUT function are out-of-order.  They will be treated as if they had been specified in the correct order.
+warning: AGGREGATE: The value arguments passed to the FOUT function are out-of-order.  They will be treated as if they had been specified in the correct order.
+warning: AGGREGATE: The value arguments passed to the FOUT function are out-of-order.  They will be treated as if they had been specified in the correct order.
 G        N       NI      NU     NUI NFGT2 NFGT2I SFGT2 SFGT2I NFIN23 NFIN23I SFIN23 SFIN23I NFLT2 NFLT2I SFLT2 SFLT2I NFIRST NFIRSTI SFIRST SFIRSTI NFOUT23 NFOUT23I SFOUT23 SFOUT23I NLAST NLASTI SLAST SLASTI NMAX NMAXI SMAX SMAXI    NMEAN   NMEANI NMIN NMINI SMIN SMINI       NN      NNI       SN      SNI   NNMISS  NNMISSI   SNMISS  SNMISSI     NNU    NNUI     SNU    SNUI NNUMISS NNUMISSI SNUMISS SNUMISSI NPGT2 NPGT2I SPGT2 SPGT2I NPIN23 NPIN23I SPIN23 SPIN23I NPLT2 NPLT2I SPLT2 SPLT2I NPOUT23 NPOUT23I SPOUT23 SPOUT23I      NSD     NSDI     NSUM    NSUMI
 - -------- -------- ------- ------- ----- ------ ----- ------ ------ ------- ------ ------- ----- ------ ----- ------ ------ ------- ------ ------- ------- -------- ------- -------- ----- ------ ----- ------ ---- ----- ---- ----- -------- -------- ---- ----- ---- ----- -------- -------- -------- -------- -------- -------- -------- -------- ------- ------- ------- ------- ------- -------- ------- -------- ----- ------ ----- ------ ------ ------- ------ ------- ----- ------ ----- ------ ------- -------- ------- -------- -------- -------- -------- --------
 1     7.00     7.00       6       6  .333   .429  .333   .429   .333    .286   .333    .286  .500   .429  .500   .429      0       0      0       0    .667     .714    .667     .714     5      5     5      5    5     5    5     5     2.00     2.29    0     0    0     0     6.00     7.00     6.00     7.00     1.00      .00     1.00      .00       5       6       5       6       1        0       1        0  33.3   42.9  33.3   42.9   33.3    28.6   33.3    28.6  50.0   42.9  50.0   42.9    66.7     71.4    66.7     71.4     1.79     1.80    12.00    16.00 
@@ -160,6 +164,10 @@ EOF
 
 activity="expected output (columnwise missing) create"
 cat > agg-columnwise.out <<EOF
+warning: AGGREGATE: The value arguments passed to the FOUT function are out-of-order.  They will be treated as if they had been specified in the correct order.
+warning: AGGREGATE: The value arguments passed to the FOUT function are out-of-order.  They will be treated as if they had been specified in the correct order.
+warning: AGGREGATE: The value arguments passed to the FOUT function are out-of-order.  They will be treated as if they had been specified in the correct order.
+warning: AGGREGATE: The value arguments passed to the FOUT function are out-of-order.  They will be treated as if they had been specified in the correct order.
 G        N       NI      NU     NUI NFGT2 NFGT2I SFGT2 SFGT2I NFIN23 NFIN23I SFIN23 SFIN23I NFLT2 NFLT2I SFLT2 SFLT2I NFIRST NFIRSTI SFIRST SFIRSTI NFOUT23 NFOUT23I SFOUT23 SFOUT23I NLAST NLASTI SLAST SLASTI NMAX NMAXI SMAX SMAXI    NMEAN   NMEANI NMIN NMINI SMIN SMINI       NN      NNI       SN      SNI   NNMISS  NNMISSI   SNMISS  SNMISSI     NNU    NNUI     SNU    SNUI NNUMISS NNUMISSI SNUMISS SNUMISSI NPGT2 NPGT2I SPGT2 SPGT2I NPIN23 NPIN23I SPIN23 SPIN23I NPLT2 NPLT2I SPLT2 SPLT2I NPOUT23 NPOUT23I SPOUT23 SPOUT23I      NSD     NSDI     NSUM    NSUMI
 - -------- -------- ------- ------- ----- ------ ----- ------ ------ ------- ------ ------- ----- ------ ----- ------ ------ ------- ------ ------- ------- -------- ------- -------- ----- ------ ----- ------ ---- ----- ---- ----- -------- -------- ---- ----- ---- ----- -------- -------- -------- -------- -------- -------- -------- -------- ------- ------- ------- ------- ------- -------- ------- -------- ----- ------ ----- ------ ------ ------- ------ ------- ----- ------ ----- ------ ------- -------- ------- -------- -------- -------- -------- --------
 1     7.00     7.00       6       6  .      .429  .      .429   .       .286   .       .286  .      .429  .      .429      .       0              0    .        .714    .        .714     .      5            5    .     5          5      .       2.29    .     0          0     6.00     7.00     6.00     7.00     1.00      .00     1.00      .00       5       6       5       6       1        0       1        0    .    42.9    .    42.9     .     28.6     .     28.6    .    42.9    .    42.9      .      71.4      .      71.4      .       1.80      .      16.00 
@@ -210,7 +218,7 @@ for outfile in scratch active external; do
            if [ $? -ne 0 ] ; then no_result ; fi
 
            activity="check $name output"
-           perl -pi -e 's/^\s*$//g' pspp.list agg-$missing.out
+           perl -pi -e 's/^\s*$//g;s/^.*:\d+: //;' pspp.list agg-$missing.out
            diff -b -w pspp.list agg-$missing.out
            if [ $? -ne 0 ] ; then fail ; fi
        done
index bd0d5a2f4b84a4e28ef0a8639cfc9e434f2803ed..6b8760e6e2be37f79241d4d8f45fa1e933efd7e1 100755 (executable)
@@ -587,6 +587,13 @@ if [ $? -ne 0 ] ; then fail ; fi
 activity="compare output 4"
 perl -pi -e 's/^\s*$//g' $TEMPDIR/pspp.list
 diff  -b $TEMPDIR/pspp.list - << EOF
+$TEMPDIR/rank.sh.sps:3: warning: BEGIN DATA: Missing value(s) for all variables from rx onward.  These will be filled with the system-missing value or blanks, as appropriate.
+$TEMPDIR/rank.sh.sps:4: warning: BEGIN DATA: Missing value(s) for all variables from rx onward.  These will be filled with the system-missing value or blanks, as appropriate.
+$TEMPDIR/rank.sh.sps:5: warning: BEGIN DATA: Missing value(s) for all variables from rx onward.  These will be filled with the system-missing value or blanks, as appropriate.
+$TEMPDIR/rank.sh.sps:6: warning: BEGIN DATA: Missing value(s) for all variables from rx onward.  These will be filled with the system-missing value or blanks, as appropriate.
+$TEMPDIR/rank.sh.sps:7: warning: BEGIN DATA: Missing value(s) for all variables from rx onward.  These will be filled with the system-missing value or blanks, as appropriate.
+$TEMPDIR/rank.sh.sps:8: warning: BEGIN DATA: Missing value(s) for all variables from rx onward.  These will be filled with the system-missing value or blanks, as appropriate.
+$TEMPDIR/rank.sh.sps:9: warning: BEGIN DATA: Missing value(s) for all variables from rx onward.  These will be filled with the system-missing value or blanks, as appropriate.
 Variables Created By RANK
 x into RNKRA01(RANK of x)
        x       rx   RNKRA01