Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Rename the test suite procedure 'repo_init' to 'test_setup'. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | testerCleanup |
Files: | files | file ages | folders |
SHA1: |
413921cca04863b37c42d54d8fa28df5 |
User & Date: | mistachkin 2016-03-02 20:43:32.987 |
Original User & Date: | drh 2016-03-02 20:43:32.987 |
Context
2016-03-03
| ||
02:53 | Fix a broken test case stash-3-4-mv by renaming it to stash-3-2-mv and fixing the issue with comparing to the fully qulified file name in the result. Marked stash-4-2-diff-CODE and stash-4-3-diff-CODE as known bugs. Now stash.test reports only known bugs, which I believe mostly relate to handling of renamed files in a stash. ... (check-in: 186e6a71 user: rberteig tags: testerCleanup) | |
2016-03-02
| ||
20:43 | Rename the test suite procedure 'repo_init' to 'test_setup'. ... (check-in: 413921cc user: mistachkin tags: testerCleanup) | |
08:38 |
Allow override, via the environment, to make 'require_no_open_checkout' into a NOP. All files were cleaned up. No extra files in checkout.
NOTE: All failing tests also fail on trunk, with the exception of 'json-1'. Considered failures: amend-comment-5.1 amend-comment-5.2 amend-comment-5.3 amend-comment-5.4 json-1 stash-3-4-mv stash-4-2-diff-CODE stash-4-3-diff-CODE Ignored failures: json-cap-POSTenv-name json-ROrepo-2-2 json-ROrepo-2-3 merge_multi-4 merge_renames-5 stash-WY-1-CODE stash-2-1-CODE stash-3-2 stash-3-2-show-1 stash-3-2-pop-changes ... (check-in: d1438b40 user: mistachkin tags: testerCleanup) | |
Changes
Changes to test/amend.test.
︙ | ︙ | |||
45 46 47 48 49 50 51 | global RESULT upvar $var UUID fossil status regexp {checkout:\s+([0-9a-f]{40})} $RESULT m UUID } # Make sure we are not in an open repository and initialize new repository | | | 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | global RESULT upvar $var UUID fossil status regexp {checkout:\s+([0-9a-f]{40})} $RESULT m UUID } # Make sure we are not in an open repository and initialize new repository test_setup ######################################## # Setup: Add file and commit # ######################################## if {![uuid_from_checkout UUIDINIT]} { test amend-checkout-failure false |
︙ | ︙ |
Changes to test/clean.test.
︙ | ︙ | |||
14 15 16 17 18 19 20 | # http://www.hwaci.com/drh/ # ############################################################################ # # Tests of the "clean" command, including the ability to undo it. # | | | 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | # http://www.hwaci.com/drh/ # ############################################################################ # # Tests of the "clean" command, including the ability to undo it. # test_setup ############################################################################### fossil extra test clean-0 {[normalize_result] eq {}} ############################################################################### |
︙ | ︙ |
Changes to test/cmdline.test.
︙ | ︙ | |||
14 15 16 17 18 19 20 | # http://www.hwaci.com/drh/ # ############################################################################ # # Test command line parsing # | | | 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | # http://www.hwaci.com/drh/ # ############################################################################ # # Test command line parsing # test_setup "" proc cmd-line {testname args} { set i 1 foreach {cmdline result} $args { fossil test-echo $cmdline test cmd-line-$testname.$i {[lrange [split $::RESULT \n] 3 end]=="\{argv\[2\] = \[$result\]\}"} incr i |
︙ | ︙ |
Changes to test/comment.test.
︙ | ︙ | |||
14 15 16 17 18 19 20 | # http://www.hwaci.com/drh/ # ############################################################################ # # Test comment formatting and printing. # | | | 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | # http://www.hwaci.com/drh/ # ############################################################################ # # Test comment formatting and printing. # test_setup "" ############################################################################### fossil test-comment-format "" "" test comment-1 {$RESULT eq "\n(1 lines output)"} ############################################################################### |
︙ | ︙ |
Changes to test/contains-selector.test.
︙ | ︙ | |||
14 15 16 17 18 19 20 | # http://www.hwaci.com/drh/ # ############################################################################ # # Test containsSelector() function in src/style.c # | | | 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | # http://www.hwaci.com/drh/ # ############################################################################ # # Test containsSelector() function in src/style.c # test_setup "" proc contains-selector {testId css selectorResultMap} { set css [string trim $css] set filename [file join $::tempPath compare-selector.css] set fh [open $filename w] puts -nonewline $fh $css close $fh |
︙ | ︙ |
Changes to test/delta1.test.
︙ | ︙ | |||
14 15 16 17 18 19 20 | # http://www.hwaci.com/drh/ # ############################################################################ # # Tests of the delta mechanism. # | | | 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | # http://www.hwaci.com/drh/ # ############################################################################ # # Tests of the delta mechanism. # test_setup "" # Use test script files as the basis for this test. # # For each test, copy the file intact to "./t1". Make # some random changes in "./t2". Then call test-delta on the # two files to make sure that deltas between these two files # work properly. |
︙ | ︙ |
Changes to test/file1.test.
︙ | ︙ | |||
14 15 16 17 18 19 20 | # http://www.hwaci.com/drh/ # ############################################################################ # # File utilities # | | | 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | # http://www.hwaci.com/drh/ # ############################################################################ # # File utilities # test_setup proc simplify-name {testname args} { set i 1 foreach {path result} $args { fossil test-simplify-name $path test simplify-name-$testname.$i {$::RESULT=="\[$path\] -> \[$result\]"} incr i |
︙ | ︙ |
Changes to test/glob.test.
︙ | ︙ | |||
14 15 16 17 18 19 20 | # http://www.hwaci.com/drh/ # ############################################################################ # # Test glob pattern parsing # | | | 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | # http://www.hwaci.com/drh/ # ############################################################################ # # Test glob pattern parsing # test_setup "" proc glob-parse {testname args} { set i 1 foreach {pattern string result} $args { fossil test-glob $pattern $string test glob-parse-$testname.$i {$::RESULT eq $result} incr i |
︙ | ︙ |
Changes to test/json.test.
︙ | ︙ | |||
161 162 163 164 165 166 167 | proc test_json_payload {testname okfields badfields} { test_dict_keys $testname [dict get $::JR payload] $okfields $badfields } #### VERSION AKA HAI # The JSON API generally assumes we have a respository, so let it have one. | | | 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 | proc test_json_payload {testname okfields badfields} { test_dict_keys $testname [dict get $::JR payload] $okfields $badfields } #### VERSION AKA HAI # The JSON API generally assumes we have a respository, so let it have one. test_setup # Check for basic envelope fields in the result with an error fossil_json -expectError test_json_envelope json-enverr [concat resultCode fossil timestamp \ resultText command procTimeUs procTimeMs] {} test json-enverr-rc-1 {[dict get $JR resultCode] eq "FOSSIL-3002"} |
︙ | ︙ | |||
664 665 666 667 668 669 670 | # HTML output. To reproduce: chmod 444 REPO, then submit a request # which writes something (timeline creates a temp table). The "repo # is not writable" error comes back as HTML. i don't know if the # error happens before we have made the determination that the app is # in JSON mode or if the error handling is incorrectly not # recognizing JSON mode. # | | | 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 | # HTML output. To reproduce: chmod 444 REPO, then submit a request # which writes something (timeline creates a temp table). The "repo # is not writable" error comes back as HTML. i don't know if the # error happens before we have made the determination that the app is # in JSON mode or if the error handling is incorrectly not # recognizing JSON mode. # #test_setup x.fossil #catch {exec chmod 444 .rep.fossil}; # Unix. What about Win? fossil_http_json /json/timeline/checkin $U1Cookie test json-ROrepo-1-1 {$CODE == 0} test json-ROrepo-1-2 {[regexp {\}\s*$} $RESULT]} test json-ROrepo-1-3 {![regexp {SQLITE_[A-Z]+:} $RESULT]} test_json_envelope_ok json-http-timeline1 protOut "chmod 444 repo" |
︙ | ︙ |
Changes to test/merge1.test.
︙ | ︙ | |||
14 15 16 17 18 19 20 | # http://www.hwaci.com/drh/ # ############################################################################ # # Tests of the 3-way merge # | | | 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | # http://www.hwaci.com/drh/ # ############################################################################ # # Tests of the 3-way merge # test_setup "" write_file_indented t1 { 111 - This is line one of the demo program - 1111 222 - The second line program line in code - 2222 333 - This is a test of the merging algohm - 3333 444 - If all goes well, we will be pleased - 4444 555 - we think it well and other stuff too - 5555 |
︙ | ︙ |
Changes to test/merge2.test.
︙ | ︙ | |||
14 15 16 17 18 19 20 | # http://www.hwaci.com/drh/ # ############################################################################ # # Tests of the delta mechanism. # | | | 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | # http://www.hwaci.com/drh/ # ############################################################################ # # Tests of the delta mechanism. # test_setup "" set filelist [glob $testdir/*] foreach f $filelist { if {[file isdir $f]} continue set base [file root [file tail $f]] if {[string match "utf16*" $base]} continue set f1 [read_file $f] |
︙ | ︙ |
Changes to test/merge3.test.
︙ | ︙ | |||
14 15 16 17 18 19 20 | # http://www.hwaci.com/drh/ # ############################################################################ # # Tests of the 3-way merge # | | | 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | # http://www.hwaci.com/drh/ # ############################################################################ # # Tests of the 3-way merge # test_setup "" proc merge-test {testid basis v1 v2 result} { write_file t1 [join [string trim $basis] \n]\n write_file t2 [join [string trim $v1] \n]\n write_file t3 [join [string trim $v2] \n]\n fossil 3-way-merge t1 t2 t3 t4 set x [read_file t4] |
︙ | ︙ |
Changes to test/merge4.test.
︙ | ︙ | |||
14 15 16 17 18 19 20 | # http://www.hwaci.com/drh/ # ############################################################################ # # Tests of the 3-way merge # | | | 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | # http://www.hwaci.com/drh/ # ############################################################################ # # Tests of the 3-way merge # test_setup "" proc merge-test {testid basis v1 v2 result1 result2} { write_file t1 [join [string trim $basis] \n]\n write_file t2 [join [string trim $v1] \n]\n write_file t3 [join [string trim $v2] \n]\n fossil 3-way-merge t1 t2 t3 t4 fossil 3-way-merge t1 t3 t2 t5 |
︙ | ︙ |
Changes to test/merge5.test.
︙ | ︙ | |||
34 35 36 37 38 39 40 | protOut " Got:\n $result" test merge5-$testid 0 } else { test merge5-$testid 1 } } | | | 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | protOut " Got:\n $result" test merge5-$testid 0 } else { test merge5-$testid 1 } } require_no_open_checkout; test_setup "" # Construct a test repository # exec $::fossilexe sqlite3 --no-repository m5.fossil <$testdir/${testfile}_repo.sql fossil rebuild m5.fossil fossil open m5.fossil fossil user default drh --user drh |
︙ | ︙ |
Changes to test/merge6.test.
︙ | ︙ | |||
18 19 20 21 22 23 24 | # Tests of the "merge" command # #################################################################### # TEST 1: Handle multiple merges each with one or more ADDED files # #################################################################### | | | 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | # Tests of the "merge" command # #################################################################### # TEST 1: Handle multiple merges each with one or more ADDED files # #################################################################### test_setup fossil ls test merge_multi-0 {[normalize_result] eq {}} write_file f1 "f1 line" fossil add f1 fossil commit -m "base file" |
︙ | ︙ |
Changes to test/merge_renames.test.
1 2 3 4 5 6 7 8 9 10 11 12 | # # Tests for merging with renames # # require_no_open_checkout ###################################### # Test 1 # # Reported: Ticket [554f44ee74e3d] # ###################################### | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | # # Tests for merging with renames # # require_no_open_checkout ###################################### # Test 1 # # Reported: Ticket [554f44ee74e3d] # ###################################### test_setup write_file f1 "line" fossil add f1 fossil commit -m "c1" fossil tag add pivot current write_file f1 "line2" |
︙ | ︙ | |||
64 65 66 67 68 69 70 | } ###################################### # Test 2 # # Reported: Ticket [74413366fe5067] # ###################################### | | | 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 | } ###################################### # Test 2 # # Reported: Ticket [74413366fe5067] # ###################################### test_setup write_file f1 "line" fossil add f1 fossil commit -m "base file" fossil tag add pivot current write_file f2 "line2" |
︙ | ︙ | |||
112 113 114 115 116 117 118 | } ###################################### # Test 3 # # Reported: Ticket [30b28cf351] # ###################################### | | | 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 | } ###################################### # Test 3 # # Reported: Ticket [30b28cf351] # ###################################### test_setup write_file f1 "line" fossil add f1 fossil commit -m "base file" fossil tag add pivot current write_file f2 "line2" |
︙ | ︙ | |||
167 168 169 170 171 172 173 | # TO BE WRITTEN. ###################################### # Test 5 # # Handle Rename/Add via Merge # ###################################### | | | 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 | # TO BE WRITTEN. ###################################### # Test 5 # # Handle Rename/Add via Merge # ###################################### test_setup write_file f1 "old f1 line" fossil add f1 fossil commit -m "base file" write_file f3 "f3 line" fossil add f3 |
︙ | ︙ |
Changes to test/mv-rm.test.
︙ | ︙ | |||
20 21 22 23 24 25 26 | require_no_open_checkout ######################################## # Setup: Add Files and Commit # ######################################## | | | 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | require_no_open_checkout ######################################## # Setup: Add Files and Commit # ######################################## test_setup; set rootDir [file normalize [pwd]] set undoMsg "\n \"fossil undo\" is\ available to undo changes to the\ working checkout." write_file f1 "f1" write_file f2 "f2" |
︙ | ︙ |
Changes to test/revert.test.
︙ | ︙ | |||
53 54 55 56 57 58 59 | test revert-$testid$key $passed } fossil undo } require_no_open_checkout | | | 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | test revert-$testid$key $passed } fossil undo } require_no_open_checkout test_setup # Prepare first commit # write_file f1 "f1" write_file f2 "f2" write_file f3 "f3" fossil add f1 f2 f3 |
︙ | ︙ | |||
155 156 157 158 159 160 161 | ADDED f0 } -exists {f0 f2 f3} -notexists {f1 f3n} # Test reverting the combination of a renamed file and an added file that # uses the renamed file's original filename. # | | | | 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 | ADDED f0 } -exists {f0 f2 f3} -notexists {f1 f3n} # Test reverting the combination of a renamed file and an added file that # uses the renamed file's original filename. # test_setup write_file f1 "f1" fossil add f1 fossil commit -m "add f1" write_file f1n "f1n" fossil mv f1 f1n write_file f1 "f1b" fossil add f1 revert-test 2-1 {} { REVERT f1 DELETE f1n } -exists {f1} -notexists {f1n} # Test reverting a rename in the repo but not completed in the file # system test_setup write_file f1 "f1" fossil add f1 fossil commit -m "add f1" fossil mv --soft f1 f1new test 3-mv-1 {[file exists f1]} test 3-mv-2 {![file exists f1new]} revert-test 3-1 {} { |
︙ | ︙ |
Changes to test/stash.test.
︙ | ︙ | |||
89 90 91 92 93 94 95 | proc stash-test {testid stashArgs expectedStashOutput args} { fossil stash {*}$stashArgs return [test_result_state stash-$testid "stash $stashArgs" $expectedStashOutput {*}$args] } require_no_open_checkout | | | 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 | proc stash-test {testid stashArgs expectedStashOutput args} { fossil stash {*}$stashArgs return [test_result_state stash-$testid "stash $stashArgs" $expectedStashOutput {*}$args] } require_no_open_checkout test_setup # Prepare first commit # write_file f1 "f1" write_file f2 "f2" write_file f3 "f3" fossil add f1 f2 f3 |
︙ | ︙ | |||
224 225 226 227 228 229 230 | # Test stashing the combination of a renamed file and an added file that # uses the renamed file's original filename. I expect to see the same # behavior as fossil revert: calmly back out both the rename and the # add, and presumably stash the content of the added file before it # is replaced by the revert. # | | | 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 | # Test stashing the combination of a renamed file and an added file that # uses the renamed file's original filename. I expect to see the same # behavior as fossil revert: calmly back out both the rename and the # add, and presumably stash the content of the added file before it # is replaced by the revert. # test_setup write_file f1 "f1" fossil add f1 fossil commit -m "add f1" write_file f1n "f1n" fossil mv f1 f1n write_file f1 "f1b" |
︙ | ︙ | |||
247 248 249 250 251 252 253 | # error is fixed, there is nothing stashed to test. # Test stashing a newly added (but never committed) file. As with # fossil revert, fossil stash save unmanages the new file, but # leaves the copy present on disk. This is undocumented, but # probably sensible. | | | 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 | # error is fixed, there is nothing stashed to test. # Test stashing a newly added (but never committed) file. As with # fossil revert, fossil stash save unmanages the new file, but # leaves the copy present on disk. This is undocumented, but # probably sensible. test_setup write_file f1 "f1" write_file f2 "f2" fossil add f1 f2 fossil commit -m "baseline" write_file f3 "f3" fossil add f3 |
︙ | ︙ | |||
281 282 283 284 285 286 287 | } -exists {f1 f2 f3} -notexists {} fossil status # Test stashing a rename of one file with at least one file # unchanged. This should stash (and revert) just the rename # operation. Instead it also stores and touches the unchanged file. | | | 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 | } -exists {f1 f2 f3} -notexists {} fossil status # Test stashing a rename of one file with at least one file # unchanged. This should stash (and revert) just the rename # operation. Instead it also stores and touches the unchanged file. test_setup write_file f1 "f1" write_file f2 "f2" fossil add f1 f2 fossil commit -m "baseline" fossil mv --hard f2 f2n test_result_state stash-3-4-mv "mv --hard f2 f2n" { |
︙ | ︙ | |||
318 319 320 321 322 323 324 | } -exists {f1 f2n} -notexists {f2} -knownbugs {-changes} ######## # fossil stash snapshot ?-m|--comment COMMENT? ?FILES...? | | | 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 | } -exists {f1 f2n} -notexists {f2} -knownbugs {-changes} ######## # fossil stash snapshot ?-m|--comment COMMENT? ?FILES...? test_setup write_file f1 "f1" write_file f2 "f2" write_file f3 "f3" fossil add f1 f2 f3 fossil commit -m "c1" --tag c1 # Make simple changes and snapshot them |
︙ | ︙ |
Changes to test/tester.tcl.
︙ | ︙ | |||
283 284 285 286 287 288 289 | if {[is_home_elsewhere]} {return} set ::env(FOSSIL_HOME) $::tempHomePath } # # Create and open a new Fossil repository and clean the checkout # | | | 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 | if {[is_home_elsewhere]} {return} set ::env(FOSSIL_HOME) $::tempHomePath } # # Create and open a new Fossil repository and clean the checkout # proc test_setup {{filename ".rep.fossil"}} { set_home_to_elsewhere if {![info exists ::tempRepoPath]} { set ::tempRepoPath [file join $::tempPath repo_[pid]] } set repoSeed [appendArgs [string trim [clock seconds] -] _ [getSeqNo]] lappend ::tempRepoSeeds $repoSeed set repoPath [file join \ |
︙ | ︙ |
Changes to test/th1-docs.test.
︙ | ︙ | |||
14 15 16 17 18 19 20 | # http://www.hwaci.com/drh/ # ############################################################################ # # TH1 Docs # | | | 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | # http://www.hwaci.com/drh/ # ############################################################################ # # TH1 Docs # test_setup "" fossil test-th-eval "hasfeature th1Docs" if {$::RESULT ne "1"} { puts "Fossil was not compiled with TH1 docs support."; return } |
︙ | ︙ |
Changes to test/th1-hooks.test.
︙ | ︙ | |||
22 23 24 25 26 27 28 | if {$::RESULT ne "1"} { puts "Fossil was not compiled with TH1 hooks support."; return } ############################################################################### | | | 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | if {$::RESULT ne "1"} { puts "Fossil was not compiled with TH1 hooks support."; return } ############################################################################### test_setup write_file f1 "f1"; fossil add f1; fossil commit -m "c1" ############################################################################### set env(TH1_ENABLE_HOOKS) 1; # TH1 hooks must be enabled for this test. ############################################################################### |
︙ | ︙ |
Changes to test/th1-repo.test.
︙ | ︙ | |||
23 24 25 26 27 28 29 | require_no_open_checkout ######################################## # Setup: Add Files and Commit # ######################################## | | | 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | require_no_open_checkout ######################################## # Setup: Add Files and Commit # ######################################## test_setup; set rootDir [file normalize [pwd]] write_file f1.md "f1" write_file f2.md "f2" write_file f3.txt "f3" write_file f4.md "f4" file mkdir [file join $rootDir subdirA] |
︙ | ︙ |
Changes to test/th1-tcl.test.
︙ | ︙ | |||
18 19 20 21 22 23 24 | # TH1/Tcl integration # set dir [file dirname [info script]] ############################################################################### | | | 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | # TH1/Tcl integration # set dir [file dirname [info script]] ############################################################################### test_setup ############################################################################### fossil test-th-eval "hasfeature tcl" if {$::RESULT ne "1"} { puts "Fossil was not compiled with Tcl support."; return |
︙ | ︙ |
Changes to test/th1.test.
︙ | ︙ | |||
14 15 16 17 18 19 20 | # http://www.hwaci.com/drh/ # ############################################################################ # # TH1 Commands # | | | 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | # http://www.hwaci.com/drh/ # ############################################################################ # # TH1 Commands # set dir [file dirname [info script]]; test_setup ############################################################################### set th1Tcl [is_tcl_usable_by_fossil] set th1Hooks [are_th1_hooks_usable_by_fossil] ############################################################################### |
︙ | ︙ |
Changes to test/utf.test.
︙ | ︙ | |||
14 15 16 17 18 19 20 | # http://www.hwaci.com/drh/ # ############################################################################ # # Test UTF-8/UTF-16 detection # | | | 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | # http://www.hwaci.com/drh/ # ############################################################################ # # Test UTF-8/UTF-16 detection # test_setup "" proc swap_byte_order {str} { set result "" for {set i 0} {$i < [string length $str]} {incr i} { set c [scan [string index $str $i] %c] set c [expr {(($c << 8) & 0xFF00) | (($c >> 8) & 0xFF)}] append result [format %c $c] |
︙ | ︙ |