https://issues.apache.org/bugzilla/show_bug.cgi?id=52633

             Bug #: 52633
           Summary: simpledb puts "...". tcl error
           Product: Rivet
           Version: unspecified
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: minor
          Priority: P2
         Component: Rivet
        AssignedTo: rivet-dev@tcl.apache.org
        ReportedBy: harald.oehlm...@elmicron.de
    Classification: Unclassified


I scanned the packages within Rivet using Komodo and the syntax checker
reported the following errors and remarks:
File              |Type   |Line|Remark
simpledb.tcl      |Error  |301 |Point after closing quote
simpledb.tcl      |Warning|200 |Variable "props" unknown
simpledb.tcl      |Warning|202 |Variable "props" unknown
simpledb.tcl      |Warning|240 |Avoid nesting of expr (1)
tclrivet.tcl      |Warning|24  |Proc ||include redefined
tclrivetparser.tcl|Error  |106 |extra character after closed brace (2)
tclrivetparser.tcl|Error  |112 |missing " (3)
cookie.tcl        |Warning|40  |Use {} to avoid double substitution (4)
cookie.tcl        |Warning|41  |Use {} to avoid double substitution (5)
cookie.tcl        |Warning|45  |Use {} to avoid double substitution (6)
html.tcl          |Warning|20  |Use {} to avoid double substitution (7)
import_key_value_pairs.tcl
                  |Warning|37  |Use {} to avoid double substitution (8)
import_switch_args.tcl                   
                  |Warning|22  |Undefined variable "args"
                  |Warning|26  |Use {} to avoid double substitution (9)
lassign.tcl       |Warning|11  |Redefines proc (10)
lempty            |Warning|13  |Use {} to avoid double substitution (11)

(1)
Original:
    if { $res($oid) == [expr {[llength $propertymatch] / 2}] } {
Proposed change:
    if { $res($oid) == [llength $propertymatch] / 2 } {

(2,3)
As this is correctly interpreted by TCL, there is no need for action.
Nevertheless, I would add an additional "\" before { and [:
Originals:
            append outbuf "\\}"
            append outbuf "\\["
Proposed change:
            append outbuf "\\\}"
            append outbuf "\\\["

(4)
This is helpful for the bytecode compiler, so it is not idiot.
Original:
if [info exists params($time)] {
Proposed change:
if {[info exists params($time)]} {

(5)
Original:
        incr expiresIn [expr $params($time) * $num]
Proposed change:
        incr expiresIn [expr {$params($time) * $num} ]
(6)
Original:
        set secs [expr [clock seconds] + $expiresIn]
Proposed change:
        set secs [expr {[clock seconds] + $expiresIn} ]

(7)
Original:
    for {set i [expr [llength $args] - 1]} {$i >= 0} {incr i -1} {
Proposed change:
    for {set i [expr {[llength $args] - 1} ]} {$i >= 0} {incr i -1} {

(8)
Original:
        set data(args) [lrange $argsList [expr $index + 1] end]
Proposed change:
        set data(args) [lrange $argsList [expr {$index + 1}] end]

(9)
Original:
        set array(args) [lrange $argsList [expr $index + 1] end]
Proposed change:
        set array(args) [lrange $argsList [expr {$index + 1}] end]
or TCL8.5+:
        set array(args) [lrange $argsList $index+1 end]

(10)
As lassign is defined in tcl 8.5, one may code a check here:
Proposed change:
if {0 == [llength [info commands lassign]]} {
    proc lassign...
}
(11)
expr $len == 0 -> expr {$len == 0}

I am sorry, this got long and eventually enervous.
If ok for the community, I may make the changes.

Regards,
Harald

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: rivet-dev-unsubscr...@tcl.apache.org
For additional commands, e-mail: rivet-dev-h...@tcl.apache.org

Reply via email to