}
return no
}
+
+proc parse-int {v default} {
+ if {$v == ""} {
+ return $default
+ }
+ if {![string is integer -strict $v]} {
+ puts {invalid integer}
+ exit 1
+ }
+ return $v
+}
}
set rv [list]
foreach octet $octets {
- if {[string is integer $octet] == 0} {
+ if {[string is integer -strict $octet] == 0} {
puts stderr "non integer IPv4 octet"
exit 1
}
set maxlen 32
set deflen 24
}
-set prefixlen [read -nonewline stdin]
-if {$prefixlen == ""} {
- set prefixlen $deflen
-}
-if {![string is integer -strict $prefixlen]} {
- puts "invalid integer"
- exit 1
-}
+package require check-utils
+set prefixlen [parse-int [read -nonewline stdin] $deflen]
if {$prefixlen <= 0 || $prefixlen > $maxlen} {
puts "not in range"
exit 1
#!/usr/bin/env jimsh
-set i [read -nonewline stdin]
-if {$i == ""} {
- set i 1500
-}
-if {![string is integer -strict $i]} {
- puts "invalid integer"
- exit 1
-}
+package require check-utils
+set i [parse-int [read -nonewline stdin] 1500]
if {$i <= 0 || $i > 65535} {
puts "not in (0..65536) range"
exit 1
#!/usr/bin/env jimsh
-set n [read -nonewline stdin]
-if {$n == ""} {
- set n 22
-}
-if {![string is integer -strict $n]} {
- puts "invalid integer"
- exit 1
-}
+package require check-utils
+set n [parse-int [read -nonewline stdin] 22]
puts $n