| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | set help {Usage: tclsh mkcombo.tcl [OPTIONS] [FILELIST] |
| | where OPTIONS is zero or more of the following with these effects: |
| | --linemacros=? => Emit #line directives into output or not. (? = 1 or 0) |
| | --o FILE => write to alternative output file named FILE |
| | --help => See this. |
| | } |
| |
|
| | set linemacros 0 |
| | set fname {} |
| | set src [list] |
| |
|
| |
|
| | for {set i 0} {$i<[llength $argv]} {incr i} { |
| | set x [lindex $argv $i] |
| | if {[regexp {^-?-linemacros(?:=([01]))?$} $x ma ulm]} { |
| | if {$ulm == ""} {set ulm 1} |
| | set linemacros $ulm |
| | } elseif {[regexp {^-o$} $x]} { |
| | incr i |
| | if {$i==[llength $argv]} { |
| | error "No argument following $x" |
| | } |
| | set fname [lindex $argv $i] |
| | } elseif {[regexp {^-?-((help)|\?)$} $x]} { |
| | puts $help |
| | exit 0 |
| | } elseif {[regexp {^-?-} $x]} { |
| | error "unknown command-line option: $x" |
| | } else { |
| | lappend src $x |
| | } |
| | } |
| |
|
| | |
| | |
| | |
| | if {![info exists fname]} { |
| | set fname sqlite3.c |
| | if {$enable_recover} { set fname sqlite3r.c } |
| | } |
| | set out [open $fname wb] |
| |
|
| | |
| | |
| | proc star N { |
| | set r {} |
| | for {set i 0} {$i<$N} {incr i} {append r *} |
| | return $r |
| | } |
| |
|
| | |
| | fconfigure $out -translation binary |
| | puts $out "/[star 78]" |
| | puts $out {** The following is an amalgamation of these source code files:} |
| | puts $out {**} |
| | foreach s $src { |
| | regsub {^.*/(src|ext)/} $s {\1/} s2 |
| | puts $out "** $s2" |
| | } |
| | puts $out {**} |
| | puts $out "[star 78]/" |
| |
|
| | |
| | |
| | proc section_comment {text} { |
| | global out s78 |
| | set n [string length $text] |
| | set nstar [expr {60 - $n}] |
| | puts $out "/************** $text [star $nstar]/" |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | proc copy_file_verbatim {filename} { |
| | global out |
| | set in [open $filename rb] |
| | set tail [file tail $filename] |
| | section_comment "Begin file $tail" |
| | while {![eof $in]} { |
| | set line [string trimright [gets $in]] |
| | puts $out $line |
| | } |
| | section_comment "End of $tail" |
| | } |
| | set taillist "" |
| | foreach file $src { |
| | copy_file_verbatim $file |
| | append taillist ", [file tail $file]" |
| | } |
| |
|
| | set taillist "End of the amalgamation of [string range $taillist 2 end]" |
| | set n [string length $taillist] |
| | set ns [expr {(75-$n)/2}] |
| | if {$ns<3} {set ns 3} |
| | puts $out "/[star $ns] $taillist [star $ns]/" |
| | close $out |
| |
|