Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Sort plugin can sort words inline |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
36b17b0bc0f2fe10b7f0c9b92d856dc6 |
User & Date: | peter 2021-05-17 11:52:00.519 |
Context
2021-08-25
| ||
12:56 | Corrected path name check-in: 63c0c5533a user: peter tags: trunk | |
2021-05-17
| ||
11:52 | Sort plugin can sort words inline check-in: 36b17b0bc0 user: peter tags: trunk | |
2021-04-09
| ||
16:32 | Select frame/top in balloonhelp check-in: 6d239b452a user: peter tags: trunk | |
Changes
Changes to plugins/sort.tcl.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | ##Eskil Plugin : Compare files after sorting lines # # This plugin compares files after sorting the lines in each side # Example file for a plugin. # A plugin's first line must start exactly like this one. # The text after : is the summary you can get at the command line # A plugin must define this procedure to do the job. # side: left or right # chi: An input channel for reading the original file. # cho: An output channel for writing the processed file. proc PreProcess {side chi cho} { set data [read $chi] set endingNewLine 0 if {[string index $data end] eq "\n"} { set data [string range $data 0 end-1] set endingNewLine 1 } set lines [split $data \n] # Allow sort parameters in info set lines [lsort -dictionary {*}$::Info $lines] puts -nonewline $cho [join $lines \n] if {$endingNewLine} { puts $cho "" } # Signal that the file after processing should be used both | > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | ##Eskil Plugin : Compare files after sorting lines ## Flag -sortwords : Sort words within each line first. # # This plugin compares files after sorting the lines in each side # Example file for a plugin. # A plugin's first line must start exactly like this one. # The text after : is the summary you can get at the command line # A plugin may declare command line options that should be allowed through # to ::argv # A plugin must define this procedure to do the job. # side: left or right # chi: An input channel for reading the original file. # cho: An output channel for writing the processed file. proc PreProcess {side chi cho} { # Look for parameters in command line set opts(-sortwords) 0 set i [lsearch -exact $::argv "-sortwords"] if {$i >= 0} { set opts(-sortwords) 1 } set data [read $chi] set endingNewLine 0 if {[string index $data end] eq "\n"} { set data [string range $data 0 end-1] set endingNewLine 1 } set lines [split $data \n] if {$opts(-sortwords)} { set newlines {} foreach line $lines { # Extract words set words [regexp -all -inline {\w+} $line] set words [lsort -dictionary $words] lappend newlines [join $words] } set lines $newlines } # Allow sort parameters in info set lines [lsort -dictionary {*}$::Info $lines] puts -nonewline $cho [join $lines \n] if {$endingNewLine} { puts $cho "" } # Signal that the file after processing should be used both |
︙ | ︙ |