Date: Sun, 17 Aug 2008 14:47:51 +0200 From: Marko Zec <zec@freebsd.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: Re: PERFORCE change 147645 for review Message-ID: <200808171447.51397.zec@freebsd.org> In-Reply-To: <200808171344.m7HDiR0Z024586@repoman.freebsd.org> References: <200808171344.m7HDiR0Z024586@repoman.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sunday 17 August 2008 15:44:27 Marko Zec wrote: > http://perforce.freebsd.org/chv.cgi?CH=147645 > > Change 147645 by zec@zec_tpx32 on 2008/08/17 13:44:00 > > A placeholder for writing down things to resolve before > proceeding on further commit steps. Oops, another change also leaked in here, aimed at allowing the variable renaming TCL script to be used in a hint-only mode -> the description how this is supposed to work is embedded in the var_rename.tcl file Marko > Affected files ... > > .. //depot/projects/vimage-commit2/TODO#1 add > .. //depot/projects/vimage/var_rename.tcl#2 edit > > Differences ... > > ==== //depot/projects/vimage/var_rename.tcl#2 (text+ko) ==== > > @@ -37,6 +37,10 @@ > # containing macros which resolve V_ instances back to their > original # counterparts (e.g. V_rt_tables -> rt_tables). > # > +# Alternatively, the script may be invoked in a hint-only mode, so > that +# instead of actually modifying files it prints out lines where > candidates +# for the V_-transformation might be found. > +# > # Best effort is made not to change any variable declarations nor > field # names in structure declarations and / or C-style comments. > The script # attempts to avoid changing structure names if they > happen to have the @@ -44,7 +48,7 @@ > # > # Typically this script should be invoked as follows: > # > -# cat vimage_globals | xargs var_rename.tcl sys > +# cat vimage_globals | xargs var_rename.tcl change sys > # > # Note that running the script over the entire sys tree can take a > # significant amount of time to complete (longer than make > buildworld). @@ -52,18 +56,25 @@ > > set vimage_h "vimage.h" > > -if { [llength $argv] < 2 } { > - puts "usage: var_rename.tcl srcdir varname ..." > +if { [llength $argv] < 3 || ([lindex $argv 0] != "hint" && > + [lindex $argv 1] != "change")} { > + puts "usage: var_rename.tcl hint|change srcdir varname ..." > exit 1 > } > > -set srcdir [lindex $argv 0] > +if { [lindex $argv 0] == "change" } { > + set change_mode 1 > +} else { > + set change_mode 0 > +} > + > +set srcdir [lindex $argv 1] > if { [catch { exec find $srcdir -type f } filelist] != 0 } { > puts "Error: $filelist" > exit 1 > } > > -set items [lrange $argv 1 end] > +set items [lrange $argv 2 end] > set xitems "/* */ LIST_HEAD( TAILQ_HEAD( SYSCTL_ ) [lsort > -decreasing [lrange $argv 1 end]]" > > # read the contents of the $vimage_h file > @@ -73,13 +84,15 @@ > close $f > > # reopen for writing and append missing #defines > +if { $change_mode } { > set f [open $vimage_h a] > -foreach item $items { > - if { [string first "#define V_$item $item" $data] == -1 } { > - puts $f "#define V_$item $item" > + foreach item $items { > + if { [string first "#define V_$item $item" $data] == -1 } { > + puts $f "#define V_$item $item" > + } > } > + close $f > } > -close $f > > # walk the file list parsing each file and update it if necessary > foreach fname $filelist { > @@ -104,13 +117,15 @@ > puts "Processing $fname" > } > > - set f [open $fname w] > - set first_line true > + if { $change_mode } { > + set f [open $fname w] > + } > + > set changed false > - > set in_comment false > set in_struct false > set in_forbidden_macro false > + set line_number 0 > > foreach line [split $data \n] { > set pos 0 > @@ -239,14 +254,23 @@ > } > } > > - if { $first_line == true } { > - set first_line false > + if { $change_mode } { > + if { $line_number > 0 } { > + puts $f "" > + } > + puts -nonewline $f "$line" > } else { > - puts $f "" > + # hint only mode > + if { $changed == true } { > + puts "$line_number:$line" > + set changed false > + } > } > - puts -nonewline $f "$line" > + incr line_number > + } > + if { $change_mode } { > + close $f > } > - close $f > > # insert a #include <sys/vimage.h> line if the file was > modified. if { $changed == true && $fextn == ".c" } {
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200808171447.51397.zec>