/* $VER: 1.0, ©1996 Dietmar Eilert. Bookmark management */ OPTIONS RESULTS /* enable return codes */ arg mode if (LEFT(ADDRESS(), 6) ~= "GOLDED") then /* not started by GoldEd ? */ address 'GOLDED.1' 'LOCK CURRENT RELEASE=4' /* lock GUI, gain access */ if (RC ~= 0) then exit OPTIONS FAILAT 6 /* ignore warnings */ SIGNAL ON SYNTAX /* ensure clean exit */ /* ------------------------ INSERT YOUR CODE HERE: ------------------- */ if (mode = "ADD") then do 'QUERY BLOCK' if (RESULT = 0) then do 'REQUEST STATUS="Tip: Mark URL before you use this function"' NEWURL="http://" end else do 'FIND BLOCK' 'QUERY FIND VAR=NEWURL' end 'FIX VAR=NEWURL' 'REQUEST STRING TITLE="Add to address book: Bookmark name" VAR=NEWNAME OLD="unnamed"' call loadbookmarks /* add bookmark to bookmarks, save bookmark file */ if ((RC = 0) & (NEWNAME ~= "")) then do 'REQUEST STRING TITLE="Add to address book: URL" OLD="' || NEWURL || '" VAR=NEWURL' if (RC = 0) then do ENTRIES = ENTRIES + 1 BOOKMARK.ENTRIES.ENTRY_NAME = NEWNAME BOOKMARK.ENTRIES.ENTRY_URL = NEWURL call savebookmarks end end end else if (mode = "DEL") then do call loadbookmarks if (ENTRIES = 0) then 'REQUEST PROBLEM="Bookmark file empty"' else do /* show list of available bookmarks */ COMMAND /* remove bookmark from bookmarks, save bookmark file */ if (RC = 0) then do SELECTION = RESULT do ENTRY = 1 to ENTRIES if (BOOKMARK.ENTRY.ENTRY_NAME = SELECTION) then do BOOKMARK.ENTRY.ENTRY_NAME = BOOKMARK.ENTRIES.ENTRY_NAME BOOKMARK.ENTRY.ENTRY_URL = BOOKMARK.ENTRIES.ENTRY_URL ENTRIES = ENTRIES - 1 end end call savebookmarks end end end else do call loadbookmarks if (ENTRIES = 0) then 'REQUEST PROBLEM="Bookmark file empty"' else do /* show list of available bookmarks */ COMMAND /* insert URL of selected bookmark into text */ if (RC = 0) then do SELECTION = RESULT do ENTRY = 1 to ENTRIES if (BOOKMARK.ENTRY.ENTRY_NAME = SELECTION) then do ADDRESS = BOOKMARK.ENTRY.ENTRY_URL 'FIX VAR=ADDRESS' 'TEXT T="' || ADDRESS || '"' end end end end end /* ---------------------------- END OF YOUR CODE --------------------- */ 'UNLOCK' /* VERY important: unlock GUI */ exit SYNTAX: SAY "Sorry, error line" SIGL ":" ERRORTEXT(RC) ":-(" 'UNLOCK' exit /* ------------------------------ PROCEDURES ------------------------- */ loadbookmarks: ENTRIES = 0 if (open('bookmarks', 'golded:tools/www/bookmarks', 'R')) then do COMMAND = 'REQLIST SORT ' /* read bookmark file */ do forever NAME = readln('bookmarks') if (eof('bookmarks')) then break COMMAND = COMMAND || '"' || NAME || '" ' ENTRIES = ENTRIES + 1 BOOKMARK.ENTRIES.ENTRY_NAME = NAME BOOKMARK.ENTRIES.ENTRY_URL = readln('bookmarks') end OK = close('bookmarks') end else 'REQUEST PROBLEM="Bookmark file not found"' return savebookmarks: if (open('bookmarks', 'golded:tools/www/bookmarks', 'W')) then do do ENTRY = 1 to ENTRIES OK = writeln('bookmarks', BOOKMARK.ENTRY.ENTRY_NAME) OK = writeln('bookmarks', BOOKMARK.ENTRY.ENTRY_URL) end OK = close('bookmarks') end