1# 2# atol for long return check 3# 4package provide Atol 0.1 5package require Ffidl 6package require Ffidlrt 7 8# 9# the plain interfaces 10# 11ffidl-proc atol {pointer-utf8} long [ffidl-symbol [ffidl-find-lib c] atol] 12ffidl-proc _strtol {pointer-utf8 pointer-var int} long [ffidl-symbol [ffidl-find-lib c] strtol] 13ffidl-proc _strtoul {pointer-utf8 pointer-var int} {unsigned long} [ffidl-symbol [ffidl-find-lib c] strtoul] 14# 15# some cooked interfaces 16# 17proc strtol {str radix} { 18 set endptr [binary format [ffidl-info format pointer] 0] 19 set l [_strtol $str endptr $radix] 20 binary scan $endptr [ffidl-info format pointer] endptr 21 list $l $endptr 22} 23proc strtoul {str radix} { 24 set endptr [binary format [ffidl-info format pointer] 0] 25 set l [_strtoul $str endptr $radix] 26 binary scan $endptr [ffidl-info format pointer] endptr 27 list $l $endptr 28} 29 30