aboutsummaryrefslogtreecommitdiff
path: root/Examples/tcl/variables/runme.tcl
blob: b9e2fd418501aabb609044330b1a76b8c92758ef (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# file: runme.tcl

catch { load ./example[info sharedlibextension] example}

# Try to set the values of some global variables

set ivar    42
set svar   -31000
set lvar    65537
set uivar   123456
set usvar   61000
set ulvar   654321
set scvar   -13
set ucvar   251
set cvar    "S"
set fvar    3.14159
set dvar    2.1828
set strvar  "Hello World"
set iptrvar [new_int 37]
set ptptr [new_Point 37 42]
set name    "Bill"

# Now print out the values of the variables

puts "Variables (values printed from Tcl)"

puts "ivar      = $ivar"
puts "svar      = $svar"
puts "lvar      = $lvar"
puts "uivar     = $uivar"
puts "usvar     = $usvar"
puts "ulvar     = $ulvar"
puts "scvar     = $scvar"
puts "ucvar     = $ucvar"
puts "fvar      = $fvar"
puts "dvar      = $dvar"
puts "cvar      = $cvar"
puts "strvar    = $strvar"
puts "cstrvar   = $cstrvar"
puts "iptrvar   = $iptrvar"
puts "name      = $name"
puts "ptptr     = $ptptr [Point_print $ptptr]"
puts "pt        = $pt [Point_print $pt]"

puts "\nVariables (values printed from C)"

print_vars

puts "\nNow I'm going to try and modify some read only variables";

puts "     Tring to set 'path'";
if { [catch {
    set path "Whoa!"
    puts "Hey, what's going on?!?! This shouldn't work"
}]} {
    puts "Good."
}

puts "     Trying to set 'status'";
if { [catch {
    set status 0
    puts "Hey, what's going on?!?! This shouldn't work"
}]} {
    puts "Good."
}

puts "\nI'm going to try and update a structure variable.\n"

set pt $ptptr

puts "The new value is"
pt_print
puts "You should see the value [Point_print $ptptr]"