Mercurial > octave-nkf
changeset 2534:c0770352f562
[project @ 1996-11-19 19:06:29 by jwe]
author | jwe |
---|---|
date | Tue, 19 Nov 1996 19:06:30 +0000 |
parents | 987e934bbb8c |
children | caa21ce81913 |
files | src/ChangeLog src/help.cc |
diffstat | 2 files changed, 37 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/src/ChangeLog Tue Nov 19 18:21:32 1996 +0000 +++ b/src/ChangeLog Tue Nov 19 19:06:30 1996 +0000 @@ -1,5 +1,9 @@ Tue Nov 19 12:01:13 1996 John W. Eaton <jwe@bevo.che.wisc.edu> + * help.cc (Ftype): If a function is defined from a file and + transformed text has not been requested, just print the contents + of the file. + * parse.y (fold): New functions for constant folding for binary and unary expressions. Keep track of original text even when transformations occur.
--- a/src/help.cc Tue Nov 19 18:21:32 1996 +0000 +++ b/src/help.cc Tue Nov 19 19:06:30 1996 +0000 @@ -31,6 +31,7 @@ #include <string> #include <iostream.h> +#include <fstream.h> #include <strstream.h> #ifdef HAVE_UNISTD_H @@ -782,12 +783,39 @@ { tree_fvc *defn = sym_rec->def (); - if (nargout == 0 && ! quiet) - output_buf << argv[i] << " is a user-defined function\n"; + string fn = defn->fcn_file_name (); + string ff = fcn_file_in_path (fn); + + if (pr_orig_txt && ! ff.empty ()) + { + ifstream fs (ff.c_str (), ios::in); + + if (fs) + { + if (nargout == 0 && ! quiet) + output_buf << argv[i] + << " is the function defined from:\n" + << ff << "\n\n"; + + char ch; - tree_print_code tpc (output_buf, "", pr_orig_txt); + while (fs.get (ch)) + output_buf << ch; + } + else + output_buf << "unable to open `" << ff + << "' for reading!\n"; + } + else + { + if (nargout == 0 && ! quiet) + output_buf << argv[i] + << " is a user-defined function:\n\n"; - defn->accept (tpc); + tree_print_code tpc (output_buf, "", pr_orig_txt); + + defn->accept (tpc); + } } // XXX FIXME XXX -- this code should be shared with @@ -836,7 +864,7 @@ << "' has no member `" << elts << "'\n"; else output_buf << "type: `" << id - << "' has unknown type!"; + << "' has unknown type!\n"; } } if (! tmp->is_map ())