Script local variables

Paul Hibbert paulhibbert at mac.com
Sat Feb 22 13:18:19 EST 2014


That was part of the problem, the value wasn't being retained, maybe for different reasons.

The original stack script set the variable values on openStack, then a button script called the stack script handlers to do the encryption, this is where I saw the possibility for the dis-connection, because portions of the stack script were being accessed at separate times.

Another way to achieve the same result in this case would be to declare the script variables with values in the stack script.

e.g.:

local tPassword = "12345678123456781234567812345678"
local tSalt = "12345678123456781234567812345678"
local tIV = "12345678123456781234567812345678"

Often there are many different ways to achieve the same goal, the best way isn't always the most obvious at the time, but that's the beauty of this type of list.

Paul

On 2014-02-22, at 9:53 AM, André Bisseret <andre.bisseret at wanadoo.fr> wrote:

> Bonjour,
> 
> From liveCode Dictionnary:
> "The value of a local variable is retained only while the handler is running. When the handler exits, the value of the local variable is lost.
> 
> The value of a script local variable is retained between handlers,"
> 
> For more information have a look at "local" in the dictionnary
> 
> Best regards
> 
> André
> 
> 
> Le 22 févr. 2014 à 17:04, Earthednet-wp a écrit :
> 
>> Mats' posting on encryption difficulties got me thinking about local variables. Are they supposed to persist after the script is done executing, so that the next time a handler within that script is called, they can be expected to hold previously set values? I notice that they don't. Or would this be a task for custom properties?
>> Bill
>> 
>> William Prothero
>> http://es.earthednet.org
>> 
>>> On Feb 22, 2014, at 2:54 AM, Peter W A Wood <peterwawood at gmail.com> wrote:
>>> 
>>> Many thanks to Roger Eller, Jan Schenkel, Bill Vlahos and Paul Hibbert (off list) for helping me identify and workaround the issues I encountered.
>>> 
>>> Paul pointed out three things: I didn't the use "the text of Field ..."; how to overcome not being able to copy text from a field in an OS X standalone; and the final problem that was related to script local variables.
>>> 
>>> Using "the text of Field ..." instead of "Field ..." helped to more accurately copy and paste data. (I ended up displaying the encrypted data in Hex anyway.) 
>>> 
>>> I had found that I couldn't copy from a Field in an OS X standalone. Paul provide a script with group handlers to get around the problem. I have submitted a bug report which has been accepted - http://quality.runrev.com/show_bug.cgi?id=11830
>>> 
>>> At this stage, I was still getting inconsistent results when encrypting data in the IDE or a standalone. Then Paul noticed how I was initialising the encryption parameters, namely the script local variables tPassword, tSalt, tIV:
>>> 
>>>  openStack
>>>        put "" into Field "Encrypted"
>>>        put "12345678123456781234567812345678" into tPassword
>>>        put "12345678123456781234567812345678" into tSalt
>>>        put "12345678123456781234567812345678" into tIV
>>>  end openStack
>>> 
>>>  on encryptMSG
>>>        ...
>>>  end encryptMSG
>>> 
>>>  on decryptMSG
>>>        ...
>>>  end decryptMSG
>>> 
>>> He changed this to re-setting the three script local fields each time they were used:
>>> 
>>>  on openStack
>>>        put "" into Field "Encrypted"
>>>  end openStack
>>> 
>>>  command setPassCodes
>>>        put "12345678123456781234567812345678" into tPassword
>>>        put "12345678123456781234567812345678" into tSalt
>>>        put "12345678123456781234567812345678" into tIV
>>>  end setPassCodes
>>> 
>>>  on encryptMSG
>>>        setPassCodes
>>>        ...
>>>  end encryptMSG
>>> 
>>>  on decryptMSG
>>>        setPassCodes
>>>        ...
>>>  end decryptMSG
>>> 
>>> After making this change, I now get identical results when encrypting data with the stack in the IDE or as a standalone.
>>> 
>>> I have also entered a bug report for this - http://quality.runrev.com/show_bug.cgi?id=11832 - I feel there is a bug but not in the encrypt/decrypt functions, it's in the handling of script local variables.
>>> 
>>> Once again, thanks for all the help.
>>> 
>>> Kind regards
>>> Peter
>>> http://LiveCode1001.blogspot.com
>>> 
>>> 
>>> 
>>> _______________________________________________
>>> use-livecode mailing list
>>> use-livecode at lists.runrev.com
>>> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
>>> http://lists.runrev.com/mailman/listinfo/use-livecode
>> 
>> _______________________________________________
>> use-livecode mailing list
>> use-livecode at lists.runrev.com
>> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
>> http://lists.runrev.com/mailman/listinfo/use-livecode
> 
> 
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode





More information about the use-livecode mailing list