Check-in [be891232a2]
Not logged in
Overview

SHA1 Hash:be891232a20c3ba2c6d2ae50ffc620323ce286dd
Date: 2007-10-12 05:57:53
User: aku
Comment:Extended rcs parser to tag errors which are syntax errors in the RCS archive. Extended pass handling to capture trouble and distinguish between internal problems and syntax errors.
Timelines: ancestors | descendants | both | trunk
Other Links: files | ZIP archive | manifest

Tags And Properties
Changes
[hide diffs]

Modified tools/cvs2fossil/lib/c2f_pcollrev.tcl from [daf2ded7dd] to [c79989ff1b].

@@ -190,11 +190,21 @@
 	    log write 1 collrev "Processing $base"
 
 	    foreach file [$project files] {
 		set path [$file path]
 		log write 2 collrev "Parsing $path"
-		parser process [file join $base $path] $file
+		if {[catch {
+		    parser process [file join $base $path] $file
+		} msg]} {
+		    global errorCode
+		    if {$errorCode eq "vc::rcs::parser"} {
+			trouble fatal "$path is not a valid RCS archive ($msg)"
+		    } else {
+			global errorInfo
+			trouble internal $errorInfo
+		    }
+		}
 	    }
 	}
 
 	repository printrevstatistics
 	repository persistrev

Modified tools/cvs2fossil/lib/rcsparser.tcl from [4078955940] to [de1194a8ed].

@@ -366,11 +366,12 @@
 
     proc Expected {x} {
 	::variable mydata
 	::variable mypos
 	set e $mypos ; incr e 30
-	return -code error "Expected $x @ '[string range $mydata $mypos $e]...'"
+	return -code error -errorcode vc::rcs::parser \
+	    "Expected $x @ '[string range $mydata $mypos $e]...'"
     }
 
     # # ## ### ##### ######## #############
     ## Setup, callbacks.