Windows standalone puzzle

Peter M. Brigham pmbrig at gmail.com
Mon Aug 19 22:43:52 EDT 2013


So I have a small LC standalone built for Windows on a Mac, used as a utility at work on a dumb PC terminal at my office that is networked to a server. I DL the the utility to my (networked) Windows desktop and it helps me by storing boilerplate text that I can use to paste into the new electronic medical record when I write notes. It has mostly been working fine, but one feature works on the desktop/development environment but suddenly has stopped working on in the standalone in Windows. It's a function that truncates lines of a stored list of short phrases ("snippets") to put into a popup button. The shorten() function runs through a cr-delimited list of phrases and truncates the lines if they are longer than 75 chars, inserting a "…" in the middle of the string. The popup button then displays the truncated lines rather than the whole lines (which may in some cases be long enough that the popup menu would be annoyingly wide). When the user selects the string from the popup, the corresponding snippet from the list of unaltered snippets is put on the clipboard.

That whole process works great as designed using the pre-loaded snippets, but the shorten() function throws an error when it's called by a handler that adds a new snippet entered by the user. That is what is broken. I finally pinned this down by wrapping the function call in a "try" structure and putting the "catch tErr" result into a text field, and it identifies the culprit as residing in the shorten()handler -- "error in function handler." Can anyone see why the following works on a Mac in the IDE and works on the Mac with development tools suspended, but doesn't work in the standalone on a Windows platform? I'm stuck.

The development cycle is made quite cumbersome by the fact that I don't have a Windows machine to develop this on.

function shorten tList
   repeat with n = 1 to the number of lines of tList
      put line n of tList into lineText
      if length(lineText) < 75 then next repeat
      put empty into tBefore
      put empty into tAfter
      if char 43 of line n of tList = space then
         put space into tBefore
      end if
      if char -25 of line n of tList = space then
         put space into tAfter
      end if
      put tBefore & "..." & tAfter into char 43 to -25 of of line n of tList
      -- 3 periods, not a numtochar(201)
   end repeat
   return tList
end shorten

-- Peter

Peter M. Brigham
pmbrig at gmail.com
http://home.comcast.net/~pmbrig





More information about the use-livecode mailing list