Merge from vendor branch DIFFUTILS:
[dragonfly.git] / contrib / nvi / tcl_scripts / errors.tcl
1 #       @(#)errors.tcl  8.2 (Berkeley) 11/18/95
2 #
3 # File: errors.tcl
4 #
5 # Author: George V. Neville-Neil
6 #
7 # Purpose: This file contains vi/tcl code that allows a vi user to parse
8 # compiler errors and warnings from a make.out file.
9
10 proc findErr {} {
11         global errScreen
12         global currFile
13         global fileScreen
14         set errLine [lindex [viGetCursor $errScreen] 0]
15         set currLine [split [viGetLine $errScreen $errLine] :]
16         set currFile [lindex $currLine 0]
17         set fileScreen [viNewScreen $errScreen $currFile]
18         viSetCursor $fileScreen [lindex $currLine 1] 1
19         viMapKey $viScreenId \ 5 nextErr
20 }
21
22 proc nextErr {} {
23         global errScreen
24         global fileScreen
25         global currFile
26         set errLine [lindex [viGetCursor $errScreen] 0]
27         set currLine [split [viGetLine $errScreen $errLine] :]
28         if {[string match $currFile [lindex $currLine 0]]} {
29                 viSetCursor $fileScreen [lindex $currLine 1] 0
30                 viSwitchScreen $fileScreen
31         } else {
32                 viEndScreen $fileScreen
33                 set currFile [lindex $currLine 0]
34                 set fileScreen[viNewScreen $errScreen $currFile]
35                 viSetCursor $fileScreen [lindex $currLine 1] 0
36         }
37 }
38
39 proc initErr {} {
40         global viScreenId
41         global errScreen
42         set errScreen [viNewScreen $viScreenId make.out]
43         viMapKey $viScreenId \ 5 findErr
44 }