Compare commits

...

12 Commits

Author SHA1 Message Date
prpr c6ea135ed3 Merge commit '203430c224' 2022-09-26 09:34:43 +01:00
prpr 203430c224 Update to 1.5.0-6 2022-09-25 17:01:24 +01:00
prpr 8c2a33b54d More fixes for expr weirdness 2022-09-25 16:59:39 +01:00
prpr 3f1832387a Revert expr modification 2022-09-25 02:08:56 +01:00
prpr cb78e4bc1d Update to 1.5.0-4 2022-09-22 02:04:01 +01:00
prpr f17adb764b Update expr commands to remove deprecated syntax 2022-09-22 02:02:32 +01:00
prpr c73a940bae Ignore errors from invalid directories 2022-09-15 01:39:13 +01:00
prpr 805b9ba2dc Check for null last boot reason 2022-09-14 11:03:49 +01:00
prpr 66bd753689 Update to 1.5.0-3 2022-09-13 01:16:19 +01:00
prpr c1358ef72f Update to 1.5.0-2 2022-09-10 15:33:33 +01:00
prpr 25bb62f622 Improve lock handling of /var/lib/humaxtv/setup.db 2022-09-10 15:31:33 +01:00
prpr aab63aa8cc Fix filename escaping in file editor 2022-09-10 14:24:10 +01:00
47 changed files with 124 additions and 97 deletions

View File

@ -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/

View File

@ -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]

View File

@ -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"

View File

@ -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
}

View File

@ -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)

View File

@ -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 "<span class=hidden id=fileparams file=\"$dir/$newname.ts\"></span>"
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"

View File

@ -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
}

View File

@ -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"

View File

@ -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}]
}

View File

@ -154,20 +154,20 @@ if {$type eq "ts"} {
<td>"
puts [clock format [$ts get end] -format "%c %Z"]
puts "<font class=also>(Scheduled: [clock format \
[expr [$ts get schedstart] + [$ts get scheddur]] \
[expr {[$ts get schedstart] + [$ts get scheddur]}] \
-format "%c %Z"])</font>"
puts "</td>
</tr><tr>
<th>Duration</th>
<td>[$ts duration] minute(s).
<font class=also>(Scheduled: [expr [$ts get scheddur] / 60])
<font class=also>(Scheduled: [expr {[$ts get scheddur] / 60}])
</font></td>
</tr><tr>
<th>Status</th>
<td>[$ts get status]</td>
</tr><tr>
<th>Resumes</th>
<td>[expr [$ts get resume] / 60] minutes into recording.
<td>[expr {[$ts get resume] / 60}] minutes into recording.
[progressbar $([$ts get resume] * 100 / [$ts duration 1])]
</td>
</tr><tr>

View File

@ -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"

View File

@ -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
}

View File

@ -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 {

View File

@ -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"

View File

@ -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
}

View File

@ -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

View File

@ -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"

View File

@ -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
}

View File

@ -59,11 +59,11 @@ puts "<div style=\"width=100%; text-align: center\">
<input name=pos id=pos size=5 maxlength=4 value=\"$pos\">
second(s) into recording.
</form>
<button class=mvpos pos=[expr $pos - 30]>&lt;&lt; 30 seconds</button>
<button class=mvpos pos=[expr $pos - 5]>&lt; 5 seconds</button>
<button class=mvpos pos=[expr {$pos - 30}]>&lt;&lt; 30 seconds</button>
<button class=mvpos pos=[expr {$pos - 5}]>&lt; 5 seconds</button>
<button id=repos>Update</button>
<button class=mvpos pos=[expr $pos + 5]>&gt; 5 seconds</button>
<button class=mvpos pos=[expr $pos + 30]>&gt;&gt; 30 seconds</button>
<button class=mvpos pos=[expr {$pos + 5}]>&gt; 5 seconds</button>
<button class=mvpos pos=[expr {$pos + 30}]>&gt;&gt; 30 seconds</button>
</div>
<span id=start class=hidden>$start</span>
<span id=end class=hidden>$limit</span>
@ -71,7 +71,7 @@ puts "<div style=\"width=100%; text-align: center\">
<tr>
"
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 "<th style=\"text-align: center\">
@ <span class=mark>$i</span>s</th>"

View File

@ -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"
}

View File

@ -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"

View File

@ -28,7 +28,7 @@ puts "<fieldset style=\"display: inline\">
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 }

View File

@ -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 {}}} {

View File

@ -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 "<span title=\"$notes\">$left%</span>"
}
if {$id == 190} {
append val " ([expr 100 - $val]&deg;C)"
append worst " ([expr 100 - $worst]&deg;C)"
append thresh " ([expr 100 - $thresh]&deg;C)"
append val " ([expr {100 - $val}]&deg;C)"
append worst " ([expr {100 - $worst}]&deg;C)"
append thresh " ([expr {100 - $thresh}]&deg;C)"
}
puts "<tr class=$class>
<td>$id</td>

View File

