Stack with the same name loop

Mark Wieder ahsoftware at sonic.net
Fri Oct 8 16:28:28 EDT 2021


On 10/8/21 8:24 AM, Bob Sneidar via use-livecode wrote:
> Where did you find this script? I am pondering adding this to my "scripts to replace when I download a new version" list.

It's in revbackscriptlibrary.livecodescript.
Here's an improved version that avoids that double cancel.

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 to top
         case "Rename"
             ask "Enter a name for the stack in memory"
             if it is not empty and it is not pStackName then
                 set the name of stack tFileLongPath to it
                 go stack pFileName
             else
                 exit to top
             end if
             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