xref: /netbsd-src/external/bsd/nvi/dist/tcl_scripts/errors.tcl (revision dbd550ed1a6686d6600f748306f9cc03d8cd4c94)
1*dbd550edSchristos#	Id: errors.tcl,v 8.2 1995/11/18 12:59:07 bostic Exp  (Berkeley) Date: 1995/11/18 12:59:07
2*dbd550edSchristos#
3*dbd550edSchristos# File: errors.tcl
4*dbd550edSchristos#
5*dbd550edSchristos# Author: George V. Neville-Neil
6*dbd550edSchristos#
7*dbd550edSchristos# Purpose: This file contains vi/tcl code that allows a vi user to parse
8*dbd550edSchristos# compiler errors and warnings from a make.out file.
9*dbd550edSchristos
10*dbd550edSchristosproc findErr {} {
11*dbd550edSchristos	global errScreen
12*dbd550edSchristos	global currFile
13*dbd550edSchristos	global fileScreen
14*dbd550edSchristos	set errLine [lindex [viGetCursor $errScreen] 0]
15*dbd550edSchristos	set currLine [split [viGetLine $errScreen $errLine] :]
16*dbd550edSchristos	set currFile [lindex $currLine 0]
17*dbd550edSchristos	set fileScreen [viNewScreen $errScreen $currFile]
18*dbd550edSchristos	viSetCursor $fileScreen [lindex $currLine 1] 1
19*dbd550edSchristos	viMapKey $viScreenId  nextErr
20*dbd550edSchristos}
21*dbd550edSchristos
22*dbd550edSchristosproc nextErr {} {
23*dbd550edSchristos	global errScreen
24*dbd550edSchristos	global fileScreen
25*dbd550edSchristos	global currFile
26*dbd550edSchristos	set errLine [lindex [viGetCursor $errScreen] 0]
27*dbd550edSchristos	set currLine [split [viGetLine $errScreen $errLine] :]
28*dbd550edSchristos	if {[string match $currFile [lindex $currLine 0]]} {
29*dbd550edSchristos		viSetCursor $fileScreen [lindex $currLine 1] 0
30*dbd550edSchristos		viSwitchScreen $fileScreen
31*dbd550edSchristos	} else {
32*dbd550edSchristos		viEndScreen $fileScreen
33*dbd550edSchristos		set currFile [lindex $currLine 0]
34*dbd550edSchristos		set fileScreen[viNewScreen $errScreen $currFile]
35*dbd550edSchristos		viSetCursor $fileScreen [lindex $currLine 1] 0
36*dbd550edSchristos	}
37*dbd550edSchristos}
38*dbd550edSchristos
39*dbd550edSchristosproc initErr {} {
40*dbd550edSchristos	global viScreenId
41*dbd550edSchristos	global errScreen
42*dbd550edSchristos	set errScreen [viNewScreen $viScreenId make.out]
43*dbd550edSchristos	viMapKey $viScreenId  findErr
44*dbd550edSchristos}
45