[Date Prev] [Date Next] [Thread Prev] [Thread Next] Date Index Thread Index Search archive:
Date:Mon Apr 9 10:51:57 2000 
Subject:Should we redefine the default vederror? 
From:Aaron Sloman see text for reply 
Volume-ID:1000409.02 

[To reply replace "Aaron.Sloman.XX" with "A.Sloman"]

In the old days when terminals and connections to machines were slow
(e.g. 30 characters per second), and screen space was scarce and
expensive, it seemed wasteful, while compiling from Ved to have the full
text of compilation errors generated by "mishap" go into an output file,
unlike run-time errors which have always done so.

Thus many of the syntax errors are reported on the status line using
vederror. (See HELP MISHAPS, REF vederror)

This is how it is defined in $usepop/pop/ved/src/vdstatus.p

    define vars vederror(string);
	    lvars string;
	    if vedinvedprocess then
		    Open_file_window();
		    vedputmessage(string);
		    vedscreenbell();
		    vedinterrupt();
	    else
		    mishap(0, string)
	    endif
    enddefine;

Where the unexported system procedure after "then" is defined (in
effect) thus in vdwindows.p:

    define Open_file_window();
	    if vedusewindows and wved_is_live_window(wvedwindow) then
		    wved_open_window(wvedwindow)
	    endif
    enddefine;

PROBLEM:
I have noticed that people often don't notice the error message
on the status line, and sometimes the status line is too short anyway,
or in a multi-window environment it can easily get covered up, etc.

Worse, if they are sending email requests for help, they cannot use
the mouse to select and paste the error message: clicking on the
status line makes the message go away! (This doesn't happen in Ved).

So I now propose that the default definition of vederror be changed to
something like this:

define vederror(string);

    edit('output.p');

    vedendfile();

	if vedusewindows and wved_is_live_window(wvedwindow) then
        ;;; make sure error message file is visible,
        ;;; de-iconising if necessary
		wved_open_window(wvedwindow)
	endif;

    dlocal
        cucharout = vedcharinsert,
        cucharerr = vedcharinsert,
        vedbreak;

    true -> vedbreak;

    mishap(string, []);

enddefine;

The edit('output.p') command above could be changed to something like

    edit(vederrors_file)

where vederrors_file might be a user-specified string holding the name
of a file to be used for VED and compilation error messages.

I am thinking of building this into the default startup.psv image here
(after consultation).

I wonder what others think?

(It can be combined with code that makes the output.p window always
relatively small, e.g. 10 lines high, by default.)

Aaron
==
Aaron Sloman, ( http://www.cs.bham.ac.uk/~axs/ )
School of Computer Science, The University of Birmingham, B15 2TT, UK
EMAIL A.Sloman AT cs.bham.ac.uk   (ReadATas@please !)
PAPERS: http://www.cs.bham.ac.uk/research/cogaff/
TOOLS: http://www.cs.bham.ac.uk/research/poplog/freepoplog.html