/* ListSave.rexx */

options results; address MrMIDI; parse arg mode

ASLFR_DoPatterns	= 0x8008002E;	ASLFR_InitialDrawer	= 0x80080009
ASLFR_InitialFile	= 0x80080008;	ASLFR_InitialPattern	= 0x8008000A
MUIA_List_Entries	= 0x80421654;	MUIA_Window_Sleep	= 0x8042e7db

window ID WIND1 ATTRS MUIA_Window_Sleep 1
window ID WIND2 ATTRS MUIA_Window_Sleep 1
RC = 0
if mode = 1 then do
  aslrequest ATTRS ASLFR_InitialDrawer '"ENVARC:"' ASLFR_InitialFile,
    '"MrMIDI.list"' ASLFR_InitialPattern '"#?.list"' ASLFR_DoPatterns 1,
    TITLE '"Save the list"'
  temp_list = result
  end
else temp_list = "ENV:MrMIDI.list"
if RC = 0 then do
  if open(1, temp_list, 'w') then do
    list ID SLIST ATTRS MUIA_List_Entries; max = result
    do i = 0 to max - 1
      list ID SLIST POS i
      writeln(1, result)
    end
    call close(1)
  end /* of if open */
  else do
    temp_string = "Could not open the file '"temp_list"'."
    request ID WARN GADGETS '"OK"' temp_string
  end
end /* of if RC */
window ID WIND2 ATTRS MUIA_Window_Sleep 0
window ID WIND1 ATTRS MUIA_Window_Sleep 0
return
