Stack with the same name loop

Mark Wieder ahsoftware at sonic.net
Thu Oct 7 21:51:00 EDT 2021


On 10/7/21 1:08 PM, Mark Wieder via use-livecode wrote:
> How about a fourth option to rename the stack in memory and continue?

...replying to myself...
I fixed reloadStack to allow a rename and be a little less scary.
I just edited the livecodescript file on disk and it so far seems to 
work in all my tests.

on reloadStack pStackName, pFileName
    if the filename of stack pStackName is pFileName then
       toplevel pStackName
    else
       set the defaultStack to pStackName

       local tFilePath, tFileLongPath
       put the effective fileName of stack pStackName into tFilePath
       put tFilePath into tFileLongPath
         if tFileLongPath is empty then
             put pStackName into tFileLongPath
             put comma && pStackName & "?" after tFilePath
         else
             put pStackName & "?" into tFilepath
         end if
       answer warning "A stack with the name"&&pStackName&&"is already 
open." & cr & "Before loading" && pFileName & ", what do you want to do 
with stack:" & cr & tFilePath with "Rename" or "Save" or "Purge" or "Cancel"
     local tAction
     put it into tAction
       if gREVSuppressMessages then
          lock messages
          send "revInsertMessageBlock" to me in 100 milliseconds
          revInternal__UnloadLibrary "revNoMessagesLibrary"
       end if

      local tLockMessages
       put the lockMessages into tLockMessages

      switch tAction
         case "Cancel"
             exit reloadStack
         case "Rename"
             ask "rename the stack in memory to"
             if it is not empty and it is not pStackName then
                 set the name of stack tFileLongPath to it
             end if
             set the lockMessages to tLockMessages
             go stack pFileName
             break
         case "Save"
          if the filename of stack pStackName is empty then
             revSaveAs pStackName
          else
             revSave pStackName
          end if
         case "Purge"
          revAOUpdateForDeleteStack pStackName
          lock messages
          delete stack pStackName
          set the lockMessages to tLockMessages
          go stack pFileName
             break
     end switch
    end if

    if there is a stack "revApplicationOverview" then
       send "revNewStack the short name of stack pFileName" to stack 
"revApplicationOverview"
    end if
end reloadStack

-- 
  Mark Wieder
  ahsoftware at gmail.com




More information about the use-livecode mailing list