@ -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 "
<tr class=odd>
<td>[f2c $ulFrequency]</td>
<td>[expr $ulFrequency / 1000.0] MHz</td>
<td>[expr {$ulFrequency / 1000.0}] MHz</td>
"
puts "<td>[progressbar $ucLevel]</td>"
puts "<td>[progressbar $ucQuality]</td>"

View File

@ -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

View File

@ -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 "<script type=text/javascript>forcefile = '$file';</script>"
puts "<script type=text/javascript>forcefile = \"[cgi_quote_url $file]\";</script>"
}
puts {

View File

@ -189,7 +189,7 @@ $('#executable').on('click', function() {
if (forcefile)
{
loadfile(forcefile);
loadfile(decodeURIComponent(forcefile));
$('#open,#create,#qedit').remove();
}

View File

@ -112,8 +112,8 @@ puts "
set end [clock milliseconds]
puts "<font class=footnote>
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.
</font>"
epg cleanup

View File

@ -6,7 +6,7 @@ puts {
}
catch {
set rendertime [expr ([clock milliseconds] - $renderstart) / 1000.0]
set rendertime [expr {([clock milliseconds] - $renderstart) / 1000.0}]
puts "<span class=footnote>Rendered in: $rendertime seconds</span>"
}

View File

@ -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

View File

@ -65,7 +65,7 @@ puts "[clock format $s -format "%a %d %b %Y"]
if {$d > 0 && $n > $s && $n < $e} {
puts "<br>"
set perc [expr [expr $n - $s] * 100 / $d]
set perc [expr {[expr {$n - $s}] * 100 / $d}]
puts "<img class=va src=/images/745_1_11_Video_1REC.png>"
puts [progressbar $perc]
}

View File

@ -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 "<div class=warningbox><div><center>
@ -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 "<div class=\"hidden moretoshowc\">"
} else {
puts "<br>"

View File

@ -55,7 +55,7 @@ puts "[clock format $s -format "%a %d %b %Y"]
if {$d > 0 && $n > $s && $n < $e} {
puts "<br>"
set perc [expr [expr $n - $s] * 100 / $d]
set perc [expr {[expr {$n - $s}] * 100 / $d}]
puts "<img class=va src=/images/745_1_11_Video_1REC.png>"
puts [progressbar $perc]
}

View File

@ -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<br>\n"

View File

@ -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 "<div class=xetime id=xe$i
style=\"width: [expr $minpx * 30]px\">"
style=\"width: [expr {$minpx * 30}]px\">"
puts "[clock format $($stt + 1800 * $i) -format "%H:%M"]</div>"
}
@ -201,10 +201,11 @@ puts "</div>"
######################################################################
# Events
if {[catch {set stt2 [expr {$stt + 0}]}]} { set stt2 0 }
puts "
<script type=text/javascript>
var hours = $hours;
var stt = [expr $stt + 0];
var stt = $stt2;
var nowoffset = $offset;
</script>
"
@ -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 "<div class=\"xeprog $bg\"
style=\"width: [expr $pos - 3]px;\" title=\"Unknown\">
style=\"width: [expr {$pos - 3}]px;\" title=\"Unknown\">
<i>Unknown</i></div>"
}
@ -312,7 +313,7 @@ foreach e $records {
}
puts "<div class=\"xeprog $lbg\"
style=\"width: [expr $px - 4]px;\" title=\"[join $txt]\">
style=\"width: [expr {$px - 4}]px;\" title=\"[join $txt]\">
<a class=event href=# xs=[$e get service_id]
xe=[$e get event_id] sch=[$e get sched_type]
rec=$recopts>"
@ -344,7 +345,7 @@ epg cleanup
set end [clock milliseconds]
puts "<font class=footnote>
Retrieved in: [expr ($got - $start) / 1000.0] seconds.
Retrieved in: [expr {($got - $start) / 1000.0}] seconds.
</font>"
footer

View File

@ -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 ">";

View File

@ -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

View File

@ -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 {

View File

@ -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

View File

@ -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 {} {

View File

@ -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 "<img src=/img/percentimage.png
title=\"$percent%\"
alt=\"$percent%\" class=progress

View File

@ -167,7 +167,7 @@ proc {queue startup} {{days 7}} {
delete from queue
where status in ('COMPLETE', 'FAILED')
and submitted < %s
} [expr [clock seconds] - 86400 * $days]
} [expr {[clock seconds] - 86400 * $days}]
] ] ]
}

View File

@ -292,7 +292,7 @@ rsv method iconset {{height 20}} {
lappend iconlist "<img src='/images/$icon' height=$height>"
if {$ersvtype == 3} {
if {[$self padded]} {
set padding "<- [expr $ulPreOffset / 60], [expr $ulPostOffset / 60] ->"
set padding "<- [expr {$ulPreOffset / 60}], [expr {$ulPostOffset / 60}] ->"
lappend iconlist \
"<img src=/img/pad.png height=$height
title=\"$padding\" alt=\"$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"

View File

@ -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
}

View File

@ -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
}

View File

@ -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}]}