7.0 Issues

Eric Corbett eric at canelasoftware.com
Thu Feb 19 22:02:49 CET 2015


I think what you will have to do is this:

Check the LC version;
if it’s >= 7 then
arrayEncode(tData,6) — force the engine to use the old arrayEncoding
else
arrayEncode(tData) — older versions can not have the extra parameter
end if

LiveCode 7 will be smart enough to decode the array either way.

Eric

On Feb 19, 2015, at 12:49 PM, Peter Haworth <pete at lcsql.com> wrote:

> Thanks Eric, yes that does indeed help.  However, I'm still confused.  The
> dictionary indicates that if the new parameter, version, is not present
> then arrays are encoded the old way.  None of my calls include the new
> parameter so not sure how they ended up being inaccessible in pre7 versions.
> 
> I guess the gist of my post was what else have I failed to account for?  Is
> there a document somewhere that details what code structures may need
> attention when moving back and forth between LC7 and prior versions?  I'm
> guessing that anything addressing char chunks or offset would need to be
> changed.
> 
> On Thu Feb 19 2015 at 12:31:24 PM Eric Corbett <eric at canelasoftware.com>
> wrote:
> 
>> Not sure if this helps, but LiveCode 7 uses a different arrayEncoding than
>> previous version due to Unicode. Check the dictionary on how to use
>> arrayEncode in 7 to be able to decode in an earlier version.
>> 
>> Eric
>> 
>> 
>> 
>> 
>> On Feb 19, 2015, at 12:16 PM, Peter Haworth <pete at lcsql.com> wrote:
>> 
>>> I've been careful to create separate versions of my stack files and
>>> Livecode Preferences folder for use when running LC 7.  However, it seems
>>> there other issues with compatibility.
>>> 
>>> I save the preferences for my application in a file in the
>>> /Library/Application Support folder with the following statement:
>>> 
>>> *write* base64Encode(arrayEncode(gSettings)) to file <filepath>"
>>> 
>>> These are then read in at startup with:
>>> 
>>> read from file myPath until EOF
>>>  if it is empty then
>>>     put empty into gSettings
>>>  else
>>>     put arrayDecode(base64Decode(it)) into gSettings
>>>  end if
>>> 
>>> Yesterday, I started working on this stack with LC7 and the prefs file
>> was
>>> saved by the LC7 version of the stack.
>>> Today, I needed to go back to the non LC7 version of the stack.  To my
>>> surprise, a runtime error was thrown on the "put arrayDecode..."
>> statement
>>> above.  The  it variable looked  like it contained base64 encoded data.
>>> 
>>> I ran the LC7 version of the stack again and the runtime error did not
>>> occur.
>>> 
>>> I restored the preferences file from a Time Machine backup that I know
>>> preceded my use of LC7, ran the application again with LC 6.6.2, and all
>>> worked fine.
>>> 
>>> So it seems that something in either the array/base64 encode/decode
>>> functions changed between v6.6.2 and 7.0.1.
>>> 
>>> I really want to use LC7 but stuff like this makes me very nervous.  How
>>> many other inconsistencies like this are lurking out there.
>>> _______________________________________________
>>> 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