diff --git a/CONTROL/control b/CONTROL/control index 334713b9..b87eb367 100644 --- a/CONTROL/control +++ b/CONTROL/control @@ -1,10 +1,10 @@ Package: webif Priority: optional Section: web -Version: 1.5.0-1 +Version: 1.5.0-6 Architecture: mipsel Maintainer: af123@hpkg.tv -Depends: tcpfix,webif-channelicons(>=1.1.27),lighttpd(>=1.4.39-1),jim(>=0.81),jim-pack(>=0.81),jim-oo(>=0.81),jim-sqlite3(>=0.81),jim-cgi(>=0.7-2),jim-binary(>=0.78),service-control(>=2.3),busybox(>=1.20.2-1),lsof(>=4.87),epg(>=1.2.8),hmt(>=2.0.11),ssmtp,cron-daemon(>=1.18.3-3),at(>=3.1.18),anacron,trm(>=1.1),openssl-command,nicesplice,id3v2,file,rsvsync(>=1.1.13),webif-charts(>=1.2-1),stripts(>=1.4.2),tmenu(>=1.21-2),ffmpeg(>=2.8),id3v2,multienv(>=1.6),tcpping(>=1.1),e2fsprogs,wireless-tools(>=29-1),dbupdate,recmon(>=2.0.7),hwctl,nugget(>=0.98),sqlite3(>=3.15.1),jim-xconv,zip(>=3.0-1),wget +Depends: tcpfix,webif-channelicons(>=1.1.27),lighttpd(>=1.4.39-1),jim(>=0.81-3),jim-cgi(>=0.7-2),service-control(>=2.3),busybox(>=1.20.2-1),lsof(>=4.87),epg(>=1.2.8),hmt(>=2.0.11),ssmtp,cron-daemon(>=1.18.3-3),at(>=3.1.18),anacron,trm(>=1.1),openssl-command,nicesplice,id3v2,file,rsvsync(>=1.1.13),webif-charts(>=1.2-1),stripts(>=1.4.2),tmenu(>=1.21-2),ffmpeg(>=2.8),id3v2,multienv(>=1.6),tcpping(>=1.1),e2fsprogs,wireless-tools(>=29-1),dbupdate,recmon(>=2.0.7),hwctl,nugget(>=0.98),sqlite3(>=3.15.1),jim-xconv,zip(>=3.0-1),wget Suggests: Description: An evolving web interface for the Humax. Tags: https://hummy.tv/forum/threads/10581/ diff --git a/webif/cgi-bin/status.jim b/webif/cgi-bin/status.jim index f1e92eb9..dd042556 100755 --- a/webif/cgi-bin/status.jim +++ b/webif/cgi-bin/status.jim @@ -120,8 +120,8 @@ proc get_data {} { # and recently written) if {[dict exists $ret $file] && $ext eq ".ts"} { - set age [expr [clock seconds] \ - - [file mtime $file]] + set age [expr {[clock seconds] \ + - [file mtime $file]}] if {$age < 60} { set access [lindex \ [dict get $ret $file] 1] diff --git a/webif/html/browse/audio/execute.jim b/webif/html/browse/audio/execute.jim index d2197008..2732dd2f 100755 --- a/webif/html/browse/audio/execute.jim +++ b/webif/html/browse/audio/execute.jim @@ -24,6 +24,6 @@ set token [system startop -multiple mp3 $rfile] puts [$ts mkmp3 $slow] system endop $token -set xtime [expr [expr [clock milliseconds] - $xstart] / 1000.0] +set xtime [expr {[expr {[clock milliseconds] - $xstart}] / 1000.0}] puts "Time taken: $xtime" diff --git a/webif/html/browse/audio/progress.jim b/webif/html/browse/audio/progress.jim index 29a7de16..6587a782 100755 --- a/webif/html/browse/audio/progress.jim +++ b/webif/html/browse/audio/progress.jim @@ -14,9 +14,9 @@ if {![file exists "${bfile}.mp3"]} { puts "0" } else { set sz [file size $rfile] - set nsz [expr [file size "${bfile}.mp3"] / 0.3] + set nsz [expr {[file size "${bfile}.mp3"] / 0.3}] - set perc [expr $nsz * 100 / $sz] + set perc [expr {$nsz * 100 / $sz}] if {$perc > 100} { set perc 100 } puts $perc } diff --git a/webif/html/browse/crop/crop.jim b/webif/html/browse/crop/crop.jim index f7179566..01109a8c 100755 --- a/webif/html/browse/crop/crop.jim +++ b/webif/html/browse/crop/crop.jim @@ -68,7 +68,7 @@ foreach b $bookmarks { set l $($end - $start) incr keeping $l incr cur $l - append newbookmarks "[expr $cur + 3] " + append newbookmarks "[expr {$cur + 3}] " set left $($start * $planwidth / $len) set right $($end * $planwidth / $len) diff --git a/webif/html/browse/crop/execute.jim b/webif/html/browse/crop/execute.jim index d32cb307..fbbbb4f2 100755 --- a/webif/html/browse/crop/execute.jim +++ b/webif/html/browse/crop/execute.jim @@ -50,7 +50,7 @@ set cmd [list /mod/bin/nicesplice \ -out "$dir/$shname"] if {$invert} { - if {[expr [llength $bookmarks] % 2] != 0} { + if {[expr {[llength $bookmarks] % 2}] != 0} { lappend bookmarks [$ts duration 1] } foreach k [array names bookmarks] { @@ -71,6 +71,6 @@ puts "Renaming file group to $newname" puts "" ts renamegroup "$dir/$shname.ts" $newname -set croptime [expr [expr [clock milliseconds] - $cropstart] / 1000.0] +set croptime [expr {[expr {[clock milliseconds] - $cropstart}] / 1000.0}] puts "Time taken: $croptime" diff --git a/webif/html/browse/crop/progress.jim b/webif/html/browse/crop/progress.jim index 7ddae0bb..29f6aabd 100755 --- a/webif/html/browse/crop/progress.jim +++ b/webif/html/browse/crop/progress.jim @@ -19,7 +19,7 @@ if {![file exists $newfile]} { set expected $($sz / 100 * $perc) set nsz [file size $newfile] - set perc [expr $nsz * 100 / $expected] + set perc [expr {$nsz * 100 / $expected}] if {$perc > 100} { set perc 100 } puts $perc } diff --git a/webif/html/browse/decrypt/execute.jim b/webif/html/browse/decrypt/execute.jim index c7107bd2..ab8fb6bf 100755 --- a/webif/html/browse/decrypt/execute.jim +++ b/webif/html/browse/decrypt/execute.jim @@ -98,6 +98,6 @@ if {$mode eq "dlna"} { } } -set xtime [expr [expr [clock milliseconds] - $xstart] / 1000.0] +set xtime [expr {[expr {[clock milliseconds] - $xstart}] / 1000.0}] puts "Time taken: $xtime" diff --git a/webif/html/browse/decrypt/progress.jim b/webif/html/browse/decrypt/progress.jim index 3740c13b..1d8e62ad 100755 --- a/webif/html/browse/decrypt/progress.jim +++ b/webif/html/browse/decrypt/progress.jim @@ -22,6 +22,6 @@ if {![file exists "$file"]} { set sz [file size $rfile] set nsz [file size "$file"] - puts [expr $nsz * 100 / $sz] + puts [expr {$nsz * 100 / $sz}] } diff --git a/webif/html/browse/file.jim b/webif/html/browse/file.jim index 17527bf2..9d67d079 100755 --- a/webif/html/browse/file.jim +++ b/webif/html/browse/file.jim @@ -154,20 +154,20 @@ if {$type eq "ts"} { " puts [clock format [$ts get end] -format "%c %Z"] puts "(Scheduled: [clock format \ - [expr [$ts get schedstart] + [$ts get scheddur]] \ + [expr {[$ts get schedstart] + [$ts get scheddur]}] \ -format "%c %Z"])" puts " Duration [$ts duration] minute(s). - (Scheduled: [expr [$ts get scheddur] / 60]) + (Scheduled: [expr {[$ts get scheddur] / 60}]) Status [$ts get status] Resumes - [expr [$ts get resume] / 60] minutes into recording. + [expr {[$ts get resume] / 60}] minutes into recording. [progressbar $([$ts get resume] * 100 / [$ts duration 1])] diff --git a/webif/html/browse/join/execute.jim b/webif/html/browse/join/execute.jim index 01e73a61..2775f4bd 100755 --- a/webif/html/browse/join/execute.jim +++ b/webif/html/browse/join/execute.jim @@ -28,6 +28,6 @@ system endop $token set ts [ts fetch "$dir/$dst.ts"] $ts settitle $dst -set jointime [expr [expr [clock milliseconds] - $joinstart] / 1000.0] +set jointime [expr {[expr {[clock milliseconds] - $joinstart}] / 1000.0}] puts "Time taken: $jointime" diff --git a/webif/html/browse/join/progress.jim b/webif/html/browse/join/progress.jim index 7a6f81ed..e5752e69 100755 --- a/webif/html/browse/join/progress.jim +++ b/webif/html/browse/join/progress.jim @@ -16,7 +16,7 @@ if {![file exists $file]} { } else { set sz [file size $file] - set perc [expr $sz * 100 / $expected] + set perc [expr {$sz * 100 / $expected}] if {$perc > 100} { set perc 100 } puts $perc } diff --git a/webif/html/browse/mp3.jim b/webif/html/browse/mp3.jim index 4b15926e..a02fdc10 100755 --- a/webif/html/browse/mp3.jim +++ b/webif/html/browse/mp3.jim @@ -9,7 +9,7 @@ httpheader "application/json" set dir [cgi_get dir "/media/My Video/test"] puts "{" -foreach file [readdir $dir] { +foreach file [readdir -nocomplain $dir] { if {[file extension $file] ne ".mp3"} continue if {[catch { diff --git a/webif/html/browse/mpg/execute.jim b/webif/html/browse/mpg/execute.jim index 3b6bc6e3..4550476e 100755 --- a/webif/html/browse/mpg/execute.jim +++ b/webif/html/browse/mpg/execute.jim @@ -18,6 +18,6 @@ set token [system startop -multiple mpg $rfile] $ts mkmpg system endop $token -set xtime [expr [expr [clock milliseconds] - $xstart] / 1000.0] +set xtime [expr {[expr {[clock milliseconds] - $xstart}] / 1000.0}] puts "Time taken: $xtime" diff --git a/webif/html/browse/mpg/progress.jim b/webif/html/browse/mpg/progress.jim index b77ba63b..8f8d7900 100755 --- a/webif/html/browse/mpg/progress.jim +++ b/webif/html/browse/mpg/progress.jim @@ -14,9 +14,9 @@ if {![file exists "${bfile}.mpg"]} { puts "0" } else { set sz [file size $rfile] - set nsz [expr [file size "${bfile}.mpg"] / 0.75] + set nsz [expr {[file size "${bfile}.mpg"] / 0.75}] - set perc [expr $nsz * 100 / $sz] + set perc [expr {$nsz * 100 / $sz}] if {$perc > 100} { set perc 100 } puts $perc } diff --git a/webif/html/browse/sizes.jim b/webif/html/browse/sizes.jim index b6ad7e62..03b79d54 100755 --- a/webif/html/browse/sizes.jim +++ b/webif/html/browse/sizes.jim @@ -24,7 +24,7 @@ foreach line [split $dutxt "\n"] { } # Handle symbolic links. -foreach file [readdir $dir] { +foreach file [readdir -nocomplain $dir] { set file "$dir/$file" if {[catch {set lk [file readlink $file]}]} continue diff --git a/webif/html/browse/strip/execute.jim b/webif/html/browse/strip/execute.jim index 6f8cc4f1..1eab037f 100755 --- a/webif/html/browse/strip/execute.jim +++ b/webif/html/browse/strip/execute.jim @@ -51,6 +51,6 @@ ts renamegroup "$dir/$shname.ts" $newname exec /mod/bin/hmt "+setfilename=$newname" "$dir/$newname.hmt" exec /mod/bin/hmt "+shrunk" "$dir/$newname.hmt" -set striptime [expr [expr [clock milliseconds] - $stripstart] / 1000.0] +set striptime [expr {[expr {[clock milliseconds] - $stripstart}] / 1000.0}] puts "Time taken: $striptime" diff --git a/webif/html/browse/strip/progress.jim b/webif/html/browse/strip/progress.jim index 00325845..c825626b 100755 --- a/webif/html/browse/strip/progress.jim +++ b/webif/html/browse/strip/progress.jim @@ -17,7 +17,7 @@ if {![file exists $ntsfile]} { set sz [file size $origfile] set nsz [file size $ntsfile] - set perc [expr $nsz * 100 / $sz] + set perc [expr {$nsz * 100 / $sz}] if {$perc > 100} { set perc 100 } puts $perc } diff --git a/webif/html/browse/thumbnail/index.jim b/webif/html/browse/thumbnail/index.jim index cdbb54d9..0d3c5c66 100755 --- a/webif/html/browse/thumbnail/index.jim +++ b/webif/html/browse/thumbnail/index.jim @@ -59,11 +59,11 @@ puts "
second(s) into recording. - - + + - - + +
@@ -71,7 +71,7 @@ puts "
" -for {set i [expr $start + 0.0]} {$i <= $limit} {set i [expr $i + 0.5]} { +for {set i [expr {$start + 0.0}]} {$i <= $limit} {set i [expr {$i + 0.5}]} { lappend times $i puts " @ $is" diff --git a/webif/html/browse/thumbnail/mkrange.jim b/webif/html/browse/thumbnail/mkrange.jim index dc4acb3b..4c45cc6f 100755 --- a/webif/html/browse/thumbnail/mkrange.jim +++ b/webif/html/browse/thumbnail/mkrange.jim @@ -9,11 +9,11 @@ httpheader set rfile [cgi_get file] set s [cgi_get s 0] set e [cgi_get e $($s + 2)] -set i [expr [cgi_get i 0.5] + 0.0] +set i [expr {[cgi_get i 0.5] + 0.0}] if {![catch {set ts [ts fetch $rfile]}]} { $ts cleanbmp - for {set n [expr $s + 0.0]} {$n <= $e} {set n [expr $n + $i]} { + for {set n [expr {$s + 0.0}]} {$n <= $e} {set n [expr {$n + $i}]} { puts "Generating thumbnail for pos $n" $ts mkbmp $n ".pos$n" } diff --git a/webif/html/dedup/dedup b/webif/html/dedup/dedup index a8787857..a1724654 100755 --- a/webif/html/dedup/dedup +++ b/webif/html/dedup/dedup @@ -28,7 +28,7 @@ foreach dir $dirs { if {!$auto} { puts "\[$dir\]" } loadseries $dir - foreach file [lsort -command dedupsort [readdir $dir]] { + foreach file [lsort -command dedupsort [readdir -nocomplain $dir]] { if {[file extension $file] ne ".nts"} { continue } set file "$dir/[file rootname $file].hmt" diff --git a/webif/html/dedup/dedup.jim b/webif/html/dedup/dedup.jim index 55347f76..be9c5503 100755 --- a/webif/html/dedup/dedup.jim +++ b/webif/html/dedup/dedup.jim @@ -28,7 +28,7 @@ puts "
loadseries $dir set recalc 0 -foreach file [lsort -command dedupsort [readdir $dir]] { +foreach file [lsort -command dedupsort [readdir -nocomplain $dir]] { set file "$dir/$file" if {[file extension $file] ne ".nts"} { continue } diff --git a/webif/html/dedup/process.jim b/webif/html/dedup/process.jim index fa268212..f4804917 100755 --- a/webif/html/dedup/process.jim +++ b/webif/html/dedup/process.jim @@ -4,7 +4,7 @@ require system.class proc dedupsort {a b} { global dir - return [expr [file mtime "$dir/$a"] > [file mtime "$dir/$b"]] + return [expr {[file mtime "$dir/$a"] > [file mtime "$dir/$b"]}] } proc dedupprocess {file} {{seen {}}} { diff --git a/webif/html/diag/disk.jim b/webif/html/diag/disk.jim index 4dc06589..0bacbb58 100755 --- a/webif/html/diag/disk.jim +++ b/webif/html/diag/disk.jim @@ -84,7 +84,7 @@ proc flags {val} { set f "" set fx "" loop i 0 [llength $flaglist] { - if {[expr $val & (1 << $i)]} { + if {[expr {$val & (1 << $i)}]} { append f [lindex $flaglist $i] append fx "[lindex $flagdescr $i]\n" } else { @@ -135,19 +135,19 @@ foreach line [split $msg "\n"] { set left "" if {$flags eq ""} { set flags 0 } if {$id ni $nolife && - [expr $flags & 0x18] == 0x10 && $val == $worst && $val <= 100 && + [expr {$flags & 0x18}] == 0x10 && $val == $worst && $val <= 100 && $thresh < 100} { # Event counter which is not a rate and has not regressed. set notes "" - set left [expr 100 - 100 * (100 - $val) / (100 - $thresh)] + set left [expr {100 - 100 * (100 - $val) / (100 - $thresh)}] if {$left < 10} { set class orangeshade } # rval can be non-numeric (e.g. 6078h+41m+22.260s) if {[regexp {^\d+$} $rval] && $rval > 0 && [\ dict exists $derive $id]} { if {$left < 100} { - set total [expr \ - round(($rval / (100 - $left) * 100) \ - / 10000) * 10000 \ + set total [ \ + expr {round(($rval / (100 - $left) * 100) \ + / 10000) * 10000} \ ] set remain $($total - $rval) set notes "$remain of approximately" @@ -157,9 +157,9 @@ foreach line [split $msg "\n"] { set left "$left%" } if {$id == 190} { - append val " ([expr 100 - $val]°C)" - append worst " ([expr 100 - $worst]°C)" - append thresh " ([expr 100 - $thresh]°C)" + append val " ([expr {100 - $val}]°C)" + append worst " ([expr {100 - $worst}]°C)" + append thresh " ([expr {100 - $thresh}]°C)" } puts " $id diff --git a/webif/html/diag/mux.jim b/webif/html/diag/mux.jim index 977992a1..6f9f8662 100755 --- a/webif/html/diag/mux.jim +++ b/webif/html/diag/mux.jim @@ -15,8 +15,7 @@ if {[catch {set db [sqlite3.open /var/lib/humaxtv/channel.db]} msg]} { pkg loadmuxdb proc f2c {frequency} { - set ch int($((($frequency / 1000) - 303.25) / 8)) - return [expr int($ch)] + return $(int((($frequency / 1000) - 303.25) / 8)) } proc svc2mux {svcid mux} { @@ -67,7 +66,7 @@ foreach tw [$db query { puts " [f2c $ulFrequency] - [expr $ulFrequency / 1000.0] MHz + [expr {$ulFrequency / 1000.0}] MHz " puts "[progressbar $ucLevel]" puts "[progressbar $ucQuality]" diff --git a/webif/html/diag/queue/fetch.jim b/webif/html/diag/queue/fetch.jim index 7e7399be..777b5e13 100755 --- a/webif/html/diag/queue/fetch.jim +++ b/webif/html/diag/queue/fetch.jim @@ -11,8 +11,8 @@ set autofreq [$s autofreq] if {$autofreq == 0} { set autofreq 10 } puts "{" puts " \"autofreq\": \"$autofreq\"," -puts " \"autolast\": \"[clock format $autolast] ([clock format [expr \ - [clock seconds] - $autolast] -format %T] ago)\"," +puts " \"autolast\": \"[clock format $autolast] ([clock format \ + [expr {[clock seconds] - $autolast}] -format %T] ago)\"," puts " \"data\": \[" set flag 0 diff --git a/webif/html/edit/edit.jim b/webif/html/edit/edit.jim index f83c61b1..fa701ee6 100755 --- a/webif/html/edit/edit.jim +++ b/webif/html/edit/edit.jim @@ -12,7 +12,7 @@ set file [cgi_get file -] set backdesc [cgi_get backdesc "Back to diagnostics"] set backlink [cgi_get backlink "/diag/diag.jim"] if {$file ne "-"} { - puts "" + puts "" } puts { diff --git a/webif/html/edit/script.js b/webif/html/edit/script.js index e5dc512b..b5a07add 100644 --- a/webif/html/edit/script.js +++ b/webif/html/edit/script.js @@ -189,7 +189,7 @@ $('#executable').on('click', function() { if (forcefile) { - loadfile(forcefile); + loadfile(decodeURIComponent(forcefile)); $('#open,#create,#qedit').remove(); } diff --git a/webif/html/epg/list.jim b/webif/html/epg/list.jim index d0765922..b61a61a6 100755 --- a/webif/html/epg/list.jim +++ b/webif/html/epg/list.jim @@ -112,8 +112,8 @@ puts " set end [clock milliseconds] puts " - Retrieved in: [expr [expr $got - $start] / 1000.0] seconds. - Rendered in: [expr [expr $end - $start] / 1000.0] seconds. + Retrieved in: [expr {[expr {$got - $start}] / 1000.0}] seconds. + Rendered in: [expr {[expr {$end - $start}] / 1000.0}] seconds. " epg cleanup diff --git a/webif/html/lib/footer.jim b/webif/html/lib/footer.jim index b1f1c038..611de39a 100755 --- a/webif/html/lib/footer.jim +++ b/webif/html/lib/footer.jim @@ -6,7 +6,7 @@ puts { } catch { - set rendertime [expr ([clock milliseconds] - $renderstart) / 1000.0] + set rendertime [expr {([clock milliseconds] - $renderstart) / 1000.0}] puts "Rendered in: $rendertime seconds" } diff --git a/webif/html/m/nownext.jim b/webif/html/m/nownext.jim index 5e4d9410..ebc6ba39 100755 --- a/webif/html/m/nownext.jim +++ b/webif/html/m/nownext.jim @@ -32,7 +32,7 @@ foreach e $records { } set es [$e get start] - set ee [expr $es + [$e get duration]] + set ee [expr {$es + [$e get duration]}] $e process_sched set recopts 1 diff --git a/webif/html/m/schedule_d.jim b/webif/html/m/schedule_d.jim index c67183c2..d172b4f2 100755 --- a/webif/html/m/schedule_d.jim +++ b/webif/html/m/schedule_d.jim @@ -65,7 +65,7 @@ puts "[clock format $s -format "%a %d %b %Y"] if {$d > 0 && $n > $s && $n < $e} { puts "
" - set perc [expr [expr $n - $s] * 100 / $d] + set perc [expr {[expr {$n - $s}] * 100 / $d}] puts "" puts [progressbar $perc] } diff --git a/webif/html/sched/list/index.jim b/webif/html/sched/list/index.jim index 080c049f..668d327b 100755 --- a/webif/html/sched/list/index.jim +++ b/webif/html/sched/list/index.jim @@ -17,7 +17,7 @@ set svckeys [array names svcmap] set conflictstart [clock milliseconds] set conflicts [rsv newconflicts [system tuners] "xlist"] -set conflicttime [expr ([clock milliseconds] - $conflictstart) / 1000.0] +set conflicttime [expr {([clock milliseconds] - $conflictstart) / 1000.0}] if {[llength $conflicts] > 1} { puts "
@@ -109,7 +109,7 @@ proc eventrow {event {table TBL_RESERVATION}} { set attrs "table=$table sid=[$event get ulslot] \ reckind=[$event get ucRecKind] rsvtype=[$event get ersvtype] \ - ar=[expr ! [$event padded]] ended=$ended" + ar=[expr {! [$event padded]}] ended=$ended" set ek [ekey $event] set opts 1 @@ -289,7 +289,7 @@ proc eventrow {event {table TBL_RESERVATION}} { foreach e $elist { lassign $e service_id start end event_id if {$start == $s} continue - if {[incr i] == $max && [expr $c - $i] > 1} { + if {[incr i] == $max && [expr {$c - $i}] > 1} { puts "
" } else { puts "
" diff --git a/webif/html/sched/rpc/info.jim b/webif/html/sched/rpc/info.jim index e5a3f90c..9e526bcd 100755 --- a/webif/html/sched/rpc/info.jim +++ b/webif/html/sched/rpc/info.jim @@ -55,7 +55,7 @@ puts "[clock format $s -format "%a %d %b %Y"] if {$d > 0 && $n > $s && $n < $e} { puts "
" - set perc [expr [expr $n - $s] * 100 / $d] + set perc [expr {[expr {$n - $s}] * 100 / $d}] puts "" puts [progressbar $perc] } diff --git a/webif/html/sched/visual/index.jim b/webif/html/sched/visual/index.jim index 29cca20e..14e1bf4a 100755 --- a/webif/html/sched/visual/index.jim +++ b/webif/html/sched/visual/index.jim @@ -23,7 +23,7 @@ lmap i \ #set svcmap [lreverse $hmap] proc lsum {l} { - expr [join $l +] + 0 + expr [join [linsert $l 0 0] +] } proc pop_event {} { @@ -132,7 +132,7 @@ set padadj 0 # Returns an absolute number of pixels from the left corresponding # to a number of seconds into the day. proc secstopx {daysecs hourpx usedhours} { - set max [expr int($daysecs / 3600)] + set max [expr {int($daysecs / 3600)}] # Subtract any unused hours from $daysecs. for {set i 0} {$i < $max} {incr i} { if {$i >= 24} break @@ -140,7 +140,7 @@ proc secstopx {daysecs hourpx usedhours} { incr daysecs -3600 } } - return [expr int($daysecs * $hourpx / 3600)] + return [expr {int($daysecs * $hourpx / 3600)}] } # daysecs - absolute number of seconds into the day that needs to be reached. @@ -295,7 +295,7 @@ proc render_timeline {usedhours} { } # calculate pixels per hour - set hourpx [expr int($width / $tothours)] + set hourpx [expr {int($width / $tothours)}] if {$debug} { puts "USEDHOURS: $usedhours
\n" diff --git a/webif/html/xepg/index.jim b/webif/html/xepg/index.jim index 0e1e3733..9e334623 100755 --- a/webif/html/xepg/index.jim +++ b/webif/html/xepg/index.jim @@ -37,10 +37,10 @@ require epg_popup set now [clock seconds] set stt [cgi_get stt $now] -set dst [expr $now - $stt] +set dst [expr {$now - $stt}] if {$dst >= 0 && $dst < 1800} { set current 1 -} elseif { $stt < [expr int ($now / 86400) * 86400] } { +} elseif { $stt < [expr {int ($now / 86400) * 86400}] } { set stt $now set current 0 } else { @@ -51,7 +51,7 @@ set favgroup [$settings channel_group] set hours [cgi_get hours -] if {$hours eq "-"} { - set hours [expr 1.0 * [[settings] xepghours]] + set hours [expr {1.0 * [[settings] xepghours]}] } if {$hours == 0} { set hours 4.0 } @@ -61,7 +61,7 @@ if {$hours > 8} { set hours 8.0 } set seconds $($hours * 3600) set ostt $stt -set stt [expr int($stt / 1800.0) * 1800] +set stt [expr {int($stt / 1800.0) * 1800}] set ett $(int($stt + $seconds)) set offset 0 @@ -124,11 +124,11 @@ for {set i 0} {$i < 24} {incr i} { if {$i == $starthour} { append xclass " tjstart" - } elseif {$i > $starthour && $i < [expr $starthour + $hours]} { + } elseif {$i > $starthour && $i < [expr {$starthour + $hours}]} { append xclass " tjother" } - set tt [expr $starthour + $stt + 3600 * ($i - $starthour)] + set tt [expr {$starthour + $stt + 3600 * ($i - $starthour)}] # Back to start of hour set tt $(3600 * int($tt / 3600)) @@ -191,7 +191,7 @@ puts " for {set i 0} {$i < $hours * 2} {incr i} { puts "
" + style=\"width: [expr {$minpx * 30}]px\">" puts "[clock format $($stt + 1800 * $i) -format "%H:%M"]
" } @@ -201,10 +201,11 @@ puts "
" ###################################################################### # Events +if {[catch {set stt2 [expr {$stt + 0}]}]} { set stt2 0 } puts " " @@ -259,7 +260,7 @@ foreach e $records { } set es [$e get start] - set ee [expr $es + [$e get duration]] + set ee [expr {$es + [$e get duration]}] if {$es < $le} continue @@ -275,13 +276,13 @@ foreach e $records { if {$es < $stt} { set es $stt } if {$ee > $ett} { set ee $ett } - set left [expr int(($es - $stt) * $secpx)] - set right [expr int(($ee - $stt - 1) * $secpx)] + set left [expr {int(($es - $stt) * $secpx)}] + set right [expr {int(($ee - $stt - 1) * $secpx)}] if {$le == 0 && $es > $stt} { # EPG data carried over from previous day have been purged set pos $left puts "
+ style=\"width: [expr {$pos - 3}]px;\" title=\"Unknown\"> Unknown
" } @@ -312,7 +313,7 @@ foreach e $records { } puts "
+ style=\"width: [expr {$px - 4}]px;\" title=\"[join $txt]\"> " @@ -344,7 +345,7 @@ epg cleanup set end [clock milliseconds] puts " - Retrieved in: [expr ($got - $start) / 1000.0] seconds. + Retrieved in: [expr {($got - $start) / 1000.0}] seconds. " footer diff --git a/webif/lib/altrow b/webif/lib/altrow index 5af31ed6..d2a7af13 100644 --- a/webif/lib/altrow +++ b/webif/lib/altrow @@ -11,7 +11,7 @@ if {![exists -proc altrow]} { 0 { puts -nonewline " class=odd" } 1 { puts -nonewline " class=even" } } - set i [expr ! $i] + set i [expr {! $i}] } if {$attrs ne ""} { puts -nonewline " $attrs" } puts ">"; diff --git a/webif/lib/auto/plugin/expire/auto.hook b/webif/lib/auto/plugin/expire/auto.hook index ddc1f195..3645fd1a 100755 --- a/webif/lib/auto/plugin/expire/auto.hook +++ b/webif/lib/auto/plugin/expire/auto.hook @@ -20,7 +20,7 @@ proc ::expire::directory {dir} { } set entries [lsort \ - -command [lambda {a b} {upvar getter g; expr [$g $a] - [$g $b]}]\ + -command [lambda {a b} {upvar getter g; expr {[$g $a] - [$g $b]}}]\ [lmap i [readdir -nocomplain $dir] { if {![string match {*.ts} $i]} continue if {[catch {set ts [ts fetch "$dir/$i"]}]} continue diff --git a/webif/lib/bin/manage_logs b/webif/lib/bin/manage_logs index 07680d58..b2fd8dee 100755 --- a/webif/lib/bin/manage_logs +++ b/webif/lib/bin/manage_logs @@ -56,7 +56,7 @@ puts "\n-- Purge\n" proc logsort {a b} { global logdir - return [expr [file mtime "$logdir/$a"] - [file mtime "$logdir/$b"]] + return [expr {[file mtime "$logdir/$a"] - [file mtime "$logdir/$b"]}] } foreach log $baselogs { diff --git a/webif/lib/bin/reboot b/webif/lib/bin/reboot index fa60d419..de3aa516 100755 --- a/webif/lib/bin/reboot +++ b/webif/lib/bin/reboot @@ -52,7 +52,9 @@ lbr=0 if [ -f /tmp/.lbr ]; then lbr="`cat /tmp/.lbr`" #echo "LBR: $lbr" -else + [ -z "$lbr" ] && lbr=0 +fi +if [ $lbr -eq 0 ]; then # No last-boot-reason file, fall-back to reading timer directly. echo "No .lbr, falling back to timer..." if readwakeup | grep "00 00 00 00"; then diff --git a/webif/lib/epg.class b/webif/lib/epg.class index db05d262..45486a90 100644 --- a/webif/lib/epg.class +++ b/webif/lib/epg.class @@ -86,7 +86,7 @@ epg method percent {} { set now [clock seconds] if {$start > $now} { return 0 } if {$start + $duration < $now} { return 100 } - return [expr [expr $now - $start] * 100 / $duration] + return [expr {[expr {$now - $start}] * 100 / $duration}] } epg method showing {} { @@ -110,11 +110,11 @@ epg method elapsed {} { set percent [$self percent] if {$percent == 0} { return 0 } if {$percent == 100} { return $duration } - return [expr $duration * $percent / 100] + return [expr {$duration * $percent / 100}] } epg method remaining {} { - return [expr $duration - [$self elapsed]] + return [expr {$duration - [$self elapsed]}] } epg method end {} { diff --git a/webif/lib/progressbar b/webif/lib/progressbar index 9ea72974..b1d74b6a 100644 --- a/webif/lib/progressbar +++ b/webif/lib/progressbar @@ -1,7 +1,7 @@ if {![exists -proc progressbar]} { proc progressbar {percent} { - set pos [expr 118 - $percent / 100.0 * 118] + set pos [expr {118 - $percent / 100.0 * 118}] return "\"$percent%\"" if {$ersvtype == 3} { if {[$self padded]} { - set padding "<- [expr $ulPreOffset / 60], [expr $ulPostOffset / 60] ->" + set padding "<- [expr {$ulPreOffset / 60}], [expr {$ulPostOffset / 60}] ->" lappend iconlist \ "\"$padding\"" @@ -1068,7 +1068,7 @@ proc {rsv backup} {file} { loop i 1 6 { set favname [system strip \ [system param FAV_CUSTOM_STR0$i Text]] - set idx [expr 1 << ($i - 1)] + set idx [expr {1 << ($i - 1)}] set favnames($idx) $favname puts $fd "favname\t$i\t$idx\t$favname" puts " $favname" diff --git a/webif/lib/system.class b/webif/lib/system.class index cb19d188..dbb30a60 100644 --- a/webif/lib/system.class +++ b/webif/lib/system.class @@ -569,16 +569,41 @@ proc {system restartpending} {{mode 1}} { } } -proc {system param} {param {type Value} {tbl MENUCONFIG}} { +proc {system param} {param {type Value} {tbl MENUCONFIG}} {{newdb ""}} { if {[catch {set db [sqlite3.open /var/lib/humaxtv/setup.db]} msg]} { return 0 } + catch {$db query {pragma busy_timeout(50)}} set val 0 - set ret [$db query " - select item$type - from TBL_$tbl - where itemName = '$param' - "] + loop _ 2 { + try { + set ret [$db query " + select item$type + from TBL_$tbl + where itemName = '$param' + "] + break + } on error {msg opts} { + if {[string first "database is locked" $msg] >= 0} { + try { + if {$newdb eq ""} { + set newdb [file tempfile /tmp/setupXXXXXX] + defer "catch {file delete $newdb}" + } + file copy -force /var/lib/humaxtv/setup.db $newdb + set db [sqlite3.open $newdb] + } on error {msg opts} { + file delete $newdb + break + } + continue + } + + catch {$db close} + return {*}$opts $msg + } + } + if {[llength $ret] == 1} { lassign [lindex $ret 0] x val } diff --git a/webif/lib/ts.class b/webif/lib/ts.class index 526814a5..e60c1033 100644 --- a/webif/lib/ts.class +++ b/webif/lib/ts.class @@ -49,7 +49,7 @@ ts method dir {} { } ts method duration {{raw 0}} { - set d [expr $end - $start] + set d [expr {$end - $start}] if {!$raw} { set d $($d / 60) } return $d } diff --git a/webif/lib/utils b/webif/lib/utils index c7dbd84e..901d1d97 100644 --- a/webif/lib/utils +++ b/webif/lib/utils @@ -55,7 +55,7 @@ proc ::b64::encode {str} { proc ::b64::decode {str} { set nstr [string trimright $str =] set dstr [string map $::b64::unmap $nstr] - switch [expr [string length $str]-[string length $nstr]] { + switch [expr {[string length $str]-[string length $nstr]}] { 0 {#nothing to do} 1 {set dstr [string range $dstr 0 {end-2}]} 2 {set dstr [string range $dstr 0 {end-4}]}