REVO2700"ArchiveSearch2 X 5a------------------------------------------------------- -- stack "ArchiveSearch" -- -- archives at: -- OpenSubscriber (www.OpenSubscriber.com) -- Mail Archive (marc.theaimsgroup.com) -- Gmane (www.gmane.org) -- Nabble (www.nabble.com) -- Catalist (www.lsoft.com/lists/listref.html (no public content) -- Tile.net (www.tile.net) (no content) -- Goggle -- last resort for searches -- Yahoo -- not currently used ------------------------------------------------------- local messageA -- message array local tCurrentMessageNum ------------------------------------------------------- -- openStack ------------------------------------------------------- ON openStack local tTitle local tStacks IF there is an image "Logo.jpg" THEN -- MVC implementation for the threads controller IF there is a field "ThreadsTitle" THEN set the uLinkedField of field "ThreadsTitle" to the long name of field "MessageList" END IF start using "libDispatcher" RegisterEvent the long id of button "btnCopy", "enabled", the long id of field "MessageList" RegisterEvent the long id of button "btnReply", "enabled", the long id of field "MessageList" RegisterEvent the long id of image "Next", "enabled", the long id of field "MessageList" RegisterEvent the long id of image "Previous", "enabled", the long id of field "MessageList" RegisterEvent the long id of field "MessageList", "SortColumn", the long id of field "ThreadsTitle" RegisterEvent the long id of field "MessageList", "TabStops", the long id of field "ThreadsTitle" put the uRIP["name"] of image "Logo.jpg" into tTitle put space & the uRIP["version"] of image "Logo.jpg" after tTitle set the title of this stack to tTitle hide field "lblActualHits" SetMessageNumber 1 END IF END openStack ------------------------------------------------------- -- GetSubject ------------------------------------------------------- FUNCTION GetSubject pStrMessage local tStart, tEnd local tReturn put MatchWithin(pStrMessage, "", "") into tReturn return tReturn & "
" END GetSubject ------------------------------------------------------- -- GetUrl -- -- given a string url of the form -- "" -- extract the url, i.e., "http://...html" ------------------------------------------------------- FUNCTION GetUrl pUrl local tStrUrl local tPos put offset("href=", pUrl) + length("href=")-1 into tPos delete char 1 to tPos of pUrl -- we've found the list type (metacard or use-revolution) put offset(">", pUrl)-1 into tPos put char 1 to tPos of pUrl into tStrUrl -- get url doesn't work if the url is in quotes replace quote with "" in tStrUrl -- get rid of the single quotes, too replace "'" with "" in tStrUrl return tStrUrl END GetUrl ------------------------------------------------------- -- GetListType -- -- Given a url of the form -- "" -- extract the list type (metacard or use-revolution) -- Parameter: -- pUrl : the expanded url form -- Returns: -- single letter representing the list type: U,I,M ------------------------------------------------------- FUNCTION GetListType pUrl local tStrType local tPos put offset(">", pUrl) into tPos delete char tPos to -1 of pUrl set the itemdelimiter to "/" put item -3 of pUrl into tStrType IF "user" is in tStrType THEN put "U" into tStrType ELSE IF "use-" is in pUrl THEN put "U" into tStrType ELSE IF "improve-" is in pUrl THEN put "I" into tStrType ELSE IF "metacard" is in pUrl THEN put "M" into tStrType END IF return tStrType END GetListType ------------------------------------------------------- -- GetRootPath -- ------------------------------------------------------- FUNCTION GetRootPath pWhichMsg local tUrl local tPos put MessageUrl(pWhichMsg) into tUrl put offset("pipermail/", tUrl) + length("pipermail/") into tPos -- we've found the list type (metacard or use-revolution) put offset("/", tUrl, tPos) + tPos into tPos -- now we're up to the date part put offset("/", tUrl, tPos) + tPos into tPos -- now we've found the message number delete char tPos+1 to -1 of tUrl return tUrl END GetRootPath ------------------------------------------------------- -- SetMessageAttribute -- -- Save the message attribute in a local array -- Number, Date, URL, Author, Subject, Type -- Parameters: -- pWhichMessage : message number -- pKey : attribute type -- pValue : the attribute itself ------------------------------------------------------- ON SetMessageAttribute pWhichMessage, pKey, pValue put pValue into messageA[pWhichMessage, pKey] END SetMessageAttribute FUNCTION GetMessageAttribute pWhichMessage, pKey return messageA[pWhichMessage, pKey] END GetMessageAttribute FUNCTION CurrentMessageNumber return tCurrentMessageNum END CurrentMessageNumber ON SetMessageNumber pValue put pValue into tCurrentMessageNum END SetMessageNumber ON NextMessageNumber add 1 to tCurrentMessageNum END NextMessageNumber ------------------------------------------------------- -- GetMatchingMessage -- -- Find the message that matches the given URL -- Return its message number (index into messageA) ------------------------------------------------------- FUNCTION GetMatchingMessage pUrl local tMsg local tKeys put the keys of messageA into tKeys filter tKeys with "*url*" REPEAT for each line tLine in tKeys IF messageA[tLine] is pUrl THEN put item 1 of tLine into tMsg exit REPEAT END IF END REPEAT return tMsg END GetMatchingMessage ------------------------------------------------------- -- MessageAuthor ------------------------------------------------------- FUNCTION MessageAuthor pWhichMsg local tAuthor return tAuthor END MessageAuthor ------------------------------------------------------- -- MessageDate -- -- Return the date of the specified message -- by looking it up in the local array ------------------------------------------------------- FUNCTION MessageDate pWhichMsg --return messageA[pWhichMsg,"date"] return GetMessageAttribute(pWhichMsg, "date") END MessageDate ------------------------------------------------------- -- MessageType -- -- Return the type of the specified message -- by looking it up in the local array ------------------------------------------------------- FUNCTION MessageType pWhichMsg --return toUpper(char 1 of messageA[pWhichMsg,"type"]) return GetMessageAttribute(pWhichMsg, "type") END MessageType ------------------------------------------------------- -- MessageSubject -- -- Return the subject of the specified message -- by looking it up in the local array ------------------------------------------------------- FUNCTION MessageSubject pWhichMsg --return messageA[pWhichMsg,"subject"] return GetMessageAttribute(pWhichMsg, "subject") END MessageSubject ------------------------------------------------------- -- MessageUrl -- -- Return the URL of the specified message -- by looking it up in the local array ------------------------------------------------------- FUNCTION MessageUrl pWhichMsg --return messageA[pWhichMsg,"url"] return GetMessageAttribute(pWhichMsg, "url") END MessageUrl ------------------------------------------------------- -- MessageLib -- -- Return the library of the specified message -- by looking it up in the local array ------------------------------------------------------- FUNCTION MessageLib pWhichMsg --return messageA[pWhichMsg,"lib"] return GetMessageAttribute(pWhichMsg, "lib") END MessageLib ------------------------------------------------------- -- GetUrlType -- -- Parameters : -- pWhichMessage : message number -- pWhichType : ------------------------------------------------------- FUNCTION GetUrlType pWhichMessage, pWhichType local tStrThreads put GetRootPath(pWhichMessage) into tStrThreads put pWhichType & ".html" after tStrThreads return tStrThreads END GetUrlType ------------------------------------------------------- -- DeleteMessage -- -- Delete all messages from the local message array ------------------------------------------------------- ON DeleteAllMessages delete variable messageA END DeleteAllMessages ------------------------------------------------------- -- LookupMessage -- ------------------------------------------------------- FUNCTION LookupMessage pWhich return url (MessageUrl(pWhich)) END LookupMessage ------------------------------------------------------- -- DisplayMessageList -- -- Display the entire message list in the message list field -- Messages are displayed as: -- type date subject url ------------------------------------------------------- ON DisplayMessageList local theKeys local tSubjects local x local tKeyCount local tTest local tMessage put empty into field "MessageList" put the keys of messageA into theKeys put the number of lines in theKeys into tKeyCount REPEAT with x=1 to tKeyCount -- start with the message type put MessageType(x) & tab into tTest -- then the message date put MessageDate(x) into tMessage convert tMessage to system date put tMessage after tTest -- then the message subject put MessageSubject(x) into tMessage replace tab with space in tMessage -- finally add the message URL to the other data put tTest & tab & tMessage & tab & MessageUrl(x) into tMessage -- make sure there aren't any embedded CRs replace "
" with "" in tMessage replace cr with "" in tMessage -- see if there's anything there to display put tMessage into tTest replace tab with "" in tTest IF tTest is empty THEN next REPEAT ELSE put tMessage & "
" after tSubjects END IF END REPEAT delete char -4 to -1 of tSubjects -- remove last return set the htmltext of field "MessageList" to tSubjects END DisplayMessageList ------------------------------------------------------- -- GetSearchYear -- -- If the Year field is empty then return the current year -- Otherwise return the year specified ------------------------------------------------------- FUNCTION GetSearchYear local tDate, tYear -- default to the current year -- to cover the case where the field is empty put the date into tDate convert tDate to dateItems put item 1 of tDate into tYear IF field "fldYear" is not empty THEN put field "fldYear" into tYear END IF return tYear END GetSearchYear ------------------------------------------------------- -- MatchWithin -- -- Return the text between two text chunks -- -- Parameters: -- pRawText : text to extract chunk from -- pStartText : text chunk before the text of interest -- pEndText : text chunk after the text of interest -- Usage: -- get MatchWithin("hello, bucko!", "hel", "ko!") -- returns "lo, buc" ------------------------------------------------------- FUNCTION MatchWithin pRawText, pStartText, pEndText local tReturn local ch1, ch2 IF matchChunk(pRawText, \ "(?Uis)" & pStartText & "(.+)" & pEndText, \ ch1, ch2) THEN put char ch1 to ch2 of pRawText into tReturn END IF return tReturn END MatchWithin ------------------------------------------------------- -- Yahoo handlers -- -- The Yahoo handlers aren't being used right now. -- Yahoo goes out of its way to ensure that you can't view -- the group messages without viewing an advertising page -- first - this may be to discourage bots, but we're close -- enough to being a bot that I don't feel like circumventing -- their attempt to keep me out. I'm living withing the spirit -- of their UI. Yahoo messages are spawned off to a browser -- for viewing. ------------------------------------------------------- ------------------------------------------------------- -- Yahoo.GetOneMessage ------------------------------------------------------- FUNCTION Yahoo.GetOneMessage pRaw local tStart, tEnd, tStop, tReturn put "ok" into tReturn return tReturn END Yahoo.GetOneMessage ------------------------------------------------------- -- Yahoo.ParseOneLine ------------------------------------------------------- FUNCTION Yahoo.ParseOneLine pMessageNum, pRawLine local tReturn, tMsg, startPos, endPos local tUrl put empty into tReturn -- Get subject put Google.GetOneMessage(pRawLine) & "
" & cr into tMsg put GetSubject(tMsg) & cr into messageA[pMessageNum, "subject"] put GetUrl(tMsg) into tUrl replace quote with "" in tUrl put tUrl & cr into messageA[pMessageNum, "url"] put "Y" & cr into messageA[pMessageNum, "type"] put offset("nbsp;", pRawLine) into startPos put offset("<", pRawLine, startPos)+startPos into endPos put char startPos+6 to endPos-1 of pRawLine & cr into messageA[pMessageNum, "date"] set the itemdelimiter to "/" put the last item of messageA[pMessageNum, "url"] & cr into messageA[pMessageNum, "num"] put "ok" into tReturn return tReturn END Yahoo.ParseOneLine local tObservers H RArchive Search 2.4W7 UTahoma @UTahoma UTahoma UTahoma @UTahomaUTahomaWTahoma WTahoma WTahoma @WTahoma @UTahoma WTahoma @WTahoma @WTahoma"WTahoma UTahoma AUTahoma UTahoma AUTahoma WTahomaWTahomaWTahomaWTahoma@WTahomaWTahomaWTahomaUTahoma ULucida Grande WArial UArial WArial"@WTahomaWTahoma WSystem Terminal Fixedsys Roman Script Modern Small Fonts MS Serif Courier MS Sans Serif WST_Czec WST_Engl WST_Fren WST_Germ WST_Ital WST_Span WST_Swed CASLsym CASLbold CASLsym11 CASLlarge CASLsymbol7 CASLstd CASLled Marlett Arial Arial CE Arial CYR Arial Greek Arial TUR Courier New Courier New CE Courier New CYR Courier New Greek Courier New TUR Lucida Console Lucida Sans Unicode Times New Roman Times New Roman CE Times New Roman CYR Times New Roman Greek Times New Roman TUR Wingdings Symbol Verdana Arial Black Comic Sans MS Impact Georgia Palatino Linotype Tahoma Trebuchet MS Webdings Microsoft Sans Serif Bookshelf Symbol 1 Bookshelf Symbol 2 Bookshelf Symbol 3 Letter Gothic MT Century Schoolbook Times New Roman MT Extra Bold Jokerman LET John Handy LET Orange LET Academy Engraved LET University Roman LET Victorian LET Milano LET Smudger LET Westwood LET Ruach LET Rage Italic LET La Bamba LET Quixley LET Pump Demi Bold LET Tiranti Solid LET Mekanik LET One Stroke Script LET Highlight LET Odessa LET Scruff LET Broadway BT Square721 BT ParkAvenue BT Staccato222 BT Cataneo BT Blackletter686 BT Calligraph421 BT MisterEarl BT OldDreadfulNo7 BT HolidayPi BT ZWAdobeF Arial Narrow Book Antiqua Bookman Old Style Century Gothic Garamond Monotype Corsiva Wingdings 2 Wingdings 3 Nesf2 Haettenschweiler EngraverFontExtras EngraverFontSet EngraverTime EngraverTextNCS EngraverTextH EngraverTextT Jazz JazzCord JazzPerc JazzTextExtended JazzText Maestro Maestro Wide Maestro Percussion Petrucci Tamburo Sydnie @USystem Terminal Fixedsys Roman Script Modern Small Fonts MS Serif Courier MS Sans Serif WST_Czec WST_Engl WST_Fren WST_Germ WST_Ital WST_Span WST_Swed CASLsym CASLbold CASLsym11 CASLlarge CASLsymbol7 CASLstd CASLled Marlett Arial Arial CE Arial CYR Arial Greek Arial TUR Courier New Courier New CE Courier New CYR Courier New Greek Courier New TUR Lucida Console Lucida Sans Unicode Times New Roman Times New Roman CE Times New Roman CYR Times New Roman Greek Times New Roman TUR Wingdings Symbol Verdana Arial Black Comic Sans MS Impact Georgia Palatino Linotype Tahoma Trebuchet MS Webdings Microsoft Sans Serif Bookshelf Symbol 1 Bookshelf Symbol 2 Bookshelf Symbol 3 Letter Gothic MT Century Schoolbook Times New Roman MT Extra Bold Jokerman LET John Handy LET Orange LET Academy Engraved LET University Roman LET Victorian LET Milano LET Smudger LET Westwood LET Ruach LET Rage Italic LET La Bamba LET Quixley LET Pump Demi Bold LET Tiranti Solid LET Mekanik LET One Stroke Script LET Highlight LET Odessa LET Scruff LET Broadway BT Square721 BT ParkAvenue BT Staccato222 BT Cataneo BT Blackletter686 BT Calligraph421 BT MisterEarl BT OldDreadfulNo7 BT HolidayPi BT ZWAdobeF Arial Narrow Book Antiqua Bookman Old Style Century Gothic Garamond Monotype Corsiva Wingdings 2 Wingdings 3 Nesf2 Haettenschweiler EngraverFontExtras EngraverFontSet EngraverTime EngraverTextNCS EngraverTextH EngraverTextT Jazz JazzCord JazzPerc JazzTextExtended JazzText Maestro Maestro Wide Maestro Percussion Petrucci Tamburo Sydnie @WSystem Terminal Fixedsys Roman Script Modern Small Fonts MS Serif Courier MS Sans Serif WST_Czec WST_Engl WST_Fren WST_Germ WST_Ital WST_Span WST_Swed CASLsym CASLbold CASLsym11 CASLlarge CASLsymbol7 CASLstd CASLled Marlett Arial Arial CE Arial CYR Arial Greek Arial TUR Courier New Courier New CE Courier New CYR Courier New Greek Courier New TUR Lucida Console Lucida Sans Unicode Times New Roman Times New Roman CE Times New Roman CYR Times New Roman Greek Times New Roman TUR Wingdings Symbol Verdana Arial Black Comic Sans MS Impact Georgia Palatino Linotype Tahoma Trebuchet MS Webdings Microsoft Sans Serif Bookshelf Symbol 1 Bookshelf Symbol 2 Bookshelf Symbol 3 Letter Gothic MT Century Schoolbook Times New Roman MT Extra Bold Jokerman LET John Handy LET Orange LET Academy Engraved LET University Roman LET Victorian LET Milano LET Smudger LET Westwood LET Ruach LET Rage Italic LET La Bamba LET Quixley LET Pump Demi Bold LET Tiranti Solid LET Mekanik LET One Stroke Script LET Highlight LET Odessa LET Scruff LET Broadway BT Square721 BT ParkAvenue BT Staccato222 BT Cataneo BT Blackletter686 BT Calligraph421 BT MisterEarl BT OldDreadfulNo7 BT HolidayPi BT ZWAdobeF Arial Narrow Book Antiqua Bookman Old Style Century Gothic Garamond Monotype Corsiva Wingdings 2 Wingdings 3 Nesf2 Haettenschweiler EngraverFontExtras EngraverFontSet EngraverTime EngraverTextNCS EngraverTextH EngraverTextT Jazz JazzCord JazzPerc JazzTextExtended JazzText Maestro Maestro Wide Maestro Percussion Petrucci Tamburo Sydnie USystem Terminal Fixedsys Roman Script Modern Small Fonts MS Serif Courier MS Sans Serif WST_Czec WST_Engl WST_Fren WST_Germ WST_Ital WST_Span WST_Swed CASLsym CASLbold CASLsym11 CASLlarge CASLsymbol7 CASLstd CASLled Marlett Arial Arial CE Arial CYR Arial Greek Arial TUR Courier New Courier New CE Courier New CYR Courier New Greek Courier New TUR Lucida Console Lucida Sans Unicode Times New Roman Times New Roman CE Times New Roman CYR Times New Roman Greek Times New Roman TUR Wingdings Symbol Verdana Arial Black Comic Sans MS Impact Georgia Palatino Linotype Tahoma Trebuchet MS Webdings Microsoft Sans Serif Bookshelf Symbol 1 Bookshelf Symbol 2 Bookshelf Symbol 3 Letter Gothic MT Century Schoolbook Times New Roman MT Extra Bold Jokerman LET John Handy LET Orange LET Academy Engraved LET University Roman LET Victorian LET Milano LET Smudger LET Westwood LET Ruach LET Rage Italic LET La Bamba LET Quixley LET Pump Demi Bold LET Tiranti Solid LET Mekanik LET One Stroke Script LET Highlight LET Odessa LET Scruff LET Broadway BT Square721 BT ParkAvenue BT Staccato222 BT Cataneo BT Blackletter686 BT Calligraph421 BT MisterEarl BT OldDreadfulNo7 BT HolidayPi BT ZWAdobeF Arial Narrow Book Antiqua Bookman Old Style Century Gothic Garamond Monotype Corsiva Wingdings 2 Wingdings 3 Nesf2 Haettenschweiler EngraverFontExtras EngraverFontSet EngraverTime EngraverTextNCS EngraverTextH EngraverTextT Jazz JazzCord JazzPerc JazzTextExtended JazzText Maestro Maestro Wide Maestro Percussion Petrucci Tamburo Sydnie USystem Terminal Fixedsys Roman Script Modern Small Fonts MS Serif Courier MS Sans Serif WST_Czec WST_Engl WST_Fren WST_Germ WST_Ital WST_Span WST_Swed CASLsym CASLbold CASLsym11 CASLlarge CASLsymbol7 CASLstd CASLled Marlett Arial Arial CE Arial CYR Arial Greek Arial TUR Courier New Courier New CE Courier New CYR Courier New Greek Courier New TUR Lucida Console Lucida Sans Unicode Times New Roman Times New Roman CE Times New Roman CYR Times New Roman Greek Times New Roman TUR Wingdings Symbol Verdana Arial Black Comic Sans MS Impact Georgia Palatino Linotype Tahoma Trebuchet MS Webdings Microsoft Sans Serif Bookshelf Symbol 1 Bookshelf Symbol 2 Bookshelf Symbol 3 Letter Gothic MT Century Schoolbook Times New Roman MT Extra Bold Jokerman LET John Handy LET Orange LET Academy Engraved LET University Roman LET Victorian LET Milano LET Smudger LET Westwood LET Ruach LET Rage Italic LET La Bamba LET Quixley LET Pump Demi Bold LET Tiranti Solid LET Mekanik LET One Stroke Script LET Highlight LET Odessa LET Scruff LET Broadway BT Square721 BT ParkAvenue BT Staccato222 BT Cataneo BT Blackletter686 BT Calligraph421 BT MisterEarl BT OldDreadfulNo7 BT HolidayPi BT ZWAdobeF Arial Narrow Book Antiqua Bookman Old Style Century Gothic Garamond Monotype Corsiva Wingdings 2 Wingdings 3 Nesf2 Haettenschweiler EngraverFontExtras EngraverFontSet EngraverTime EngraverTextNCS EngraverTextH EngraverTextT Jazz JazzCord JazzPerc JazzTextExtended JazzText Maestro Maestro Wide Maestro Percussion Petrucci Tamburo Sydnie AUSystem Terminal Fixedsys Roman Script Modern Small Fonts MS Serif Courier MS Sans Serif WST_Czec WST_Engl WST_Fren WST_Germ WST_Ital WST_Span WST_Swed CASLsym CASLbold CASLsym11 CASLlarge CASLsymbol7 CASLstd CASLled Marlett Arial Arial CE Arial CYR Arial Greek Arial TUR Courier New Courier New CE Courier New CYR Courier New Greek Courier New TUR Lucida Console Lucida Sans Unicode Times New Roman Times New Roman CE Times New Roman CYR Times New Roman Greek Times New Roman TUR Wingdings Symbol Verdana Arial Black Comic Sans MS Impact Georgia Palatino Linotype Tahoma Trebuchet MS Webdings Microsoft Sans Serif Bookshelf Symbol 1 Bookshelf Symbol 2 Bookshelf Symbol 3 Letter Gothic MT Century Schoolbook Times New Roman MT Extra Bold Jokerman LET John Handy LET Orange LET Academy Engraved LET University Roman LET Victorian LET Milano LET Smudger LET Westwood LET Ruach LET Rage Italic LET La Bamba LET Quixley LET Pump Demi Bold LET Tiranti Solid LET Mekanik LET One Stroke Script LET Highlight LET Odessa LET Scruff LET Broadway BT Square721 BT ParkAvenue BT Staccato222 BT Cataneo BT Blackletter686 BT Calligraph421 BT MisterEarl BT OldDreadfulNo7 BT HolidayPi BT ZWAdobeF Arial Narrow Book Antiqua Bookman Old Style Century Gothic Garamond Monotype Corsiva Wingdings 2 Wingdings 3 Nesf2 Haettenschweiler EngraverFontExtras EngraverFontSet EngraverTime EngraverTextNCS EngraverTextH EngraverTextT Jazz JazzCord JazzPerc JazzTextExtended JazzText Maestro Maestro Wide Maestro Percussion Petrucci Tamburo Sydnie W Arial Black USystem @USystem WSystem"UTahoma@WTahoma @WArial @UArial UTahoma WGeneva Warial @Uarial Uarial@UTahomaWTahoma UTahomacGLXBreakpointscGlx2TimeStamp 1229005599start checksumRC)OS 1229022459start 1229360608start 1229002115start 1229005093start 1229023356start 1228997697start 1229023244start 1229349025start 1229359338start 1229359655start 1229360772start 1229005032start 1228997713working 1228997714working 1229359345end 1229022442start 1229022406start 1228997717working 1229103199start 1228997719working 1229103052start 1229005519start 1228997763end 1229360636start cGlx2GeneralcScriptChecksumCompilesForArchive3cExplicitVariablescHscrollScript0cLocals'messageA tCurrentMessageNum tObserverscHscrollHandlers0cSelectedChunkchar 9156 to 9176 cHtmlScript ks6$7>;yN<~DAj`PA$?3uh`X,1YFfL:4MIr"_F#ٳs*BM>&*|$Vq<6NE>4gġ%pQU~i,9~ۙOt2TaUTӌ+mg3%f'qLߒ gdPRV$f(n9 ,C_C~9%SBj2(/  IZI 52ҌL):g'}Hvnwi>UVB!NQ0^D?[3eFgD2A s=4" 3yg5xDAä']=IH:dO.J,S#9H^EAGG\"iB@3ʹSZk! G_<]\y(~nP#R [>$lKxdFK:b[B^W>RЬmFYxa^%ۨnұ5뉆01 nE$S CjmD/F C.rl+,'QK?l 3 "/4ZlM%71#CQPˉ#ȃֳɾ)42=H-;5!/^E#Dڻ,fˉ ( ^LD~4&MvgRx̄>@O8e%dC,LÝx@zqhRz3p pGښ(|d4{mwsGA!OՇ۾~^פo#N^+#tNm bzvp2tNC׮֧I%KC Ed { I•B'v:flj>JkDLÐÆ/;o5w_Wrϓ|>fItõ\Qa|]{l3lпT!O +cZ LMZuq&#& cuklPZܑ;c=ع w;r崵S()؃vjԔ?2"W3-Y|=dX23Ww,4Rߦbd&x̮ܶ´}ΩGM(`\Y3+dhţ,-z)*^C#qv%=s)4/X 7J7l3Tl_jY&0˦8j^G_:E) OJ CSv ]TŽd.[:p0n֙pBΞLL5aPL=ذaP`Y&FdR/!e[i-fn15FGF)C ڕHx;_jI:56L4d; v^7veU7xg,tzݬ|FmssrnoVF+OR%/4 _\u5t4pM0=q5cHandlersListWidth194 cConstantscHtmlHandlers)AK0񻟢l zPK7UdǴ>lYp̅z%_-k+C\ϼ'EQ̊rRx=JeOγ<ޘrZ>w8˧h\Uطம(@+v*U`-=πGv@9mdKOꓚ#:WcpQYubW* :$w肚6f ??$ƈ$\pZX#ԈnIR3$FL߿X n741z ~0bNO|͝A-uD< cDirtyFlagfalse cFolders all handlersCompilesForSave1 cHandlersCurrentMessageNumber() DeleteAllMessages DisplayMessageList GetListType() GetMatchingMessage() GetMessageAttribute() GetRootPath() GetSearchYear() GetSubject() GetUrl() GetUrlType() LookupMessage() MatchWithin() MessageAuthor() MessageDate() MessageLib() MessageSubject() MessageType() MessageUrl() NextMessageNumber openStack SetMessageAttribute SetMessageNumber Yahoo.GetOneMessage() Yahoo.ParseOneLine()cVscrollScript3705cVscrollHandlers0 cHilitedLine4 cGlobalsuDispatchEvents1enabled,field id 1187,card id 1002,ArchiveSearchbutton id 1067,card id 1002,ArchiveSearch button id 1124,card id 1002,ArchiveSearch image id 1146,card id 1002,ArchiveSearch image id 1148,card id 1002,ArchiveSearch 4SortColumn,field id 1186,card id 1002,ArchiveSearch)field id 1187,card id 1002,ArchiveSearch 2TabStops,field id 1186,card id 1002,ArchiveSearch)field id 1187,card id 1002,ArchiveSearch  cREVOnline fingerprintTN5E9P0HIXMYpXJRFnAV6g cREVLoadInforevEditScriptfalserevCloseStackfalse revNewToolfalse revMouseMovefalse cREVGeneral debugObjects8button id 1129 of card id 1002 of stack "Archive Search" breakPointscREVGeometryCachestackID1314uRIP creator3Ah, Software 2140 Shattuck #2420 Berkeley, CA 94704 copyrightThis work is licensed under the Creative Commons Attribution-ShareAlike 2.5 License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/2.5/ or send a letter to Creative Commons, 543 Howard Street, 5th Floor, San Francisco, California, 94105, USA.typeplugin descriptionSearches the online list archives Version 2.4 restricts archive searching to Gmane, since that's the one that's reliable. Links in messages are now handed off to a revBrowser window. name ArchiveSearchupdateInfoURL1http://www.ahsoftware.net/files/ArchiveSearch.xml downloadUrl1http://www.ahsoftware.net/files/ArchiveSearch.revhomeURL,http://www.ahsoftware.net/ArchiveSearch.htmldate 2008,12,11version2.4EULAYou're responsible for what you do with this. Note that the searches are handed off to Google,Gmane, and The Mail Archive and you are bound by their terms and licensing. card id 1002 P%--> all handlers ------------------------------------------------------- -- Change history: -- v2.01 -- mdw 06 December 2005 -- implemented polymorphism in GetContent -- v2.00 -- mdw 26 November 2005 -- started using matchChunk to return strings of interest ------------------------------------------------------- constant kStrGoogleNoDocs="did not match any " ------------------------------------------------------- -- openCard ------------------------------------------------------- on openCard put empty into field "lblMsgAuthor" put empty into field "lblMsgDate" put empty into field "lblMsgSubject" put empty into field "MessageList" put empty into field "MessageText" set the hilitedbutton of group "gpFilter" to 1 DoURIPThings end openCard on DoURIPThings set the title of this stack to "Archive Search" && the uRIP["version"] of this stack end DoURIPThings ------------------------------------------------------- -- GetPrevious -- -- Return the url for the previous message in the thread ------------------------------------------------------- function GetPrevious pStrMessage local tPos, tStart, tEnd local tStrPrevUrl local tReturn if matchchunk(pStrMessage, "(?s)Previous.+HREF=" & quote & "(.+)" & quote & ">", tPos, tEnd) then put char tPos to tEnd of pStrMessage into tReturn -- ELSE -- IF offset(pStrMessage, "sliceCur") <> 0 THEN -- -- work backwards to find the preceding tlitxt -- IF matchchunk(pStrMessage, "(?s)Previous.+HREF=" & quote & "(.+)" & quote & ">", tPos, tEnd) THEN -- put char tPos to tEnd of pStrMessage into tReturn -- END IF -- END IF end if put the cRootPath of field "MessageText" into tStrPrevUrl put tReturn after tStrPrevUrl return tStrPrevUrl end GetPrevious ------------------------------------------------------- -- GetNext -- -- Return the url for the next message in the thread ------------------------------------------------------- function GetNext pStrMessage local tPos, tStart, tEnd local tStrNextUrl local tReturn local tMatchString put "(?s)Next.+HREF=" & quote & "(.+)" & quote & ">" into tMatchString if matchchunk(pStrMessage, tMatchString, tPos, tEnd) then put char tPos to tEnd of pStrMessage into tReturn replace quote with "" in tReturn end if put the cRootPath of field "MessageText" into tStrNextUrl put tReturn after tStrNextUrl return tStrNextUrl end GetNext ------------------------------------------------------- -- GetAuthor -- -- Return the author of the current message ------------------------------------------------------- function GetAuthor pStrMessage local tReturn put GetMessageAuthor(pStrMessage) into tReturn return tReturn end GetAuthor ------------------------------------------------------- -- GetContent -- -- Return the content of the current message -- It's within
 
tags, so delete everything else ------------------------------------------------------- function GetContent pMessage put GetMessageContent(pMessage) into pMessage put StripSignature(pMessage) into pMessage return pMessage end GetContent ------------------------------------------------------- -- StripSignature -- ------------------------------------------------------- function StripSignature pMessageText local x, tNum -- see if we should strip properly-formatted signatures if the hilite of button "btnNoSigs" of card "Preferences" of stack "AboutArchiveSearch" then repeat with x=1 to the number of lines in pMessageText -- look for dash-dash-space if char -3 to -1 of line x of pMessageText is "-- " then put x into tNum end if end REPEAT if tNum > 0 then delete line tNum to -1 of pMessageText end if end if return pMessageText end StripSignature ------------------------------------------------------- -- GetSubjectUrl -- -- Return the url of the thread listing for the current month ------------------------------------------------------- function GetSubjectUrl pWhichMessage set the enabled of button "btnSubject" to true return GetUrlType(pWhichMessage, "subject") end GetSubjectUrl ------------------------------------------------------- -- GetAuthorUrl -- -- Return the url of the thread listing for the current month ------------------------------------------------------- function GetAuthorUrl pWhichMessage set the enabled of button "btnAuthor" to true return GetUrlType(pWhichMessage, "author") end GetAuthorUrl ------------------------------------------------------- -- GetMessage -- -- Combine all the above for a given url -- Get the info and set the field contents ------------------------------------------------------- on GetMessage pUrl local tRawText local tStart, tEnd local tTag local tLibrary put url pUrl into tRawText if tRawText is not empty then -- given properly-formed html, strip the head info if matchchunk(tRawText, "(?sUi)(.+)", tStart, tEnd) then --delete char tStart to tEnd of tRawText delete char 1 to tEnd of tRawText end if put GetTag(pUrl) into tTag if tTag is not empty then put GoToTag(tRawText, tTag) into tRawText end if put GetMessageTitle(tRawText) into field "lblMsgSubject" set the htmltext of field "lblMsgAuthor" to GetAuthor(tRawText) set the cUrl of image "Previous" to GetPrevious(tRawText) set the cUrl of image "Next" to GetNext(tRawText) put FormatHTMLText(tRawText) into tRawText set the htmltext of field "MessageText" to GetContent(tRawText) end if end GetMessage ------------------------------------------------------- -- FormatHTMLText -- -- The Transcript htmlText handler doesn't handle the indent tags -- properly, so we have to fake them here. -- Note that this expects simple formatting: -- if
    and
  • are in the same line or --
      and
    are in the same line or --
and
  • are in the same line then the formatting -- will get screwy. Fortunately Google doesn't do this. -- I did this to speed things up, but if Google gets weird about -- what they return the "else if" nesting can be removed and each -- conditional tested in turn. ------------------------------------------------------- function FormatHTMLText pRawText local tSpaceChar local tStrReturn put "" into tSpaceChar put empty into tStrReturn repeat for each line tLine in pRawText if "
      " is in tLine then put "--" after tSpaceChar else if "
    " is in tLine then delete char 1 to 2 of tSpaceChar else if "
  • " is in tLine then replace "
  • " with "
    " & tSpaceChar & "-- " in tLine end if put tLine & cr after tStrReturn end REPEAT return tStrReturn end FormatHTMLText ------------------------------------------------------- -- GetTag -- -- Only called by GetMessage ------------------------------------------------------- function GetTag pURL local tTag set the itemdelimiter to "#" if the number of items in pURL > 1 then put the last item of pURL into tTag end if return tTag end GetTag ------------------------------------------------------- -- GoToTag -- -- Only called by GetMessage ------------------------------------------------------- function GoToTag pHTML, pTag local tPos local tEnd if pTag is not empty then if matchchunk(pHTML, "(?sUi)" & pTag & ".+/>(.+)

    ", tPos, tEnd) then if (tPos > 0) and (tEnd > tPos) then put char tPos to tEnd of pHTML into pHTML end if end if end if return pHTML end GoToTag ------------------------------------------------------- -- DoSearch -- ------------------------------------------------------- function DoSearch pUrl local tRawText set the cursor to watch try set the httpheaders to "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)" get url pUrl if the result is empty then put it into tRawText else put the result into tRawText end if if tRawText is not empty then ProcessHTML tRawText end if end TRY return tRawText end DoSearch ------------------------------------------------------- -- ProcessHTML -- ------------------------------------------------------- on ProcessHTML pRawText if pRawText is not empty then -- First of all see if there's anything to process. If not -- then exit with the fields cleared. if kStrGoogleNoDocs is not in pRawText then -- delete the header garbage put DeleteHeaderAndTrailer(pRawText) into pRawText --put DeleteTrailer(pRawText) into pRawText -- now parse through the interesting stuff GetList pRawText end if end if end ProcessHTML function RemoveURLParameter pParameter, pUrl local tPos put offset(pParameter, pUrl) into tPos if tPos is not 0 then add length(pParameter) to tPos repeat while char tPos of pUrl is not "&" delete char tPos of pUrl end repeat end if return pUrl end RemoveURLParameter  R uWhichFieldAuthor cGlx2GeneralcScriptChecksumcExplicitVariablescHscrollScript0cLocalscHscrollHandlers0 cHtmlScript ZOH>E+ J; 'c ­Nб;m CEQU]]]_sHERW|pR&Ҭ2JG}&3 2ӑpg2SY@TL!+wiN)E|zh$bSa${0 4.D ee^w*pѿ+5@%Y2V ,JYZ*2?em@NK3';(g2O GU59Mt,ݩ0yzouWD^߼l(Y% .G11LK&y)Grn.)y;Y$ ZoLfrI &9Z^8$JW5Jg"Wmc`\kГ鬆a4_ ֊_TKzElp"Pbb%7Iv(eIi-q(v!Ƙ(\amTo}H#xmt\r lNG2^pHCZ2tZ2(S 7rƫ6?vˎZ쮂ے{F|}MԮ.2r9RzFoi^8۹}ohn//\{ztJA"s(`̉l2No(C˯#*V~&@C0i޸ftںpm݁>b>`ԴHIIm&JUZK;Sw2`£+ ؗhdBeƈ 6n}jltK*S57^(( YQ\sPs%JwWUb&m~8-L{9#5L.sOyDfE. 4$T+.:޹are! 1p_lH07I/ }34|lBrt|샺Q2KL-XB؎SH`77mnӺ;-k° slh׫PIMGo4b1RpL0odlY1V P'i \}}mbbIOa願H =Lr Zc@zid'&f6jtLmWkD m!?E/jw칳L.)YRwr;?}L?oM_cF*01V tٟKsS0 9hMdMp.XٔMɻ#z~r nm,7]l㜑ηEi\Y <\m+%0w6I_M6D5ZUfXc[7tDɪ]K:' >|#VL@qS `-D:Ԥؑ|,o*D4h'xΏ8_^fP:B@WHwJet2L<^dTS# 윽1Yx ;MSRr m @e ѱ Lfjr޴\D2FHKx, Ib%JxRTĩ$dH.6o^۾媒CsegxiC3|ﰻ/mڝ%.h&J'YGͤ=qcYj; -@}f ? rvt8G4ZD,nUJ{x`ә-J0 F !"io(0П>mcu\JЂN|iR 7%Jۛ`lĐ0-qDAy+W4r#[8~= |cԂ)UιZ3Ni:t>Zi#Evγl~ʕ-k<y݀PRؑ7ű]c`l)37l9L&غ ͪv @cٙ=j&YY{ ,)BAWB͠ ';Ő+S-6GO+,'L =kn7c{es|ajCz|J;4W$ 䲘4ԃP :;NAYa@+;zs-sYOǼecg %cSelectedChunkchar 9456 to 9455 cConstants%kStrGoogleNoDocs="did not match any "cHandlersListWidth163 cDirtyFlagfalsecHtmlHandlersj0 "0S(aatT8.md2ah~H Jy.v2Ei%؈jdy08"EY΃ePW2uGo;+_|@ps1]Q:WOwiJ}os< u42ֻ{c,O&<[#p>`Xk$>|?}ɟkv5LNm"ZkL#a cFolders all handlers cHandlersDoSearch() DoURIPThings FormatHTMLText() GetAuthor() GetAuthorUrl() GetContent() GetMessage GetNext() GetPrevious() GetSubjectUrl() GetTag() GoToTag() openCard ProcessHTML RemoveURLParameter() StripSignature()cVscrollScript3636cVscrollHandlers0 cHilitedLine cGlobalscGlx2TimeStamp& 1229354592start checksumpq}V? 1229360681start 1229349100start 1229266866working 1229198263start 1229266870working 1229023360start 1229344175start 1229266792start 1229022392start 1229198349start 1229198356working 1229002959working 1229343622start 1229359636start 1229266892working 1229103491start 1229266894working 1229266905working 1229266826working 1229266978start 1229002894working 1229344597start 1229198376start 1228997774start 1229359254start 1229198298start 1229348958start 1229198309working 1229002986working 1229266991working 1229003564start 1229266839start 1229005512start 1229359345start 1229002839start 1229022450start cREVGeneral breakPointscREVGeometryCacheIDs711327838599801185109773698482911011096581548643103910966574475691088109928847358811241115154682879114910981532656521113111490732258311361098147870290110910965852322411047111154540063911291132620625929120410965852322421048109840173688511171132701404751120510984016233631114109657531033610351132620642239120311329017656461211111515422538611481096505715869101111178241682151150109662318579110591098404329406112011114549867571126112970597844211541129705942667115210965755687441036109840170946411151098401715711111611328973820361172109814766402611061096648956521108411332090690141224111509230414911371096672268371170210966232497181063111515235179311471098147692598110710966232753291065109840420931611181132796235349118711328760631361196109657870775210371096623870735106910981479025861110109650461037210101096564433273102510966232194551061109662347167310671096585290901103111151522249721146113279622790111861098404324828111910981477155691108cREVGeometrycacheorder1097736984829 1096564433273 total55}qY   +-<@MVZ[\]^_`dipz|~{  lblNumHits cREVGeometryMaster,movevObjectSidebottomMaster,movehDistance-232MastertrueMaster,movevObjectRef 1096563986032Master,moveHObjectRefcardMaster,movevAbsolutetrue Master,movevtrueMaster,expectedRect716,106,854,127Master,scalebottomDistanceMaster,movevDistancefalseMaster,moveHObjectSiderightMaster,scalerightDistanceMaster,cardRanking1Master,scaleleftDistanceMaster,scaletopDistanceMaster,moveHAbsolutetrue Master,moveHtrue cREVGeneral revUniqueID 1096564433273 Number of hits to return  lblMsgDate 0on mouseUp put me into field "phraseText" put empty into field "searchText" put empty into field "someText" put empty into field "withoutText" send "mouseUp" to button "btnSearch" end mouseUp 4kDate of message cGlxGeneral object name lblMsgDate parent stack ArchiveSearch immed stack ArchiveSearch hilitedLine34props 

    6basics

    preview

    autoHilite false

    autoTab false

    blendLevel 0

    disabled false

    dontWrap true

    enabled true

    ID 1035

    invisible false

    lockText true

    name lblMsgDate

    opaque false

    style transparent

    text 30 September 2005

    toolTip Date of message

    traversalOn false

    visible true

    6borders

    borderColor black [inherited]

    borderWidth 2

    showBorder true

    showFocusBorder true

    4colors

    4editable

    6formatting

    threeD true

    bottomMargin 8

    firstIndent 0

    fixedLineHeight true

    hGrid false

    leftMargin 8

    margins 8,8,4,8

    rightMargin 4

    shadow false

    shadowOffset 4

    showLines false

    tabStops [empty]

    topMargin 8

    vGrid false

    wideMargins false

    4lists

    4patterns

    4position

    4size

    4text

    4custom [main]

    4custom [cGlxGeneral]

    4custom [cREVGeneral]

    4miscellaneous

    4global props

    4global vars

    scroll192 cREVGeneral revUniqueID 1096575310336  lblMsgSubject 0--> all handlers on mouseUp whichButton if whichButton is 3 then revmail the cMailAddress of field "lblMsgAuthor" else put me into field "phraseText" put empty into field "searchText" put empty into field "someText" put empty into field "withoutText" replace "Re:" with "" in field "phraseText" send "mouseUp" to button "btnSearch" end if end mouseUp B4Subject of message cGlx2GeneralcScriptChecksumcExplicitVariablescHscrollScript0cLocalscHscrollHandlers0 cHtmlScriptn0 w?Ł{n {& 1229343393working 1229344610end 1229344599start 1229022070working 1229022152start 1229343577start 1229022058start 1229343429working 1229343582start cREVGeneral revUniqueID 1096575568744  lblMsgAuthor 0ON mouseUp pWhichButton IF pWhichButton is 3 THEN revmail the cMailAddress of me ELSE put line 1 of me into field "searchText" put empty into field "phraseText" put empty into field "someText" put empty into field "withoutText" set the uWhichField of this card to "Author" send "mouseUp" to button "btnSearch" END IF END mouseUp p4 cMailAddress`http://gmane.org/get-address.php?address=mwieder%2dSXC%2b2es9fhkY%2beTVAdjFZg%40public.gmane.org7Message author - click here to search on author's name cGlxGeneral tabstops handlers

    mouseUp

    checksumB('Tt=%code

    ON mouseUp pWhichButton

    IF pWhichButton is 3 THEN

    revmail the cMailAddress of me

    ELSE

    put line 1 of me into field "searchText"

    put empty into field "phraseText"

    put empty into field "someText"

    put empty into field "withoutText"

    set the uWhichField of this card to "Author"

    send "mouseUp" to button "btnSearch"

    END IF

    END mouseUp

    dirtyfalsehandler_scroll0 varCheckingtrue handler_line9scroll0 object name lblMsgAuthor parent stack ArchiveSearchchunkchar 193 to 192 of field 5 immed stack ArchiveSearchcMotif Chalkboard cLinkModefalse cREVGeneral revUniqueID 1096578707752 breakpoints handlerListmouseUp  mnuNumHitseq ,A2010 20 30 50 100 cGlx2GeneralcScriptChecksumcExplicitVariablescHscrollScript0cLocalscHscrollHandlers0cSelectedChunk char 19 to 37 cHtmlScriptBյSHQHKI-*SM+ LV(p/NRԼ DҜ7cHandlersListWidth108 cConstantscHtmlHandlersc)I). EɶJƆƖJv6 qĜļԢb}B;.;5eKk4f&py *Yj cDirtyFlagfalse cFolders all handlers cHandlersmenuPickcVscrollScript0cVscrollHandlers0 cHilitedLine2 cGlobalscGlx2TimeStamp checksumُ B~ 1229349175end 1229349171start cREVGeneral revUniqueID 1096581548643 i cREVGeneral revUniqueID 1096585290901  searchText)pKon returnInField send "mouseUp" to button "btnSearch" end returnInField  cREVGeneral revUniqueID 1096504610372   phraseText)pKon returnInField send "mouseUp" to button "btnSearch" end returnInField 4 cREVGeneral revUniqueID 1096505715869   someText)pKon returnInField send "mouseUp" to button "btnSearch" end returnInField V cREVGeneral revUniqueID 1096585232241   withoutText)pKon returnInField send "mouseUp" to button "btnSearch" end returnInField y cREVGeneral revUniqueID 1096585232242  # lblSearch z cREVGeneral revUniqueID 1096623185791 with all the words % lblPhrase ! cREVGeneral revUniqueID 1096623219455 with the exact phrase 'lblSome C cREVGeneral revUniqueID 1096623249718 with at least one of the words ) lblWithout ez cREVGeneral revUniqueID 1096623275329 without the words+btnCopygpPon mouseUp set the clipboarddata["text"] to field "MessageText" end mouseUp  6"Copy the message to the clipboardg}Copy to clipboard cREVGeneral revUniqueID 1096623471673 bookmarks handlerListmouseUp tempScript prevHandlermouseUpscriptSelection char 95 to 94scriptuRIP triggersenabled - startMontheYfcanytime/anytime past 3 months past 6 months past year  cREVGeneral revUniqueID 1096623870735 < btnThread'wM--> all handlers constant kArchiveURL="http://lists.runrev.com/pipermail/use-revolution/2008-December/thread.html" on mouseUp local tRawText local tURL local tThreadDate -- put the thread view of the current month in the message pane set the cursor to watch put kArchiveURL into tURL put field "lblMsgDate" into tRawText set the itemdelimiter to "/" put the last item of tRawText & "-" into tThreadDate put line (item 1 of tRawText) of the monthnames after tThreadDate put tThreadDate into item -2 of tURL revGoUrl tURL end mouseUp 6BcUrlBhttp://article.gmane.org/gmane.comp.ide.revolution.user/index.html(View the specified month in thread viewq by thread cGlx2GeneralcScriptChecksumcExplicitVariablescHscrollScript0cLocalscHscrollHandlers0 cHtmlScriptEmQj0 +Dc;z]Ki?@uL9nS˜yzzORj CǔrӘ`~Oƺ3o_f%/&zݻGzȤ y^-/jCm>od*]U٠PE~~Kpu c̐0>B='U)LH 6FQ4Jzt||_HDRZޕFcʪndaldkiC$ all handlers on mouseDown whichButton local theLink, theUrl, rawText if whichButton is 3 then -- if the right button is down then -- send mail to the author revmail the cMailAddress of field "lblMsgAuthor" else select empty select the clicktext -- follow the link (url or email address) if the textstyle of the selectedtext is "link" then put the selectedtext into theLink put linktext of the selectedtext into theUrl replace " at " with "@" in theLink if "@" is in theLink then -- it's an email address - launch the email app revGoURL("mailto:" & theLink) else -- it's not an http: link - get the corresponding message if char 1 to 4 of theUrl is not "http" then if char 1 of theUrl is "/" then delete char 1 of theUrl end if put the cRootPath of me before theUrl try GetMessage theUrl catch e revGoURL theUrl end try else -- it's a url - launch the default web browser -- this is for the yahoo groups button that doesn't work here --if the hilitedButton of group "gpFilter" is 5 then --revGoURL(theUrl) --else --set the htmltext of field "MessageText" to url(theUrl) lock screen set the altHomeURL of stack "ArchiveBrowser" to theUrl get revBrowserOpen(the windowid of stack "ArchiveBrowser", theUrl) if the result is not a number then answer the result else go stack "ArchiveBrowser" end if --end if unlock screen end if end if else select empty end if end if end mouseDown J cRootPath8http://article.gmane.org/gmane.comp.ide.revolution.user/cMsgUrlPhttp://article.gmane.org/gmane.comp.ide.revolution.user/117577/match=mark+wieder cGlx2GeneralcScriptChecksumcExplicitVariablescHscrollScript0cLocalscHscrollHandlers0cSelectedChunkchar 2056 to 2055 cHtmlScriptVMo0 W:-Pc]zbXwhXbӑY2$^H0Cz|x90Wc%z^.|~w#/@oCom&(EVQ ڭ!8>&4ڲtG&$pGUUĔ P[t(qOi{T6DaIMKlCCXup.qEઋBd F1\,ƌ%ޡD'@JLAV%Ifh!ʨEO%kxduDPzKWE?U>Mo'2|irQYxBVHS>`A8"G_Y9\ჴ㧱\F)+^pndޟU|3EL>*C_eaux~5^JMӚ4WjK,.x zmֺs=n`C0QO<1 1tm.02<3U/3kALw%K)Aml}^8 Pؙ 5n0ƋsUnx%%<2J+GhPfg4X oir#g^"+buZ`z0Ig3w >f4_n5!rRa%s|tZ0<ٚ1?C> ]ɏcHandlersListWidth104 cConstantscHtmlHandlersd)I). EɶJƆƖJv6 qĜļԢb}B;.;5eKk4f&pũ.y -{k cDirtyFlagfalse cFolders all handlers cHandlers mouseDowncVscrollScript85cVscrollHandlers0 cHilitedLine cGlobalscGlx2TimeStamp 1229001037working checksumI<1>Pɶ 1229001023working 1229002147start 1229001852start 1229000943start 1229000945working 1229002169working 1229005575start 1229001744start 1229001880working 1229001763working cREVGeometryMaster,scaleBottomObjectSideBottomMaster,movehDistancefalseMaster,scaleRightscaleBottomtrueMastertrueMaster,scaletopObjectRef 1096504001576Master,scaleBottomObjectRefcardMaster,scaleBottomAbsolutetrueMaster,scaleBottomtrueMaster,scaletopObjectSidebottomMaster,movevDistancefalseMaster,scalebottomDistance-35Master,expectedRect 3,258,841,484Master,scaleRightAbsolutetrueMaster,scaleRighttrueMaster,scalerightDistance-4Master,scaleRightObjectSideRightMaster,scaleRightObjectRefcardMaster,scaletopAbsolutetrueMaster,scaletoptrueMaster,cardRanking2Master,scaletopDistanceMaster,scaleleftDistance cREVGeneral revUniqueID 1097736984829 breakPoints  N `@K  a@" V gpFilter $i 2Z Search in cREVGeneral revUniqueID 1098147902586RrdoUse`<Use-Revolution onlytrue cREVGeneral revUniqueID 1098147664026  S rdoMetaCard`dJMetaCard only cREVGeneral revUniqueID 1098147692598  T rdoExternals`dXExternals only cREVGeneral revUniqueID 1098147715569  f rdoEducation`dgEducation only cREVGeneral revUniqueID 1111454986757  UrdoAll`dv All lists cREVGeneral revUniqueID 1098147870290  Z Graphic 1KD  h cREVGeneral revUniqueID 1098401623363[ Graphic 1KD & h cREVGeneral revUniqueID 1098401709464\ Graphic 1KD H h cREVGeneral revUniqueID 1098401715711] Graphic 1KD j h cREVGeneral revUniqueID 1098401736885^ btnSubject'wk--> all handlers -- on mouseUp -- local tRawText -- local tUrl -- local tPos -- local tLine -- put "libGmane" into tLine -- -- put the thread view of the current month in the message pane -- set the cursor to watch -- put the cUrl of button "btnSearch" into tUrl -- put RemoveURLParameter("query=", tUrl) into tUrl -- replace "query=" with "query=" & field "lblMsgSubject" in tUrl -- replace cr with "" in tUrl -- -- remove "author" tag if it's present -- put RemoveURLParameter("author=", tUrl) into tUrl -- replace space with "+" in tUrl -- insert the script of stack tLine into front -- put DoSearch(tUrl) into tRawText -- DisplayMessageList -- remove the script of stack tLine from front -- end mouseUp --> all handlers constant kArchiveURL="http://lists.runrev.com/pipermail/use-revolution/2008-December/subject.html" on mouseUp local tRawText local tURL local tThreadDate -- put the thread view of the current month in the message pane set the cursor to watch put kArchiveURL into tURL put field "lblMsgDate" into tRawText set the itemdelimiter to "/" put the last item of tRawText & "-" into tThreadDate put line (item 1 of tRawText) of the monthnames after tThreadDate put tThreadDate into item -2 of tURL revGoUrl tURL end mouseUp 6>cUrlDhttp://article.gmane.org/gmane.comp.ide.revolution.user/subject.html)View the specified month in subject view by subject cGlx2GeneralcScriptChecksumcExplicitVariablescHscrollScript0cLocalscHscrollHandlers0 cHtmlScript+Tn0+Z4@ 0N.Wv]R#+N{ pwv.Q~ccQ^EXViN'xȐ.ڎsʃSцڈ ϲחP癏Bms ,# ˛L2dM S4C)ZicSelectedChunkchar 303 to 358 cConstantsYkArchiveURL="http://lists.runrev.com/pipermail/use-revolution/2008-December/subject.html"cHandlersListWidth114 cDirtyFlagfalsecHtmlHandlersL)I). EɶJ&&Jv6 qĜļԢb}B;.25@X/Xq cFoldersall handlers all handlers cHandlersmouseUpcVscrollScript0cVscrollHandlers0 cHilitedLine cGlobalscGlx2TimeStamp& 1229199142working 1229267039working 1229354602start 1229198415start 1229199145working checksumW2fBp*Ѳ 1229198570working 1229199067start 1229343206start 1229198889start 1229198737working 1229266950start 1229199155start 1229198823working 1229267054working 1229198509working 1229354541start 1229266962working 1229267310start 1229198441working 1229266968working 1229343230working 1229198598working 1229199106start 1229199177working 1229266975working 1229354405start 1229199187working 1229198461working 1229199119start 1229199202working 1229268376start 1229354418end 1229266998start 1229198555working 1229198801start 1229268391start 1229343581end cREVGeneral revUniqueID 1098404209316 breakPoints _ btnAuthor'wB--> all handlers -- on mouseUp -- local tRawText -- local tUrl -- local tPos -- local tLine -- put "libGmane" into tLine -- -- put the thread view of the current month in the message pane -- set the cursor to watch -- put the cUrl of button "btnSearch" into tUrl -- put RemoveURLParameter("author=", tUrl) into tUrl -- replace "author=&" with "author=" & field "lblMsgAuthor" & "&" in tUrl -- -- remove existing query string -- put RemoveURLParameter("query=", tUrl) into tUrl -- replace space with "+" in tUrl -- insert the script of stack tLine into front -- put DoSearch(tUrl) into tRawText -- DisplayMessageList -- remove the script of stack tLine from front -- end mouseUp --> all handlers constant kArchiveURL="http://lists.runrev.com/pipermail/use-revolution/2008-December/date.html" on mouseUp local tRawText local tURL local tThreadDate -- put the thread view of the current month in the message pane set the cursor to watch put kArchiveURL into tURL put field "lblMsgDate" into tRawText set the itemdelimiter to "/" put the last item of tRawText & "-" into tThreadDate put line (item 1 of tRawText) of the monthnames after tThreadDate put tThreadDate into item -2 of tURL revGoUrl tURL end mouseUp 6BcUrlhttp://search.gmane.org/?query=&email=http://gmane.org/get-address.php?address=mwieder%2dSXC%2b2es9fhkY%2beTVAdjFZg%40public.gmane.org&group=gmane.comp.ide.revolution.user&sort=date&DEFAULTOP=and&query=(View the specified month in author view by author cGlx2GeneralcScriptChecksumcExplicitVariablescHscrollScript0cLocalscHscrollHandlers0 cHtmlScript"Tj0}W=]>- ](B6ȓXT4Nڿߑb3gnLh:a[ >TU]3gqCM_1zN p-Otyta|ȸV{#,p,Œ N6<%HރEj#A&f<(G+ek"roDʟoeYF5wz(0\ 9?'뫏z-$l9HٓNn2[w 0ef+/*{sz:MršQJJ~c^+P籥#SJAK7x^RR0vvE)IKi>(3d=O5c/%_;RRnykMaa!izՃ7BkBP9\_ l7@Xth4R]بNUy|J$_ňE!\wc !iA+CR$3S4"`J)(יvRcKw4ꁉ]|PI$9c_ @cSelectedChunk char 90 to 89 cConstantsVkArchiveURL="http://lists.runrev.com/pipermail/use-revolution/2008-December/date.html"cHandlersListWidth173 cDirtyFlagfalsecHtmlHandlersL)I). EɶJ&&Jv6 qĜļԢb}B;.25@X/Xq cFoldersall handlers all handlers cHandlersmouseUpcVscrollScript0cVscrollHandlers0 cHilitedLine cGlobalscGlx2TimeStampU 1229103060start 1229023346start 1229343584end 1229023347start 1229023824start 1229023663working 1229102965start 1229199147start 1229102973start 1229198265start 1229342557start 1229102978working 1229103394start 1229023529working 1229023053start 1229263741start 1229022165start 1229022169working 1229103101working 1229267151start 1229023703working 1229198285start 1229102996working 1229102371start 1229267159working 1229266910start 1229343160start 1229023553working 1229023403start 1229023078working 1229023406working 1229267333start 1229343168working 1229023561working 1229023086working 1229199207start 1229268383start 1229103443start 1229198321start 1229199051start 1229268400working 1229266934working 1229343185working 1229103292start 1229268397start 1229103305working checksum6k{:JD# 1229023117working 1229023270start 1229022856start 1229023434working 1229103311start 1229022545start 1229199069start 1229023123working 1229103314working 1229023278working 1229023605working 1229023757start 1229342952start 1229199240working 1229199078working 1229023284working 1229023132working 1229023599working 1229102899start 1229103011start 1229103328working 1229023302start 1229199101working 1229022882working 1229023307working 1229022418start 1229199114start 1229266831start 1229023801start 1229022274start 1229103194start 1229103206start 1229198236start 1229342527start 1229198393start 1229022927working 1229023657start 1229267270start cREVGeneral revUniqueID 1098404324828 breakPoints `btnDate'wK--> all handlers constant kArchiveURL="http://lists.runrev.com/pipermail/use-revolution/2008-December/date.html" on mouseUp local tRawText local tURL local tThreadDate -- put the thread view of the current month in the message pane set the cursor to watch put kArchiveURL into tURL put field "lblMsgDate" into tRawText set the itemdelimiter to "/" put the last item of tRawText & "-" into tThreadDate put line (item 1 of tRawText) of the monthnames after tThreadDate put tThreadDate into item -2 of tURL revGoUrl tURL end mouseUp a6BcUrlChttp://blog.gmane.org/gmane.comp.ide.revolution.user/month=20081201&View the specified month in date view5by date cGlx2GeneralcScriptChecksumcExplicitVariablescHscrollScript0cLocalscHscrollHandlers0 cHtmlScriptFmQj0 +c;z]Ki?@ML9nSX yzzOz CǔrӴ1d Zδ~)+ҿ.K^!$:/MzJ!.hA\ f\ LB +U>o<[d-^v#sw6vTQ_Ry:] +)Qc .TSx"1\21DF F)o6VʧvF',/ꤌ+,U#$daldkiC$ all handlers on mouseUp local tAuthorAddress, tMailAddress local tSubject local tPos put the cMailAddress of field "lblMsgAuthor" into tAuthorAddress put tAuthorAddress into tMailAddress put field "lblMsgSubject" into tSubject put offset("address=", tMailAddress) into tPos if tPos > 0 then delete char 1 to tPos+7 of tMailAddress end if revmail urlencode(tMailAddress) & "?subject=" & tSubject if tAuthorAddress contains "gmane" then set the altHomeURL of stack "ArchiveBrowser" to tAuthorAddress get revBrowserOpen(the windowid of stack "ArchiveBrowser", tAuthorAddress) if the result is not a number then answer the result else go stack "ArchiveBrowser" end if end if end mouseUp 6M+Post a reply about the message to the list!qReply cGlx2GeneralcScriptChecksumcExplicitVariablescHscrollScript0cLocalscHscrollHandlers0cSelectedChunkchar 392 to 391 cHtmlScriptauSMO0 WX9Ml8m80@Yⶁ4}6ۚ|hZ]6Ѻٌ t3Ip %[Iiѹ%-W:F᧥<ALjj L5,x|!)z-* ,D=UTcJvr! <$Sf(G-)DCj[V$q^NFkO$&8`M Rc4:lkJ>ߒ<VYѪ#XMM3fX{e$J\^1.ΔIŠ=( all handlers ------------------------------------------------------- -- Archive Searcher -- Mark Wieder / Ah, Software 2004 -- mwieder@ahsoftware.net -- released under Creative Commons licensing -- the license agreement is in the uRIP["copyright"] custom property of the stack. -- -- hand off the search function to Google. -- http://www.google.com/search?as_q=Scrabble&num=10&hl=en&ie=UTF-8&btnG=Google+Search&as_epq=&as_oq=db&as_eq=&lr=&as_ft=i&as_filetype=&as_qdr=m3&as_nlo=&as_nhi=&as_occt=any&as_dt=i&as_sitesearch=lists.runrev.com&safe=images -- http://www.google.com/search?as_q=Scrabble&num=20&hl=en &btnG=Google+Search&as_epq=&as_oq= &as_eq=&lr=&as_ft=i&as_filetype=&as_qdr=m3 &as_occt=any&as_dt=i&as_sitesearch=lists.runrev.com%2Fpipermail%2Fuse-revolution -- http://www.google.com/search?as_q=external&num=10&hl=en&c2coff=1&btnG=Google+Search&as_epq=&as_oq=&as_eq=&lr=&as_ft=i&as_filetype=&as_qdr=all&as_occt=any&as_dt=i&as_sitesearch=lists.runrev.com&as_rights=&safe=images -- to search the HyperCard group at yahoo: -- http://finance.groups.yahoo.com/group/HyperCard/messagesearch?query=externals -- There doesn't seem to be a way to specify how many messages to return. -- but there's a link to get the next 20: -- "/group/HyperCard/messagesearch/23919?query=externals" -- the Yahoo syntax seems to be: -- message start: "/group/HyperCard/message/" followed by messageNumber -- To search the list archives at gmane: -- http://search.gmane.org/?query=externals&email=&group=gmane.comp.ide.revolution.user&sort=date&DEFAULTOP=and&xP=externals.&xFILTERS=Gcomp.ide.revolution.user---A -- http://article.gmane.org/gmane.comp.ide.revolution.user/35017/match=externals /* 24321 Re: External to install externals Mark Schonewille ecognoompje Sat  2/26/2005 */ -- messages content ends conveniently with -- Yahoo groups are problemmatic without handing the search results off -- to a web browser. -- Plugins: -- the name must start with "lib" -- each plugin library needs the following functions : -- -- MakeUrl() -- DeleteHeader() -- DeleteTrailer() -- GetList() ------------------------------------------------------- -- Change history: -- version 2.2 23 November 2006 -- started adding libOpenSubscriber -- version 2.13 6 February 2006 -- fixed the name of the about stack -- ...this was stopping searches from executing... -- version 2.11 19 December 2005 -- put the plugin libraries into frontStacks -- put a "try" construct into DoSearch to avoid errors -- version 2.00 06 December 2005 -- implemented polymorphism in the plugin libraries -- version 1.90 22 November 2005 -- started integrating the MailArchive listings -- cleaned up code: separated into archive types -- reworked things for the new Google layout -- added substacks for the various archive types -- version 1.80 21 November 2005 -- started gmane archive search facility -- -- version 1.61 3 May 2005 -- replaced numeric constants in FilterList with button labels -- added search for education list, but it isn't indexed at Google yet ------------------------------------------------------- -- Google constants (start and end of interesting text) constant kStrGoogleNoDocs="did not match any " -- Yahoo constants (start and end of interesting text) constant kStrYahooStartTag="Subject" constant kStrYahooCloseTag=">" constant kStrYahooEndTag="" constant kStrYahooNoDocs="did not match any documents" -- Usenet constants (start and end of interesting text) constant kStrUsenetStartTag="
    " constant kStrUsenetEndTag="" -- Yahoo constants constant kStrYahooRoot="http://finance.groups.yahoo.com" constant kStrYahooURL="http://finance.groups.yahoo.com/group/HyperCard/messagesearch?query=" on mouseUp local rawText, tUrl local strAllWords, strExactPhrase, strSomeWords, strWithoutWords local tPlugIns InitializeSearch put FormatSearchPhrase("searchText") into strAllWords put FormatSearchPhrase("phraseText") into strExactPhrase put FormatSearchPhrase("someText") into strSomeWords put FormatSearchPhrase("withoutText") into strWithoutWords if strAllWords is empty \ and strExactPhrase is empty \ and strSomeWords is empty \ and strWithoutWords is empty then exit mouseUp end if show image "Gears" set the uLastMessage of me to empty -- see which archives the user wants to search. -- each archive has an associated "lib"whatever substack -- these stack names will be returned one per line put GetPlugins() into tPlugIns repeat for each line tLine in tPlugins if ShouldSearch(tLine) is true then insert the script of stack tLine into front InitializePlugin -- MakeUrl is in the appropriate substack put MakeUrl(strAllWords, strExactPhrase, strSomeWords, strWithoutWords) into tUrl set the uUrl of me to tUrl put DoSearch(tUrl) into rawText remove the script of stack tLine from front end if end REPEAT -- Now we've got our result. -- Parse through what they sent us and stuff it into an array. -- Put the info into the message list field. -- This relies heavily on knowing how Google will format the data. -- It is correct as of 24 November 2005. if rawText is not empty then DisplayMessageList end if hide image "Gears" end mouseUp on InitializeSearch put empty into field "MessageList" put empty into field "MessageText" put empty into field "lblMsgDate" put empty into field "lblMsgAuthor" put empty into field "lblMsgSubject" disable button "btnCopy" disable button "btnReply" hide field "lblActualHits" DeleteAllMessages end InitializeSearch function GetPlugins -- local tStackList -- put the substacks of this stack into tStackList -- filter tStackList with "lib*" -- return tStackList return "libGmane" end GetPlugins ------------------------------------------------------- -- FormatSearchPhrase -- Given the name of a field, format it for a url. -- 1. replace spaces with "+" -- 2. delete trailing carriage returns -- Return the url-formatted string ------------------------------------------------------- function FormatSearchPhrase pWhichField local tString put field pWhichField into tString --replace space with "+" in tString -- remove the trailing cr if the last char of tString is cr then delete the last char of tString end if return urlencode(tString) end FormatSearchPhrase ------------------------------------------------------- -- ----------- Yahoo-specific routines ------------------- -- ------------------------------------------------------- on Yahoo.GetList pRawText local tDel local tMsgNum put 1 into tMsgNum put offset(" 20 then -- max of 20 hits from yahoo subtract 1 from tMsgNum exit REPEAT end if delete char 1 to tDel of pRawText end REPEAT end Yahoo.GetList ------------------------------------------------------- -- YahooGetResults ------------------------------------------------------- function Yahoo.GetResults pStrSearch local tURL put kStrYahooURL & pStrSearch into tURL return tURL end Yahoo.GetResults ------------------------------------------------------- -- ShouldSearch ------------------------------------------------------- function ShouldSearch pArchive local tWhichArchive local tReturn put char 4 to -1 of pArchive into tWhichArchive if there is a button ("chk" & tWhichArchive) of card "Preferences" of stack "AboutArchiveSearch" then put the hilite of button ("chk" & tWhichArchive) of card "Preferences" of stack "AboutArchiveSearch" into tReturn end if return tReturn end ShouldSearch ---------------- -- the end ---------------- ĈZuUrlkhttp://search.gmane.org/?query=+Mark+Wieder+&author=&group=comp.ide.revolution.user&sort=date&DEFAULTOP=andcUrllhttp://search.gmane.org/?query=+usb&author=&group=comp.ide.revolution.user&sort=date&TOPDOC=30&DEFAULTOP=and uLastMessagePerform the search7Search cGlx2GeneralcScriptChecksumcExplicitVariablescHscrollScript0cLocalscHscrollHandlers0cSelectedChunkchar 5132 to 5131 cHtmlScript YS9_s 66qI( ڽJ3eFH_wK2σZ0wzeCAP'+Ȗ>Po\3.S]X;:-лOX8aO.1̰O9mv;l9E .3$ljt3؂ϴia"W>z^&{~,*CQ$]@u,ªW3es rɂe0+y0n\8߈WR]!T*Sp+R"zX`CòQYY~Ge](oH`%&ցVvNS=6TRdc(dOЛj#Shzwiʹ,G`l;$ӁLD.Xm0Nt.O/A%asstrzqx>^CH!uj)fq]MGgv+eA}o𑳙#a)P*tꢏ=<+3εuPnmfmdyj~[;>LW"Uw|,>S?]jx4(R-J%R0040͌* SDT)=7H|.O=$( B(g2_'1`uW5֡,7m70X9o[(ekXCOwdC VJ?x0L䕖6Ad[4T PV>Bה&*jqe8OrES"0Vܺat`z,Q QU Bkkm׈}y~xvwю/ s 8Oc„ 3t0,Q1f1 l _,j|@&RIu1).WO/POSy^ahvu-XaH mjb 24eivgwd@ðq]8qN 9+ tMHXة}/6]^/vO?I*~( j[-ToXH4oU DiCXn{c_G%˧*ღ!KfW1!՚7zYҷ ;IimPz S'K9`ä&H"1<KI7uz'*W-CTvNԢk,,=>PgPTLƽrE Q& @FuGX ʚGtÐ =Ǐ_b1-4xEj֗"[rx?8z2U%Y(4shc JPJ\H볰>lYLk*JjIV*H"Cza8@VkQ$ 7qZ@X/K-7p6o^ Ѐx`f&4%^4F|r:"e(Ӣg+_!0:_^+GCiK|Z+w8QQ|n٢T%h7/EЦܱ䒁(D1D6 Uo[|14uF kB~ Rz5y E+ ߇ n6s啻-w`[{]HD"cHandlersListWidth204 cConstantsWkStrGoogleNoDocs="did not match any " kStrYahooStartTag="Subject" kStrYahooCloseTag=">" kStrYahooEndTag="" kStrYahooNoDocs="did not match any documents" kStrUsenetStartTag="
    " kStrUsenetEndTag="" kStrYahooRoot="http://finance.groups.yahoo.com" kStrYahooURL="http://finance.groups.yahoo.com/group/HyperCard/messagesearch?query="cHtmlHandlersб 0ݧ(DC ŘQlC6!,>Srq 'C }1m)_y cDirtyFlagfalse cFolders all handlers cHandlersjFormatSearchPhrase() GetPlugins() InitializeSearch mouseUp ShouldSearch() Yahoo.GetList Yahoo.GetResults()cVscrollScript1567cVscrollHandlers0 cHilitedLine5 cGlobalscGlx2TimeStamp` 1229023184start 1229361251start 1229103223start 1228676283working 1228746044start 1229102967start 1229361576working 1229343595start 1229361741start 1228992029start 1228754710start 1228746053working 1229103393start 1229023366start 1229344179start 1229022640start 1229359384start 1229198276start 1228676466end 1229344186start 1229361278working 1229354471start 1229359718start 1228754732working 1229361765working 1229198290start 1229102999start 1229343633start 1229354792start 1229359247working 1228991805start 1228756362start 1229347195start 1228754744working 1229362201start 1228754745working 1229198313start 1229199042start 1229022356start 1228992069end 1229359261start 1229359738working 1229362206working 1228991657start 1229343963start 1229103279start 1229023252start 1228758475start 1228754761working 1229022998start 1228754763working 1228754764working 1229359438start 1229022849working 1229022374end 1229354358start checksum)9 &R𬪖PSa 1229103307start 1229359607start 1229360922start 1229361023start 1229102886start 1228758491working 1229198340start 1228758493working 1229347240start 1229359289start 1229359621start 1229359297start 1228991693working 1229023287start 1229362408start 1229347102start 1228991709working 1229359945start 1229347260start 1229359319start 1229198364start 1229354389start 1228746002start 1229359325start 1229359957working 1228676248start 1229102303start 1229344598start 1228676252start 1228754827working 1229361546start 1228676261start 1229103196start 1229198389start 1229359188start 1229354429start 1229359352start 1229349079start 1229102957start cREVGeneral revUniqueID 1111545400639 breakPoints p Label Field 48O cREVTable currentview

    view month->

     cREVGeneral revUniqueID 1114907322583 view month->qsupport_email_n.gif @6!jGIF89a!Mf閹q>gI{Ds]Q̼UѴy>jBnߒl~ڬv!,!&dihlD,t}B|ϛ!`h>rih"AELd2 )A-&$8O8)(e<0S  QxU  S9 \ wy#{| :Fd ~0}Ⱦ f͋z|~ U|=nsXȰÇ#> ; cREVGeneral revUniqueID 1115092304149zNext P--> all handlers on mouseUp local tWhichArchive local tURL local tRawText local tLastMessage put "libGmane" into tWhichArchive insert the script of stack tWhichArchive into front put the uUrl of button "btnSearch" into tURL DeleteAllMessages put the uLastMessage of button "btnSearch" into tLastMessage if tLastMessage is empty then put 0 into tLastMessage end if -- this should add 10,20,30, etc to tLastMessage add the label of button "mnuNumHits" to tLastMessage set the uLastMessage of button "btnSearch" to tLastMessage --put "&>=Next&TOPDOC=" & tLastMessage after tURL --put RemoveURLParameter(">=", tUrl) into tUrl put "&>=Next&TOPDOC=" & tLastMessage after tURL put DoSearch(tUrl) into tRawText remove the script of stack tWhichArchive from front if tRawText is not empty then DisplayMessageList end if end mouseUp 2 cUrl8http://article.gmane.org/gmane.comp.ide.revolution.user/GIF89a 3f3333f333ff3fffff3f3f̙3f3333f3333333333f3333333f3f33ff3f3f3f3333f3333333f3̙333333f333ff3ffffff3f33f3ff3f3f3ffff3fffffffffff3fffffff3fff̙ffff3fffff3f̙3333f33̙3ff3ffff̙f3f̙3f̙̙3f̙3f3333f333ff3fffff̙̙3̙f̙̙̙3f̙3f3f3333f333ff3fffff3f3f̙3fƴƴ D!, @ H°Ç W$ $`(cGV %NVɈ#SDXbƍ9F OZϟ#A JhJbdȓ%C_zTӛRs:lz֥;KٳhKj"U\ "b܂sJ6Uz=y`^W~-b| all handlers on mouseUp local tWhichArchive local tURL local tRawText local tLastMessage put "libGmane" into tWhichArchive insert the script of stack tWhichArchive into front put the uUrl of button "btnSearch" into tURL DeleteAllMessages put the uLastMessage of button "btnSearch" into tLastMessage if tLastMessage is empty then put 0 into tLastMessage end if -- this should add 10,20,30, etc to tLastMessage subtract the label of button "mnuNumHits" from tLastMessage if tLastMessage <= 0 then put empty into tLastMessage end if set the uLastMessage of button "btnSearch" to tLastMessage if tLastMessage is not empty then put "&>=Next&TOPDOC=" & tLastMessage after tURL end if put DoSearch(tUrl) into tRawText remove the script of stack tWhichArchive from front if tRawText is not empty then DisplayMessageList end if end mouseUp 2 cUrl8http://article.gmane.org/gmane.comp.ide.revolution.user/GIF89a 3f3333f333ff3fffff3f3f̙3f3333f3333333333f3333333f3f33ff3f3f3f3333f3333333f3̙333333f333ff3ffffff3f33f3ff3f3f3ffff3fffffffffff3fffffff3fff̙ffff3fffff3f̙3333f33̙3ff3ffff̙f3f̙3f̙̙3f̙3f3333f333ff3fffff̙̙3̙f̙̙̙3f̙3f3f3333f333ff3fffff3f3f̙3fƴƴ D!, @ H°Ç Y%0P 3b# %NI"G\iCV6zRKgϟ@GJѢ=4 Τ]ȑǧ6Z(jM'ٳhӪU4,ʬnC";mĘV&\:kޯuyZ_plj0Ԗ&v xoܜ4 qACi! LViewPro200; cGlx2GeneralcScriptChecksumcExplicitVariablescHscrollScript0cLocalscHscrollHandlers0cSelectedChunkchar 723 to 722 cHtmlScriptuSMO@+^84jMIP[Sx^!]߻|ԂV 0f&C܁P rS?-]5's0Eh)iE]evqE<_&CUk R]u!"[~YkcHandlersListWidth110 cConstantscHtmlHandlersb)I). EɶJƆƖJv6 qĜļԢb}B;.;5eKk4f&pũ ɯs i cDirtyFlagfalse cFolders all handlers cHandlersmouseUpcVscrollScript0cVscrollHandlers0 cHilitedLine2 cGlobalscGlx2TimeStamp 1229362179working checksum|%GaK 1229361453working 1229362146start 1229361491working 1229347074start 1229361341start 1229362115start 1229361510working 1229361466working 1229361471working 1229362130working 1229361356working 1229347769start 1229361479working 1229361444start 1229362176working cREVGeneral revUniqueID 1115154225386 breakpointsuRIP triggersenabled}Clipboard 216.gif @.<GIF89af2eff̈   Ps   D0-l HD0,:P>C>TQ TP,;O;3g(nԎup9 ֛h;3D fLE g(Tl`9 ֚Enf8 nf8\ưưD88pD}p:4P,(#p8pD}p:\9 ֛h;3[,ư_sư ưKX+S~ U -- -- currentVersionNumber -- downloadURL -- -- ----------------------------------------------------------- -- 24 Feb 2006 mdw: -- Fixed the repeat loop (endless loop if file not found) ----------------------------------------------------------- -- mouseUp -- -- Get our current version info, -- compare it with the latest on the web. -- If we're up to date, just tell the user so. -- Otherwise launch a browser to start a download. -- If there are release notes and there's a field in the -- current environment called "ReleaseNotes" then show them. ----------------------------------------------------------- ON mouseUp local tLatestVersion local tWebLocation local tTree, tNodes, tNum, tStackName, tSpec local tResult local tDownloadLocation, tUpdate -- set up the custom properties based on the constant values set the cursor to busy -- get the info for the most current version put url(the uRIP["updateInfoURL"] of me) into tWebLocation put the result into tResult IF tResult is not empty THEN SWITCH tResult CASE "error 404 not found" answer the uRIP["updateInfoURL"] of me && "not found" break DEFAULT answer tResult END SWITCH ELSE replace lf with cr in tTree put revCreateXMLTree(tWebLocation, false, true, false) into tTree IF "xmlerr" is not in tTree THEN put revXMLNumberOfChildren(tTree, "/rip", "file", -1) into tNum put revXMLFirstChild(tTree, "/rip") into tSpec put revXMLNodeContents(tTree, tSpec & "/name") into tStackName put "rip/file" into tSpec REPEAT while tStackName is not the uRIP["name"] of me put revXMLNextSibling(tTree, tSpec) into tSpec IF tSpec is empty THEN exit REPEAT END IF put revXMLNodeContents(tTree, tSpec & "/name") into tStackName IF "xmlerr" is in tStackName THEN exit to top END IF END REPEAT -- get the latest version number put revXMLNodeContents(tTree, tSpec & "/version") into tLatestVersion IF "xmlerr" is in tLatestVersion THEN exit to top END IF IF tLatestVersion > the uRIP["version"] of me THEN -- get the release notes IF there is a field "MessageText" THEN get revXMLNodeContents(tTree, tSpec & "/releaseNotes") IF it is not empty THEN put it into field "MessageText" END IF END IF -- get the download url put revXMLNodeContents(tTree, tSpec & "/downloadURL") into tNodes put "binfile:" & the effective filename of this stack into tDownloadLocation answer info the uQueryUpdate of me with "Yes" AND "No" IF it is "Yes" THEN put url tNodes into tUpdate -- NOTE: this is legacy format. -- Make sure stack is saved in 2.4 format IF "#!/bin/sh" is line 1 of tUpdate THEN IF the result is empty THEN put tUpdate into url tDownloadLocation set the style of this stack to "topLevel" revert set the style of this stack to "palette" END IF END IF END IF ELSE answer "Your version is current." END IF END IF END IF set the cursor to arrow END mouseUp 1  uQueryUpdatePThere is a newer version available.
    Do you want to update your plugin?
    Get latest updateJFIFC    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222IQ"A !1"AQa2TVu#56%&4CRSs&1AQaq! ?\R;c,sI-v{#\4/<ӽJYG%pEljX[Eb1u2d`"8?%Y/5ku 瑳ޫC"a[yhNf^e$ uHNf_0ߨ $ɀ-7r,Sj$Bo@y&1rGL''b$8\q?(`֦ZԤ5Oj_|Kk2/B 5NC3U=,`zCuxY?j⿢PlVس$ds&~Dpb6 J'5bb 5/pWRbnʠ՛lP3.+I|{)lzմFXpo5hG?m3rq4 m,Xub7Oy9%oIq{fI`8ۀi1xrل47-hHobV5>B$ζ_-+du +]ucKByQe:0Kd̒o!鈗sǨl.aʒ?:W כM 7C8ޓ~L``n%̮&^BqڼwO^O4m;s%׃$׷G6.f?0 LE8:7NrZ6J_M)4Q+M/T33$KS=!Ѡ>KQ'kv;ƪEr':Ÿ`O/{lWMf.ѧ.xKјVcSelectedChunkchar 1378 to 1377 cHilitedLine cGlobalscGlx2TimeStamp 1229364043end checksum辤x:u 1229363927startuRIPname ArchiveSearchupdateInfoURL1http://www.ahsoftware.net/files/ArchiveSearch.xmlversion2.21 cREVGeneral breakPoints revUniqueID 1117824168215 fldYear!`1D cREVGeneral revUniqueID 1129705978442   Label Field0( cREVTable currentviewyear cREVGeneral revUniqueID 1129705942667 year lblActualHits @  cREVGeneral revUniqueID 1132783859980 1  ThreadsTitle)y --> all handlers ----------------------------------------------------- -- original by Xavier Bury -- modified by Mark Wieder 24 November 2005 -- then modified for component library 7 Feb 2006 -- It now fits the Loosely-Coupled Events design pattern (LCE) -- -- Decoupled this control from its controlled field -- by implementing an MVC-type pattern -- through the use of the uLinkedField custom property. -- This property is set by the openstack handler, which -- associates the controller with the viewer. ----------------------------------------------------- constant kSplitterCursor=31 on mousewithin mousewithinTableTitle end mousewithin on mouseLeave unlock cursor end mouseLeave on mousedown mousedownTableTitle pass mousedown end mousedown on mouseup local tSortBy put the clicktext into tSortBy mouseupTableTitle tSortBy end mouseup ----------------------------------------------- -- taoo handlers for table list -- by Xavier Bury -- reworked by Mark Wieder 23 November 2005 ----------------------------------------------- local blnSortAscending,tLastsortItem local tColumnSplitterSelected -- Table Fields handling ----------------------------------------------- -- mousewithinTableTitle -- arguments: -- pObjTable ----------------------------------------------- on mousewithinTableTitle local mH, myColumns local x, tBlnMouseInzone put the mouseh - left of me + the hscroll of me - 2 into mH put the tabstops of me into myColumns put false into tBlnMouseInzone put 1 into x repeat for each item thiscolumn in mycolumns -- note Hscroll not taken into account yet. if (mH >= thiscolumn-2) and mH <= (thiscolumn + 2) then put true into tBlnMouseInzone set cursor to kSplitterCursor put x into tColumnSplitterSelected exit REPEAT end if add 1 to x end REPEAT if tBlnMouseInzone then lock cursor else unlock cursor put 0 into tColumnSplitterSelected end if end mousewithinTableTitle ----------------------------------------------- -- mousedownTableTitle -- arguments: -- pObjTable ----------------------------------------------- on mousedownTableTitle local tdtabstops, newTabStop local minT, maxT local tOldTabStop, tDelta put the tabstops of me into tdtabstops if tColumnSplitterSelected = 0 then exit mousedownTableTitle else if 1 = tColumnSplitterSelected then put the left of me + 2 into minT put item tColumnSplitterSelected + 1 of tdtabstops into maxT else if tColumnSplitterSelected = the number of items in tdtabstops then put item tColumnSplitterSelected - 1 of tdtabstops into minT put right of me - 2 into maxT else put item tColumnSplitterSelected - 1 of tdtabstops into minT put item tColumnSplitterSelected + 1 of tdtabstops into maxT end if if the cursor is kSplitterCursor then -- mdw 24 November 2005 -- move the tab stops repeat while the mouse is down put the mouseH-left of me + the hscroll of me - 2 into newTabStop if newTabStop > minT and newTabStop < maxT then if tColumnSplitterSelected is a number then put item tColumnSplitterSelected of tdtabstops into tOldTabStop put newTabStop into item tColumnSplitterSelected of tdtabstops put newTabStop - tOldTabStop into tDelta repeat with x = tColumnSplitterSelected+1 to the number of items in tdtabstops add tDelta to item x of tdtabstops end REPEAT set the tabstops of me to tdtabstops mc2_libDispatcher.SendEvent "TabStops", tdtabstops end if end if end REPEAT else exit mousedownTableTitle end if end mousedownTableTitle ----------------------------------------------- -- mouseupTableTitle -- arguments: -- sortby -- pObjTable ----------------------------------------------- on mouseupTableTitle pSortBy local isNumeric set the itemdelimiter to tab -- de-underline the previous sort item set the textstyle of item tLastsortItem of me to "plain" -- find the new sort item put itemoffset(pSortBy, me) into tLastsortItem -- and underline it set the textstyle of item tLastsortItem of me to "bold,underline" if blnSortAscending then put false into blnSortAscending else put "-" before tLastSortItem put true into blnSortAscending end if SendEvent "SortColumn", tLastsortItem end mouseupTableTitle L41,131,175,271,13034132,139,175,271,130313932,140,175,271,130314025,131,175,271,13032532,152,175,271,130315232,164,175,271,130316457,131,175,271,13035742,131,175,271,13034226,131,175,271,13032632,145,175,271,130314558,131,175,271,13035832,157,175,271,130315743,131,175,271,13034327,131,175,271,13032732,138,175,271,130313859,131,175,271,13035960,131,175,271,13036032,151,175,271,130315144,131,175,271,13034428,131,175,271,13032861,131,175,271,13036145,131,175,271,13034532,144,175,271,130314430,131,175,271,13033029,131,175,271,13032932,156,175,271,1303156 fontsize1232,168,175,271,130316862,131,175,271,13036246,131,175,271,13034632,137,175,271,130313731,131,175,271,13033132,149,175,271,130314932,150,175,271,130315063,131,175,271,13036347,131,175,271,13034732,131,175,271,13033232,143,175,271,130314364,131,175,271,13036432,155,175,271,130315548,131,175,271,13034832,167,175,271,130316733,131,175,271,13033365,131,175,271,13036532,148,175,271,130314850,131,175,271,13035049,131,175,271,13034934,131,175,271,13033432,161,175,271,130316166,131,175,271,13036651,131,175,271,13035132,142,175,271,130314235,131,175,271,13033532,166,175,271,130316667,131,175,271,13036752,131,175,271,13035236,131,175,271,13033632,147,175,271,130314768,131,175,271,13036832,159,175,271,130315932,160,175,271,130316053,131,175,271,13035337,131,175,271,13033732,141,175,271,130314169,131,175,271,13036932,153,175,271,130315354,131,175,271,13035438,131,175,271,13033832,165,175,271,1303165 uLinkedFieldfield "MessageList" of card "card id 1002" of stack "C:/Documents and Settings/Mark Wieder.QA-WIN-7/My Documents/Revolution/Archive Search/ArchiveSearch.rev"55,131,175,271,13035532,146,175,271,130314640,131,175,271,13034039,131,175,271,13033924,131,175,271,13032456,131,175,271,130356o cGlx2GeneralcScriptChecksumcExplicitVariablescHscrollScript0cLocals6blnSortAscending tLastsortItem tColumnSplitterSelectedcHscrollHandlers0 cHtmlScript5WYo6~)A cnQm YǬ)R )ɔ,O9 $J T,mģPL̆ S?O ȴnj02]Zr ̤f?1Oq@̅ wZ[RW$Ok!G+sh]^Wմn!,)Th s `U2grESp!Upe6%6:;FW oXe<| K4FhؐfۢcLʺ4[6ij!LC,Z fPjVhߙ$唍崔HsOV&hELpGeyzJIM>f^!^Ez/%$"mVLUzbHڸ߁ r!RdKkB9!lJR֨Jn;Էc%եk8+m qޘTgoTwZGir]jY)J#__6FRN076YI{\-n&Pl6_O]HuBĹc(fܼ^ꊛ?Gik@1)穴IL!S lA8 &RREJxQv7C-QiF8KȱAw97p~ION PknDjxFm(Lb DكZJq-vvk< !cTgJk{؅ؓ= 9wg?&pE4S{|M17פW(]:йCצs8pFI֗>oзlĎ4B>wCw{DJzV iB֘QCU~ V2b;?kQǢ[t%]:[(Cv؃p_FW.߈O-lW tH\S$Xk9=sK'])AWk U2y^5"؆ڨzI.ϥtP/m h^µ-@ UdkJXze zLI ¸OVList Date Thread URL

    bottomfieldloc176 cREVGeneral revUniqueID 1132796227901 breakPoints List Date Thread URL           MessageList){ --> all handlers constant kStrYahooRoot="http://finance.groups.yahoo.com" on rawKeyUp pWhichKey -- handle the uparrow and downarrow keys switch pWhichKey case 65364 -- downarrow case 65362 -- uparrow mouseUp 1 end SWITCH end rawKeyUp on mouseUp pWhichButton local tWhichMessage local tUrlText local tUrl local tWhichArchive local tShowRawText local tStart, tEnd set the itemdelimiter to tab put item -1 of the hilitedtext of me into tUrl if pWhichButton is 3 then -- -- if the right button is down then set the altHomeURL of stack "ArchiveBrowser" to tUrl get revBrowserOpen(the windowid of stack "ArchiveBrowser", tUrl) if the result is not a number then answer the result else go stack "ArchiveBrowser" end if else -- now that the fields can be sorted by field heading -- we need to find which message we're interested in. put GetMatchingMessage(tUrl) into tWhichMessage SetMessageNumber tWhichMessage put MessageLib(tWhichMessage) into tWhichArchive -- get the author field, previous, next and thread view buttons set the cRootPath of field "MessageText" to GetRootPath(tWhichMessage) --set the cursor to watch insert the script of stack tWhichArchive into front SendEvent "enabled", true if "yahoo" is in tUrl then put kStrYahooRoot & MessageUrl(tWhichMessage) into tUrlText set the htmltext of field "MessageText" to tUrlText set the linktext of line 1 of field "MessageText" to tUrlText set the textstyle of line 1 of field "MessageText" to "link" else GetMessage MessageUrl(tWhichMessage) end if set the cUrl of button "btnSubject" to GetSubjectUrl(tWhichMessage) set the cUrl of button "btnThread" to GetThreadUrl(tWhichMessage, tWhichArchive) set the cUrl of button "btnAuthor" to GetAuthorUrl(tWhichMessage) set the cUrl of button "btnDate" to GetDateUrl(tWhichMessage, tWhichArchive) -- show the message date and subject put MessageDate(tWhichMessage) into field "lblMsgDate" set the htmltext of field "lblMsgSubject" to MessageSubject(tWhichMessage) set the cMsgUrl of field "MessageText" to MessageUrl(tWhichMessage) remove the script of stack tWhichArchive from front end if end mouseUp setprop SortColumn pWhichColumn local tWhichLine local tNewLine local isNumeric local tSortAscending put the hilitedtext of me into tWhichLine set the itemdelimiter to tab if pWhichColumn < 0 then put false into tSortAscending put abs(pWhichColumn) into pWhichColumn else put true into tSortAscending end if -- see whether or not to do a numeric sort if item pWhichColumn of me is a number then --put "numeric" into isNumeric else put "" into isNumeric end if if tSortAscending then do "sort lines of me" && isNumeric && "by item" && pWhichColumn && "of each" else do "sort lines of me" && isNumeric && "descending by item" && pWhichColumn && "of each" end if put lineoffset(tWhichLine, me) into tNewLine set the hilitedline of me to tNewLine end SortColumn setprop tabstops pTabStopList set the tabstops of me to pTabStopList end tabstops zzOrange fontsize12p cGlx2GeneralcScriptChecksumcExplicitVariablescHscrollScript0cLocalscHscrollHandlers0 cHtmlScriptoWo6~_A!;]֭E7 vX qbt6H@RdђBHw?^xU1UYEu\9qo. 皷^m⪀˝mc/$pY:[,bwaW! z 0' 7Fw WX;ao+=O8hNheإ֭ʯ|@z9R ^1oZ_w4Ѽ6OFwǍ[1Q!#p>A]B%k|1ixMbzepthjV'ILZՐB*gN8tx$g] Er,xGddl =;T6l@- 4|?m+G*gsJaz]X*.Tѝ>Ai%6fQ!!C[ Ui6xN,߇u&R0(YÂ,YGG!Tχ7'p #>}ӳA%&qV,5wodLKH!0]O mBnVAH,&M= cOO;dAM/)9Qz>bnz#Gn s#9Tȍ l #wp}HhF)W'y%ܴsBg-gv|=LNxvҸgT{ˉ>_I;oE"xۜt~:=s@: t&,wj@1P.~>c{O*|MV)Eos7ǡKJoCٛevFWv=2 >>^j ˌ;$@Y=lnjkg1gnƋ_;Z/ 0HazyndIm8 M !do˱#_Qv9Ɗ$'i#>l'm-E.4 /ZPavLA{I1aİ^[Yʂo)MŎ+ 21d6,}d8PP~' 6Q x!g08? "txzE.\Hh, UwDunu 1&܋e& cSelectedChunkchar 528 to 527 cConstants/kStrYahooRoot="http://finance.groups.yahoo.com"cHandlersListWidth118 cDirtyFlagfalsecHtmlHandlers)I). EɶJƆƖJv6 qĜļԢb}B;.;5eKk4f&pũk(J,N$#89?47x=%I% aI; cFolders all handlers cHandlers$mouseUp rawKeyUp SortColumn tabstopscVscrollScript170cVscrollHandlers0 cHilitedLine2 cGlobalscGlx2TimeStamp 1229200263start 1229200227start checksum[tiE0@cw 1229200345working 1229022505start 1229200463start 1229022381start 1229200114start 1229200070start 1229200152working 1229200549working 1229200586working 1229022432start 1229200119working 1229200192working 1229199391working 1229023363start 1229199392working 1229200394start 1229200522start 1229200361working 1229022988start 1229199793start 1229199363start 1229200330working 1229200132working 1229023300start 1229199367working 1229022447start 1229199368working 1229200292working 1229200096working cREVTablecurrentvscroll0formattedviewU 2005-03-25 RE: Catching errors http://article.gmane.org/gmane.comp.ide.revolution.user/53901/match=taoo U 2005-03-28 RE: HC Home handlers http://article.gmane.org/gmane.comp.ide.revolution.user/54006/match=taoo U 2005-03-29 RE: Rev Messages Watcher++ http://article.gmane.org/gmane.comp.ide.revolution.user/54073/match=taoo U 2005-04-03 RE: Python and Rev http://article.gmane.org/gmane.comp.ide.revolution.user/54411/match=taoo U 2005-04-03 The Breakpoint adventure (free scripts inside!) http://article.gmane.org/gmane.comp.ide.revolution.user/54431/match=taoo U 2005-04-09 RE: Python and Rev http://article.gmane.org/gmane.comp.ide.revolution.user/54701/match=taoo U 2005-04-10 RevSession opening issue (was RE: RunRev versus WinRar) http://article.gmane.org/gmane.comp.ide.revolution.user/54724/match=taoo U 2005-04-10 RE: ARE YOU SERIOUS REV TEAM? MAJOR SCRIPT EDITOR ISSUES http://article.gmane.org/gmane.comp.ide.revolution.user/54727/match=taoo U 2005-04-12 Re: Euro currency formats http://article.gmane.org/gmane.comp.ide.revolution.user/54838/match=taoo U 2005-04-12 RE: Replacing Answer/Ask http://article.gmane.org/gmane.comp.ide.revolution.user/54876/match=taoo viewablerows11currentxmouseloc72currenthscroll0currentymouseloc78scrollbarwidth12 cellyspacing13viewablecolumns4rightfieldloc794numbertabstops4 cellxspacing571 leftfieldloc4 topfieldloc178 currentviewm

    U 2005-03-25 RE: Catching errors http://article.gmane.org/gmane.comp.ide.revolution.user/53901/match=taoo

    U 2005-03-28 RE: HC Home handlers http://article.gmane.org/gmane.comp.ide.revolution.user/54006/match=taoo

    U 2005-03-29 RE: Rev Messages Watcher++ http://article.gmane.org/gmane.comp.ide.revolution.user/54073/match=taoo

    U 2005-04-03 RE: Python and Rev http://article.gmane.org/gmane.comp.ide.revolution.user/54411/match=taoo

    U 2005-04-03 The Breakpoint adventure (free scripts inside!) http://article.gmane.org/gmane.comp.ide.revolution.user/54431/match=taoo

    U 2005-04-09 RE: Python and Rev http://article.gmane.org/gmane.comp.ide.revolution.user/54701/match=taoo

    U 2005-04-10 RevSession opening issue (was RE: RunRev versus WinRar) http://article.gmane.org/gmane.comp.ide.revolution.user/54724/match=taoo

    U 2005-04-10 RE: ARE YOU SERIOUS REV TEAM? MAJOR SCRIPT EDITOR ISSUES http://article.gmane.org/gmane.comp.ide.revolution.user/54727/match=taoo

    U 2005-04-12 Re: Euro currency formats http://article.gmane.org/gmane.comp.ide.revolution.user/54838/match=taoo

    U 2005-04-12 RE: Replacing Answer/Ask http://article.gmane.org/gmane.comp.ide.revolution.user/54876/match=taoo

    bottomfieldloc308 lastrectrevVariableWatcher-32000,-32000,-31536,-31582 ControlsN2O628,255,1059,978ControlsBrowserNU114,162,748,679GUI Templates-32000,-32000,-31320,-31540About HotKeyN2O 0,0,1280,1024lastMinimizedrevVariableWatcherrevVariableWatcher ControlsN2O ControlsN2OControlsBrowserNUControlsBrowserNUGUI Templates GUI TemplatesAbout HotKeyN2OAbout HotKeyN2O cREVGeneraltablefalse revUniqueID 1132796235349 breakPointsuRIP triggersSortColumn TabStops  `@  btnAboutepON mouseUp constant kAboutStack = "AboutArchiveSearch" go invisible to card "About" of stack kAboutStack modal kAboutStack show stack kAboutStack END mouseUp 0sAbout cGlxGeneral tabstops handlers

    mouseUp

    code

    ON mouseUp

    constant kAboutStack = "AboutArchiveSearch"

    go invisible to card "About" of stack kAboutStack

    modal kAboutStack

    show stack kAboutStack

    END mouseUp

    checksum)1>;2I8,handler_scroll0dirtyfalse handler_line1 varCheckingtruescroll0 parent stack ArchiveSearch object namebtnAboutchunkchar 64 to 63 of field 5cMotif Chalkboard immed stack ArchiveSearch cLinkModefalse cREVGeneral scriptChecksumVpjK breakpoints handlerListmouseUpscriptSelection char 90 to 89 revUniqueID 1132876063136 bookmarks tempScript prevHandlermouseUpscript

    on mouseUp

    go to card "About" of stack "AboutArchiveSearch"

    modal "AboutArchiveSearch"

    end mouseUp

     gpSortBy $i Ds9Sort by cREVGeneral revUniqueID 1132897382036rdoDate`dZ@Date cREVGeneral revUniqueID 1132620642239  rdoRelevance`dL\ Relevance cREVGeneral revUniqueID 1132620625929  rdoReverse`dff Reverse date cREVGeneral revUniqueID 1132701404751 {Gears@x]F&GIF89a]Ff3̙f3f3ffffff3f3333f333f3f3̙f3̙̙̙̙f̙3̙ffffff3f3333f333f3̙f3̙̙f3̙f3ff̙ffff3f33̙33f333̙f3ffffff3ffff̙fff3fffffff3ffffffffffff3fff3f3f3f3ff33f3ffffff3f3333f333333̙3f3333333f3333f3f3f3ff3f33f33333333f333333333f333f3̙f3f3ffffff3f3333f333f3wUD"wUD"wUD"ݻwwwUUUDDD"""! NETSCAPE2.0!GifBuilder 0.2 by Yves Piguet! ,]FG H*\ȰÆyHb+/*j@+C:d%hVbH)EOR*?yٯ(V!eF}D6#VVU<`U)@a %_?K6+!7p᾽ߪ<*$UWy<*M ]2jYJǺeL@˗ΝG)ԙ%g,DW=1QUgS7^Ś໤`"Ϟ_ ÀV=e0X:*@VVmTpmWxeVz?|sO=`= E†}D,|h\ OUNM@=hX>!G$c>峚$LOI%T+|77`[Xedc8 5yTE%td*7=#BX_nQEc`YZ)?vbUXujDdCxQ i[R>2`{Lj vbۙQk.RNTZm!&KuYVt[VU0ۧ?Im*5xV\tmۜ&("fK'0ݓϴ3Ul'YΫQLTIsXG)X9e pAQ]fv)S~vT}g'%%}}kZ \G{cB|KںSLv#vQh Voe<[{"s 7\vxEԑY s+ָd]1 ź;E a @F 2_#`L`xf+P*ӀcHjFkr3؄P%̭F&S(XSҲhZj\9y)~sn0oΊ&JCYT3BODNRU6Z]JefC=E{ v@],J5-,G&4`Q sBO$VhtaGԠ OU X2;luj^j*5)).#lS`.;+1GT>cz$4 dO}Ć-5BF ` r{*KJ!~l d,Uc$h$VJ/&A A *ybQ0癈T|hP+p8R0~ cJo@LL$ D= G K"G=TvA D(Dҕ 0 ŠdH:IZag?4FMX!72%R]trDِ*.{a id?","R@πHAq*kP_mkT.t%0{~j,\B]1{ >tϬg&2Ӥ}N?N\Afo5M*adJ3*4FUPG5dRP\r5B(RaԪ bc`:ʝET_h fM$egJ H`XG5D_jyV'zVWmR'UQn%rkj AŎgrDA4:AA1qY9Է(B TK 8ѻ "p.wDy: יΔ}o)!ĝ S 'j}0 9 KfwoA+հ5CV$>Lķ-i?:D6$(>*QN䫴OÓa##Dπpz=?T0U|6Ȱ ~){'3][QaMdu1[.rp /"J ǜVx&f`+N\\6?)@ݔQEbq/>hL䠁sUJ9_fvt]pEMt`*XB]P5_ᓖ>AGLrTJOC?)ѩ :t#QcI9.>RtM~5_i"T }T%BY,[mj5ݽ9DJz?Pm"r- VE" mElwlEB s4;ģD\sTV]4>\S0MXJ UnN\lQh 5> G>P4YZp+`g'OUՙrYz$N:6ygg<#dAk9kL5Iٴ&4c_;v?]l)^J=z\W%X'oc}q,BW mR`5dꚵ[O1)E\nT_mC=𑵰ya Vҏ؆ux~" X@bWaE|_jx+eV~f<`w I0/D|':mJ>֚!~g r]lI:a LjuCWUkX*jǒƨ@K9PT/܆;YKS%&VF7mA \H'_6KVHkpW8>j2wZ&# B JX~QVWHx}ekmn߀F㒛4+UtE,V xU׺ ~ ָ(&U-!pr;Z0ЀF]h7{ItՍB(j0i ^h ĄXC"x-O8eEH]Ci ̈1yI+5kP-hӶsƒO`acjŘ yL6!8Q`[MX⒘8`ҕɾ ,Hq?JA@pmEdL!5\' cf8L%n_N *R]׻ {_z >׷Lfw7azowvfנ BzQ y! jPJP%Ԫ/axޘ! ,]FG H*\ȰÆyHb+/*jы@+VtVJϟKVozsԟ?׏QV:ˌl/QGDXbބJJ+U zU^Xjirˉ·TNgxAeՒ?MtT spOD…mD,l  %Ґ =4DYFH䳖i=&Rc+܅ғ^yeԓ1eVdD3̈ABVeWVXXOՓGZ_~X"x ?uVM8QOxCY~yȩZoe>^2 g&V Gd V=N`׏m,5[xgif:th %& B$" "0"do̽WREkoo‰"F[ET"85jCl)r.XnMnoiKs[ؖ.z!hE?h=,V{ H_L10~i9 ݓO> [14;&EdE>#8<0tchtrQ+4Ac?Hls֬Ԓڞh3rd($C]#9ͤ@. ;RZ _h$Pԓ-4ꁖ={x}B^X@ 8tPmHB(ь $KnǭMy yiw{~; cREVGeneral revUniqueID 1115152351793 btnPrefsepON mouseUp constant kAboutStack = "AboutArchiveSearch" go invisible to card "Preferences" of stack kAboutStack modal kAboutStack show stack kAboutStack END mouseUp 0uPrefs cGlxGeneral tabstops handlers

    mouseUp

    code

    ON mouseUp

    constant kAboutStack = "AboutArchiveSearch"

    go invisible to card "Preferences" of stack kAboutStack

    modal kAboutStack

    show stack kAboutStack

    END mouseUp

    checksum?J}2z1handler_scroll0dirtyfalse handler_line1 varCheckingtruescroll0 parent stack ArchiveSearch object namebtnPrefschunkchar 124 to 123 of field 5cMotif Chalkboard immed stack ArchiveSearch cLinkModefalse cREVGeneral scriptChecksumvDX}Z,p breakpoints handlerListmouseUpscriptSelection char 96 to 95 revUniqueID 1132901765646 bookmarks tempScript prevHandlermouseUpscript

    on mouseUp

    go to card "Preferences" of stack "AboutArchiveSearch"

    modal "AboutArchiveSearch"

    end mouseUp

    revonline.png _--------------------------------------------------- -- Launch the default web browser -- to go to the selected archive --------------------------------------------------- ON mouseUp constant kListRoot = "http://lists.runrev.com/pipermail/" local tURL put kListRoot into tURL SWITCH the hilitedbuttonname of group "gpFilter" CASE "rdoMetaCard" --case 2 -- metacard put "metacard/" after tURL break CASE "rdoExternals" --case 3 -- externals put "externals/" after tURL break CASE "rdoEducation" --case 4 -- education put "education-revolution/" after tURL break CASE "rdoUse" --case 1 DEFAULT put "use-revolution/" after tURL END SWITCH revGoUrl tURL END mouseUp $2Show the selected list in the default web browserPNG  IHDR$,-gAMA aIDATH͗O]w?&DJ.PpfQ̀BxE3n(J&)RJJu)p2>tbj-^im t\{2s{Oq`K`yؔcBs__Mhkͥխ}mgo Y<t XQ?"?Mvx?`bA^$ |"%#wE9r汯 Ed-y /{/!I`M@ܕ]s^+ԎjjZ^p Z1AL_ "EL1ΕG>aZqn&H .)kÂǴ-CK B=?B&E1Ze澁q'N>W׬<#CD5XioK"&z?3,v޾Jw2 yZÚB~OՍuxb$1B2A@oZtzpٌߙg_.n}0^F3=ISA+L2J#@ךM-Óqǐa릣3`6hNcл6kO8Zy0,as2=M“PSSR!\BX})R7MuQfY 'Poq/0{j:$>Nja7kۤrBO:l= L| bϯ'V8JJIENDB` cGlxGeneral tabstops handlers

    mouseUp

    checksum?ewP1code

    ---------------------------------------------------

    -- Launch the default web browser

    -- to go to the selected archive

    ---------------------------------------------------

    ON mouseUp

    constant kListRoot = "http://lists.runrev.com/pipermail/"

    local tURL

    put kListRoot into tURL

    SWITCH the hilitedbuttonname of group "gpFilter"

    CASE "rdoMetaCard"

    --case 2 -- metacard

    put "metacard/" after tURL

    break

    CASE "rdoExternals"

    --case 3 -- externals

    put "externals/" after tURL

    break

    CASE "rdoEducation"

    --case 4 -- education

    put "education-revolution/" after tURL

    break

    CASE "rdoUse"

    --case 1

    DEFAULT

    put "use-revolution/" after tURL

    END SWITCH

    revGoUrl tURL

    END mouseUp

    dirtyfalsehandler_scroll0 varCheckingtrue handler_line1scroll16 object name revonline.png parent stack ArchiveSearchchunkchar 772 to 771 of field 5 immed stack ArchiveSearchcMotif Chalkboard cLinkModefalse cREVGeneral revUniqueID 1133209069014 breakpoints handlerListmouseUp libGoogle1P+------------------------------------------------------- -- Google handlers -- -- Note: as of November 2006 Google's list archives -- seem to have deteriorated significantly. It should be -- used as a last resort for archive searching. ------------------------------------------------------- constant kStrGoogleStartTag="

    " constant kStrGoogleCloseTag="" constant kStrGoogleEndTag="

    " local kThisStackName -- Google constants (start and end of interesting text) constant kStrSiteSearch="lists.runrev.com" ------------------------------------------------------- -- InitializePlugin -- -- Do any initialization tasks for this plugin, -- i.e., disabling unusable buttons, hiding fields, etc. ------------------------------------------------------- ON InitializePlugin put me into kThisStackName END InitializePlugin ------------------------------------------------------- -- _GetMessageNumber -- given a url of the form -- "
    " -- extract the message number ------------------------------------------------------- FUNCTION _GetMessageNumber pUrl local tStrMsgNum local tPos put offset(">", pUrl) into tPos IF tPos > 0 THEN delete char tPos to -1 of pUrl END IF set the itemdelimiter to "/" put item -1 of pUrl into tStrMsgNum delete char -1 of tStrMsgNum return tStrMsgNum END _GetMessageNumber ------------------------------------------------------- -- _GetOneMessage -- -- strip out the header info from a single message -- return the formatted message -- or empty if we've reached the end of the messages -- -- arguments: -- pRaw : raw text to extract message from ------------------------------------------------------- FUNCTION _GetOneMessage pRaw local tStart, tEnd, tStop, tReturn --put offset("", pRaw) into tEnd --put offset("", pRaw) into tStop put offset("
    ", pRaw) into tStop IF (tStop > zero) AND (tStop < tEnd) THEN put empty into tReturn ELSE put char tStart to tEnd+2 of pRaw into tReturn END IF return tReturn END _GetOneMessage ------------------------------------------------------- -- _ParseOneLine -- arguments: -- pMessageNum -- pLine ------------------------------------------------------- FUNCTION _ParseOneLine pMessageNum, pLine local tReturn, tMsg put _GetOneMessage(pLine) & "
    " & cr into tMsg IF "/search" is in tMsg THEN put empty into tReturn ELSE put CurrentMessageNumber() into pMessageNum SetMessageAttribute pMessageNum, "subject", GetSubject(tMsg) SetMessageAttribute pMessageNum, "url", GetUrl(tMsg) SetMessageAttribute pMessageNum, "type", GetListType(tMsg) SetMessageAttribute pMessageNum, "date", _GetDate(tMsg) SetMessageAttribute pMessageNum, "num", _GetMessageNumber(tMsg) SetMessageAttribute pMessageNum, "lib", the short name of me NextMessageNumber put "ok" into tReturn END IF return tReturn END _ParseOneLine ------------------------------------------------------- -- MakeUrl -- arguments: -- -- pAllWords : list of words that must appear in the target string -- pExactPhrase : exact phrase that must appear in the target string -- pSomeWords : list of words that may appear in the target string -- pWithoutWords : list of words that must not appear in the target string ------------------------------------------------------- FUNCTION MakeUrl pAllWords, pExactPhrase, pSomeWords, pWithoutWords local tUrl local tSiteSearch local tNumLow, tNumHi local tMaxHits put kStrSiteSearch & _FilterList() into tSiteSearch put the selectedtext of button "mnuNumHits" into tMaxHits put "http://www.google.com/search?" into tUrl put "as_q=" & pAllWords & "+" & GetSearchYear() after tUrl put "&num=" & tMaxHits after tUrl put "&hl=" & "en" after tUrl -- return hits in English put "&c2coff=1" after tUrl -- 23 nov 05 put "&btnG=Google+Search" after tUrl put "&as_epq=" & pExactPhrase after tUrl put "&as_oq=" & pSomeWords after tUrl put "&as_eq=" & pWithoutWords after tUrl put "&lr=" after tUrl put "&as_ft=i" after tUrl put "&as_filetype=" after tUrl put "&as_qdr=" & _GetHistoryRange() after tUrl put "&as_nlo=" & tNumLow after tUrl put "&as_nhi=" & tNumHi after tUrl put "&as_occt=" & "any" after tUrl -- anywhere on page put "&as_dt=i" after tUrl put "&as_sitesearch=" & tSiteSearch after tUrl put "&as_rights=" after tUrl -- 23 nov 05 mdw put "&safe=images" after tUrl return tUrl END MakeUrl ON GetList pRawText local tDel local tMsgNum local tMaxHits put the selectedtext of button "mnuNumHits" into tMaxHits put 1 into tMsgNum REPEAT until _GetOneMessage(pRawText) is empty put offset(" tMaxHits THEN subtract 1 from tMsgNum exit REPEAT END IF delete char 1 to tDel of pRawText END REPEAT END GetList ------------------------------------------------------- -- _FilterList expects that the list archives -- will include the directory for the list type -- in the form "pipermail/ use-revolution" (note the space) -- and that Google will expect to see this -- in the form "pipermail%2F+use-revolution" ------------------------------------------------------- FUNCTION _FilterList local tStrFilter put empty into tStrFilter SWITCH (the hilitedbuttonname of group "gpFilter") CASE "rdoUse" put "/pipermail/use-revolution" into tStrFilter break CASE "rdoMetaCard" put "/pipermail/metacard" into tStrFilter break CASE "rdoExternals" put "/pipermail/externals" into tStrFilter break CASE "rdoEducation" put "/pipermail/education-revolution" into tStrFilter break CASE "rdoAll" put "" into tStrFilter DEFAULT END SWITCH return urlEncode(tStrFilter) END _FilterList ------------------------------------------------------- -- GoogleGetHistoryRange ------------------------------------------------------- FUNCTION _GetHistoryRange local tqdr SWITCH the selectedtext of button "startMonth" CASE "past 3 months" put "m3" into tqdr break CASE "past 6 months" put "m6" into tqdr break CASE "past year" put "y" into tqdr break DEFAULT put "all" into tqdr END SWITCH return tqdr END _GetHistoryRange ------------------------------------------------------- -- DeleteHeaderAndTrailer -- -- Delete the html stuff before and after the content -- -- arguments: -- pRawText : raw text to work with ------------------------------------------------------- FUNCTION DeleteHeaderAndTrailer pRawText local tContentStart local tStartTag put kStrGoogleStartTag into tStartTag put offset(tStartTag, pRawText) into tContentStart IF tContentStart > 0 THEN delete char 1 to tContentStart of pRawText put offset(">", pRawText) into tContentStart IF tContentStart > 0 THEN delete char 1 to tContentStart of pRawText END IF END IF put kStrGoogleEndTag into tStartTag put offset (tStartTag, pRawText) into tContentStart IF tContentStart is not zero THEN delete char tContentStart to -1 of pRawText END IF return pRawText END DeleteHeaderAndTrailer ------------------------------------------------------- -- _GetDate -- given a url of the form -- "" -- extract the date ------------------------------------------------------- FUNCTION _GetDate pUrl local tStrDate local tPos, tEnd -- if matchChunk(pUrl, "pipermail/.+/([1-9]+-.+)/", tPos, tEnd) then -- put char tPos to tEnd of pUrl into tStrDate -- end if put offset(">", pUrl) into tPos IF tPos > 0 THEN delete char tPos to -1 of pUrl END IF set the itemdelimiter to "/" put item -2 of pUrl into tStrDate return tStrDate END _GetDate ------------------------------------------------------- -- GetMessageContent ------------------------------------------------------- FUNCTION GetMessageContent pRawText local tPos, tEnd local tMatchString local pMessage put "((?sUi))" into tMatchString IF matchChunk(pRawText, tMatchString, tPos, tEnd) THEN put char tPos to tEnd of pRawText into pMessage ELSE put pRawText into pMessage END IF return pMessage END GetMessageContent ------------------------------------------------------- -- GetMessageAuthor ------------------------------------------------------- FUNCTION GetMessageAuthor pStrMessage local tUserID, tReturn local tStart, tEnd local tMailStart, tMailEnd local tMatchString put "(?sUi).+(.+)" into tMatchString IF matchChunk(pStrMessage, tMatchString, tStart, tEnd) THEN put char tStart to tEnd of pStrMessage into tReturn END IF put offset("mailto:", pStrMessage, tEnd)+tEnd+length("mailto:") into tMailStart put offset("TITLE", pStrMessage, tMailStart)+tMailStart-1 into tMailEnd put char tMailStart to tMailEnd of pStrMessage into tUserID set the cMailAddress of field "lblMsgAuthor" to tUserID return tReturn END GetMessageAuthor ------------------------------------------------------- -- GetMessageTitle ------------------------------------------------------- FUNCTION GetMessageTitle pStrMessage local tReturn local tPos, tEnd put MatchWithin(pStrMessage, "

    ", "

    ") into tReturn -- IF matchChunk(pStrMessage, "(?sUi)

    (.+)

    ", tPos, tEnd) THEN -- put char tPos to tEnd of pStrMessage into tReturn -- END IF return tReturn END GetMessageTitle ------------------------------------------------------- -- GetThreadUrl ------------------------------------------------------- FUNCTION GetThreadUrl pWhichMessage return GetUrlType(pWhichMessage, "thread") END GetThreadUrl ------------------------------------------------------- -- GetDateUrl ------------------------------------------------------- FUNCTION GetDateUrl pWhichMessage return GetUrlType(pWhichMessage, "date") END GetDateUrl s  UTahoma WTahoma cGlx2GeneralcScriptChecksumcExplicitVariablescHscrollScript0cLocalskThisStackNamecHscrollHandlers0cSelectedChunkchar 9019 to 9018 cHtmlScript Z{o8p]#I.&iSp8D[PT짿&pg 3yf8$= 4͛>G>fZZ}zivB" Ydw)"҄0 وb,!:QDL33I5딯xHS-&&* %CB E S2IMV,Ńhs'/6MJ^KkŽR/z$l=(EQ?eYiDd!as74aox./e(2Ps`26G"qfI>\s*_Vk:<\dRͳh +In8FH'l2"Wt)І"-e5X2"1Ŋ3-c t& Mځ@?wxqܷL_3.p MׅU3VSJbVXd:mqɄr1MMe4<_ФX'"' XUHZ2VEPw#)-5Z6STV+ ##bhSQ&sr@'bj c*-pЭ&T20$J< ,4t IXK"L2]8  t99 khht@j{d aA啌1!Mu0(e'xG;!'D,^%.QAe3nPVGDCi]םǥKKD'HVI /ME 4[JZe/n>X@ۂШ^K 3hr@r/&ܣS㰙8Ç幒 t6O?d_n R&{-K.Ue|Agٳ69545V(Sl32WsM\qo>p頚њC#Rйj$HŒUיo6,L_nk%oiP 6OӕiHoR~XG@.FV%\kxB0;j3==ڥN?ZM ,wvٵ8sum(K,lv+=;r=F,WL>&-qTd6b^]> Cmv&f|JrlN$r[ mX$_ZͶb$PtftǸfS`|?0BUd/$*BjAsl_A3vQ[BԹ~ʟ`}0ؠfœOrZ5$Q.q/R%ŮIt\gs0ו<>K42K bdP)񮛋a` [{°}AߌjZ q[%U/a pm/>K0~A_x9.ϽK 5LqIZ! `Ϝ-m;I46zn35OMs¤sfur0h')nV ZE V!x'Y9:jKGdomo¤ ۽qk P_rrp:hJ"eP Cjaonؕfhb}(v[*܂׉Y~~ЖHr Go"q2D(@WG$KqQiI9udx%p[t3orEP;Op N~#+4xdSsߥ0ۤ)%m 7FԆaϐ.=?4yt|4'ȺAچ;vֺi$6e"͙{e_+cHandlersListWidth206 cConstantsvkStrGoogleStartTag="

    " kStrGoogleCloseTag="" kStrGoogleEndTag="

    " kStrSiteSearch="lists.runrev.com"cHtmlHandlersJA OT=-eTXE+Zd{ tvdNa\#O>4m~望j|y\tFI!!\WwvXQ֔Ph5ܧ7n0%he 0 then -- tMatchChar will be either "---" or "/**" put char 1 to 3 of word 1 of line (posStart-1) of tScript into tMatchChar if tMatchChar is "/**" then put "*/" into tMatchChar end if put lineOffset(tMatchChar, tScript, posStart) + posStart into posEnd if posEnd > posStart then -- grab the preceding line through the last line put line posStart-1 to posEnd of tScript into field "help" end if add 1 to posEnd repeat while word 1 to -1 of line posEnd of tScript is empty -- skip any blank lines add 1 to posEnd end repeat put line posEnd of tScript into codeStub end if end mouseUp function GetCodeStub return codeStub end GetCodeStub  cREVGeneral revUniqueID 1133988901734 DeleteHeader DeleteTrailer GetDateUrl GetList GetMessageAuthor GetMessageContent GetThreadUrl GetTitle MakeUrl `@ help)`$ cREVGeneral revUniqueID 1133989032630   `@ Buttonep(on mouseUp go card "API" end mouseUp n 62API cREVGeneral revUniqueID 1133989978145  libGmane1P. --> all handlers ------------------------------------------------------- -- Gmane handlers ------------------------------------------------------- -- Gmane constants --constant kStrGmaneRoot="http://article.gmane.org/gmane.comp.ide.revolution.user" constant kStrGmaneURL="http://search.gmane.org/?query=" constant kStrGmaneSearchURL="http://search.gmane.org/?query=&email=kEmailAddress&group=gmane.comp.ide.revolution.user&sort=date&DEFAULTOP=and&query=" --constant kStrNabbleNoDocs="Found 0 matching posts" local kThisStackName ------------------------------------------------------- -- InitializePlugin -- -- Do any initialization tasks for this plugin, -- i.e., disabling unusable buttons, hiding fields, etc. ------------------------------------------------------- on InitializePlugin put me into kThisStackName end InitializePlugin ------------------------------------------------------- -- _FilterList -- -- As of November 2006, Gmane archives these lists: -- use-revolution ------------------------------------------------------- function _FilterList local tStrFilter put empty into tStrFilter switch (the hilitedbuttonname of group "gpFilter") -- CASE "rdoMetaCard" -- break -- CASE "rdoExternals" -- break -- CASE "rdoEducation" -- break -- CASE "rdoAll" -- break default case "rdoUse" put "comp.ide.revolution.user" into tStrFilter break end SWITCH return urlencode(tStrFilter) end _FilterList ------------------------------------------------------- -- _ParseOneLine -- arguments: -- pMessageNum -- pLine ------------------------------------------------------- function _ParseOneLine pMessageNum, pLine local tReturn, tMsg set the itemdelimiter to "/" put _GetOneMessage(pLine) & "
    " & cr into tMsg if "/search" is in tMsg then put empty into tReturn else put CurrentMessageNumber() into pMessageNum SetMessageAttribute pMessageNum, "subject", GetSubject(tMsg) --SetMessageAttribute pMessageNum, "url", item 1 to -2 of GetUrl(tMsg) SetMessageAttribute pMessageNum, "url", GetUrl(tMsg) SetMessageAttribute pMessageNum, "type", GetListType(tMsg) SetMessageAttribute pMessageNum, "date", _GetDate(tMsg) SetMessageAttribute pMessageNum, "num", _GetMessageNumber(tMsg) SetMessageAttribute pMessageNum, "lib", the short name of me NextMessageNumber put "ok" into tReturn end if return tReturn end _ParseOneLine ------------------------------------------------------- -- _GetOneMessage -- -- strip out the header info from a single message -- return the formatted message -- or empty if we've reached the end of the messages -- -- arguments: -- pRaw : raw text to extract message from ------------------------------------------------------- function _GetOneMessage pRaw local tStart, tEnd, tStop, tReturn put offset("
    ", pRaw) into tEnd put offset(" zero) and (tStop < tEnd) then put empty into tReturn else put char tStart to tEnd+5 of pRaw into tReturn end if return tReturn end _GetOneMessage ------------------------------------------------------- -- _GetMessageNumber ------------------------------------------------------- function _GetMessageNumber pUrl local tStrMsgNum set the itemdelimiter to "/" put item -2 of pUrl into tStrMsgNum delete char -1 of tStrMsgNum return tStrMsgNum end _GetMessageNumber ------------------------------------------------------- -- MakeUrl -- arguments: -- -- pAllWords : list of words that must appear in the target string -- pExactPhrase : exact phrase that must appear in the target string -- pSomeWords : list of words that may appear in the target string -- pWithoutWords : list of words that must not appear in the target string ------------------------------------------------------- function MakeUrl pAllWords, pExactPhrase, pSomeWords, pWithoutWords local tUrl local tStrWordList local tWords put kStrGmaneURL into tUrl -- accumulate the word lists if pAllWords is not empty then put empty into tWords repeat for each word tWord in pAllWords put "+" & tWord after tWords end REPEAT put tWords after tUrl end if if pExactPhrase is not empty then put empty into tWords repeat for each word tWord in pExactPhrase put "+" & tWord after tWords end REPEAT put tWords after tUrl end if if pSomeWords is not empty then put empty into tWords repeat for each word tWord in pSomeWords put "+" & tWord after tWords end REPEAT put tWords after tURL end if -- accumulate the words NOT to look for if pWithoutWords is not empty then put empty into tWords repeat for each word tWord in pWithoutWords put "%20-" & tWord after tWords end REPEAT put tWords after tUrl end if if field "fldYear" is not empty then put "+" & GetSearchYear() after tUrl end if put "&author=" after tUrl put "&group=" & _FilterList() after tUrl put "&sort=" after tUrl switch the hilitedbuttonname of group "gpSortBy" case "rdoDate" put "date" after tUrl break case "rdoReverse" put "revdate" after tUrl break case "rdoRelevance" default put "relevance" after tUrl break end SWITCH --if the label of button "mnuNumHits" is not 10 then if the uLastMessage of button "btnSearch" is not empty then put "&>=Next&TOPDOC=" & the label of button "mnuNumHits" after tURL end if --set the uLastMessage of button "btnSearch" to the label of button "mnuNumHits" put "&DEFAULTOP=" after tUrl if pSomeWords is not empty then put "or" after tUrl else put "and" after tUrl end if return tUrl end MakeUrl ------------------------------------------------------- -- GetList -- ------------------------------------------------------- on GetList pRawText local tDel local tMsgNum local tMaxHits put the selectedtext of button "mnuNumHits" into tMaxHits put 1 into tMsgNum repeat until _GetOneMessage(pRawText) is empty put offset(" tMaxHits then subtract 1 from tMsgNum exit REPEAT end if delete char 1 to tDel+4 of pRawText end REPEAT end GetList ------------------------------------------------------- -- _GetDate -- -- Gmane dates are of the form " (2004-7-22 16:26:20 GMT)" -- extract the date ------------------------------------------------------- function _GetDate pStrMessage local tStrDate local tPos local tMatchString local tStart, tEnd put "(?sUi) \(([^%]+) .+GMT\)" into tMatchString if matchchunk(pStrMessage, tMatchString, tStart, tEnd) then put char tStart to tEnd of pStrMessage into tStrDate set the itemdelimiter to "-" put item 2 of tStrdate & "/" & \ item 3 of tStrDate & "/" & \ item 1 of tStrDate into tStrDate end if return tStrDate end _GetDate ------------------------------------------------------- -- DeleteHeaderAndTrailer -- -- Delete the html stuff before and after the content -- -- arguments: -- pRawText : raw text to work with ------------------------------------------------------- function DeleteHeaderAndTrailer pRawText local tContentStart local tStartTag put "otable" into tStartTag put offset(tStartTag, pRawText) into tContentStart if tContentStart > 0 then delete char 1 to tContentStart of pRawText put offset(">", pRawText) into tContentStart if tContentStart > 0 then delete char 1 to tContentStart of pRawText end if end if put " and tags. ------------------------------------------------------- function GetMessageContent pRawText local tPos, tEnd local tMatchString local pMessage local tRawText put pRawText into pMessage put "(?sUi)()" into tMatchString if matchchunk(pMessage, tMatchString, tPos, tEnd) then put char tPos to tEnd of pMessage into pMessage end if return pMessage end GetMessageContent ------------------------------------------------------- -- _GetAuthor ------------------------------------------------------- function GetMessageAuthor pStrMessage local tUserID, tReturn local tStart, tEnd local tMailStart, tMailEnd local tMatchString put offset("From: ", pStrMessage) into tStart if tStart > 0 then add length("From: ") to tStart put offset("<", pStrMessage, tStart)+tStart-1 into tEnd put char tStart to tEnd of pStrMessage into tReturn end if if matchchunk(pStrMessage, "(?Uis)From:.+href=(.+public.gmane.org)", tStart, tEnd) then put char tStart to tEnd of pStrMessage into tUserID end if if the first char in tUserID is quote then delete the first char of tUserID end if set the cMailAddress of field "lblMsgAuthor" to tUserID return tReturn end GetMessageAuthor ------------------------------------------------------- -- GetMessageTitle ------------------------------------------------------- function GetMessageTitle pStrMessage local tReturn local tPos, tEnd if matchchunk(pStrMessage, "(?sUi)Subject.+>(.+)", tPos, tEnd) then put char tPos to tEnd of pStrMessage into tReturn end if return tReturn end GetMessageTitle ------------------------------------------------------- -- GetThreadUrl ------------------------------------------------------- function GetThreadUrl pWhichMessage return GetUrlType(pWhichMessage, "index") end GetThreadUrl ------------------------------------------------------- -- GetDateUrl ------------------------------------------------------- function GetDateUrl pWhichMessage local tDate set the itemdelimiter to "/" put MessageDate(pWhichMessage) into tDate return "http://blog.gmane.org/gmane.comp.ide.revolution.user/month=" & \ item 3 of tDate & \ item 1 of tDate & \ "01" end GetDateUrl ------------------------------------------------------- -- GetAuthorUrl ------------------------------------------------------- function GetAuthorUrl pWhichMessage local tSearchURL local tAddress set the enabled of button "btnAuthor" to true put kStrGmaneSearchURL into tSearchURL replace "kEmailAddress" with the cMailAddress of field "lblMsgAuthor" in tSearchURL return tSearchURL end GetAuthorUrl   UTahoma WTahoma cGlx2GeneralcScriptChecksumcExplicitVariablescHscrollScript0cLocalskThisStackNamecHscrollHandlers0cSelectedChunkchar 6038 to 6037 cHtmlScript kOH;eiD${{GXyHD$h[uNcgm_U?n!0h4QU]]vN($ię|\ҔUT 44H^]aK:=|់(,"+V×3!ljze<A[jgUCV9"K*8Id2xRNqO$ ndD&'1/I_e$o)H?d "R=Ol#QGvKFf_#e2l7oUHd2b .C%I..rmȖ3&=h[#An,gR~8L_Y ͋4T*rBh``zHJiJ>k`o Ǡ;Hi] Nܨr,V)j{H IzIE!fчh' R/*BeoĻ|F಼)(Qs棢lUW-6;yzI & BpY:oW;}Iu2|@ŢX ]b ܮ..3+8|d#&_8&3.FZ. Xe$8 J#Qdg3qE(,dtVå=W;i"yF{ݛI`+|3~Z, ]1Fee_3 {Z \>Us/& o1Cgd.%$lYbL<P@JqCYagN=2a @{ +tGS" RE+?"*!^yrQ)*\P(zxz$:%`s-\^ F,5|;6(f+;ꎜȺPFљ>1}b;;j[뮖{G :J5/e}^SQ[lY9@fʡ|+꩕/]zCn} (:yeL xDW+H* Pl HB=c)?:J߾$[Xϛi|Md Qrӎl?;ڝy%ޞ'۞ϵkMSEzQU1mٍeZb7BðXRHJ6UELÌ2oT-,AΕ%wbqboP쎝Vn5;g+oN+^n\C4ϲ,㇓wV`Σ jڡTq%اlU :~GuH鎛]jp g!!@CAZKic~$uh9Ai:$g y:L yNg(IL />%2/-2V\ܖ#.LIχqO\*(+oXr$l5?nH-5DQP7gD,Bw܎ PQT%W̫^>OZDP;|>:ugF >fIUbwʄ7Q.*S)SO٭AWgz5;VYr@ 8 v :_oօ?EzdabS"ŵ02$G͕^ـ~ժI)/fz0pu_Ti?4C'5];T+{y&тف [̯srtSr ;"o]<*$iq浻D)h(MKxgj[zum*@v\nv1+Ud"&\M`Kmr1ҙM #iR~XYB5@wmKi5sm}JuC$B9|L1n!zp3yW%8oIZ .^ɖ8PA(6 $XJn/nFçIDm+NW׋G4% 8.=hBa*T:3Cp3F3T=Bpȴխ4u8?` 5_C z/Xl _i/CKpGmLhOvWEII0{џpo0<qF)mVGlkV`v7/xjJ<(42xx7KHٯ9ZVgV;jLGYImʏx݇&v:ª-ESEQaOmVliH} I˧FY\nPL.cHandlersListWidth211 cConstantskStrGmaneURL="http://search.gmane.org/?query=" kStrGmaneSearchURL="http://search.gmane.org/?query=&email=kEmailAddress&group=gmane.comp.ide.revolution.user&sort=date&DEFAULTOP=and&query="cHtmlHandlersMK@໿"T=*ׅCzm\n0X\;~|AǶH8s]5  `.: $_e.|.?n~_ݺ_D(kJz}c`Ϩ+P - =GInAfh+dT|AhPmCv' ]5ϔ&~ cDirtyFlagfalse cFolders all handlers cHandlers_FilterList() _GetDate() _GetMessageNumber() _GetOneMessage() _ParseOneLine() DeleteHeaderAndTrailer() GetAuthorUrl() GetDateUrl() GetList GetMessageAuthor() GetMessageContent() GetMessageTitle() GetThreadUrl() InitializePlugin MakeUrl()cVscrollScript2285cVscrollHandlers0 cHilitedLine1 cGlobalscGlx2TimeStampX 1229004159start 1228746039working 1229103377start 1229361093working 1228756321working 1229003753working 1229003126start 1228756480start 1229005539working 1229361117working 1229343926start 1229349112start 1229003928start 1228676147start 1229006439start 1229344184start 1229360698start 1229005237start 1229005076start 1228676466end 1229344035start 1229004035start 1229006446working 1229360238working 1229359401start 1229360242working 1229361134working 1229005409start 1229344196start 1229004195start 1229005725start 1229359558start 1229354482start 1229103266start 1229349300working 1229005096start 1229354798start 1229360104start 1228998041start 1229004220start 1228756215start 1229359259start 1229003797start 1229343649start 1229349148start 1229006008working 1229360270start 1229005588start 1229349156working 1229354666start 1229354517start 1228745857start 1229361172end 1229359443start 1229344082working checksum7!XTYrt 1229349328working 1229354677end 1228991842start 1229003193working 1229359451working 1229005456start 1229344101start 1229005305start 1229349175start 1229360294start 1229360148working 1229361044start 1229344117start 1229359469working 1229362416start 1229362424working 1229359479start 1229344128start 1229006071working 1229349222working 1228676258start 1229343879working 1228745923working 1229003730start 1229005982start 1229343889working 1228991584start 1229005521start 1229349401working 1229005197start 1228746033start 1229360196working cREVGeneral breakPointsmain @API Pon openCard local tScript, tHandlers lock screen put empty into field "help" put PublicOnly(the script of this stack, "function") into tScript put tScript into tHandlers put PublicOnly(the script of this stack, "on") into tScript if tHandlers is not empty then put cr after tHandlers end if put tScript after tHandlers repeat with x=1 to the number of lines in tHandlers put word 2 of line x of tHandlers into line x of tHandlers end repeat sort tHandlers put tHandlers into field "handlers" unlock screen end openCard function PublicOnly pScript, pType filter pScript with pType && "*" filter pScript without ptype && "_*" filter pScript without "*-- private*" return pScript end PublicOnly  cREVGeneral  Label Field  cREVTable currentviewArchive Search library stack cREVGeneral revUniqueID 1132793468149 Archive Search library stack  Label Field 0@z cREVTable currentviewGmane routines cREVGeneral revUniqueID 1132793491900 Gmane routinesButtonep)on mouseUp go card "main" end mouseUp 40Done cREVGeneral revUniqueID 1133988829595  handlers)p.local codeStub on mouseUp local tScript local posStart, posEnd local tLine local tMatchChar put the selectedLine into tLine put the script of this stack into tScript put empty into field "help" -- assume the block comment starts with "-- Handler" put lineOffset("-- " & the selectedText, tScript) into posStart if posStart > 0 then -- tMatchChar will be either "---" or "/**" put char 1 to 3 of word 1 of line (posStart-1) of tScript into tMatchChar if tMatchChar is "/**" then put "*/" into tMatchChar end if put lineOffset(tMatchChar, tScript, posStart) + posStart into posEnd if posEnd > posStart then -- grab the preceding line through the last line put line posStart-1 to posEnd of tScript into field "help" end if add 1 to posEnd repeat while word 1 to -1 of line posEnd of tScript is empty -- skip any blank lines add 1 to posEnd end repeat put line posEnd of tScript into codeStub end if end mouseUp function GetCodeStub return codeStub end GetCodeStub  cREVGeneral revUniqueID 1133988901734 DeleteHeaderAndTrailer GetAuthorUrl GetDateUrl GetList GetMessageAuthor GetMessageContent GetMessageTitle GetThreadUrl InitializePlugin MakeUrl `@ help)`$ cREVGeneral revUniqueID 1133989032630   `@ Buttonep(on mouseUp go card "API" end mouseUp n 62API cREVGeneral revUniqueID 1133989965656 libMailArchive1P0------------------------------------------------------- -- Mail-Archive handlers -- ------------------------------------------------------- -- Mail-Archive constants (start and end of interesting text) constant kStrMailArchiveURL="http://www.mail-archive.com/search?" constant kStrMailArchiveStartTag="Documents" constant kStrMailArchiveEndTag="", pUrl) into tPos IF tPos > 0 THEN delete char tPos to -1 of pUrl END IF set the itemdelimiter to "/" put item -1 of pUrl into tStrMsgNum delete char -1 of tStrMsgNum return tStrMsgNum END _GetMessageNumber ------------------------------------------------------- -- GetDate ------------------------------------------------------- FUNCTION _GetDate pUrl local tStrDate local tPos, tEnd put MatchWithin(pUrl, "", "") into tStrDate -- IF matchChunk(pUrl, "((?Uis)(.*)())", tPos, tEnd) THEN -- put char tPos to tEnd-7 of pUrl into tStrDate -- END IF return tStrDate & cr END _GetDate ------------------------------------------------------- -- _GetOneMessage -- -- strip out the header info from a single message -- return the formatted message -- or empty if we've reached the end of the messages -- -- arguments: -- pRaw : raw text to extract message from ------------------------------------------------------- FUNCTION _GetOneMessage pRaw local tStart, tEnd, tStop, tReturn put MatchWithin(pRaw, "

    ", "

    ") into tReturn return tReturn END _GetOneMessage ------------------------------------------------------- -- _ParseOneLine -- arguments: -- pMessageNum -- pLine ------------------------------------------------------- FUNCTION _ParseOneLine pMessageNum, pLine local tReturn, tMsg local tUrl put _GetOneMessage(pLine) & "
    " & cr into tMsg put CurrentMessageNumber() into pMessageNum SetMessageAttribute pMessageNum, "subject", GetSubject(tMsg) SetMessageAttribute pMessageNum, "url", GetUrl(tMsg) SetMessageAttribute pMessageNum, "type", GetListType(tMsg) SetMessageAttribute pMessageNum, "date", _GetDate(tMsg) SetMessageAttribute pMessageNum, "num", _GetMessageNumber(tMsg) SetMessageAttribute pMessageNum, "lib", the short name of me NextMessageNumber put "ok" into tReturn -- END IF return tReturn END _ParseOneLine ------------------------------------------------------- -- GetList ------------------------------------------------------- ON GetList pRawText local tDel local tMsgNum local tMaxHits local tPos --put the selectedText of button "mnuNumHits" into tMaxHits -- MailArchive returns 10 hits at a time put 10 into tMaxHits put 1 into tMsgNum put offset("

    ", pRawText) into tPos IF tPos is not zero THEN delete char 1 to (tPos-1) of pRawText END IF REPEAT until _GetOneMessage(pRawText) is empty put offset(" tMaxHits THEN subtract 1 from tMsgNum exit REPEAT END IF delete char 1 to tDel+5 of pRawText END REPEAT END GetList ------------------------------------------------------- -- MakeUrl -- arguments: -- -- pAllWords : list of words that must appear in the target string -- pExactPhrase : exact phrase that must appear in the target string -- pSomeWords : list of words that may appear in the target string -- pWithoutWords : list of words that must not appear in the target string ------------------------------------------------------- FUNCTION MakeUrl pAllWords, pExactPhrase, pSomeWords, pWithoutWords local tUrl local tWord local tWords put kStrMailArchiveURL into tUrl --put "http://www.mail-archive.com/cgi-bin/htsearch?method=" into tUrl -- put "and" after tUrl -- put "&format=short" after tUrl put "l=" & _FilterList() & "@lists.runrev.com&q=" after tUrl -- put "&restrict=" after tUrl -- put "&exclude=" & pWithoutWords after tUrl -- put "&words=" & pAllWords after tUrl IF the uWhichField of card 1 of stack the mainstack of this stack is "Author" THEN put "from:" & quote & pExactPhrase& quote after tUrl set the uWhichField of card 1 of stack the mainstack of this stack to empty ELSE IF pAllWords is not empty THEN REPEAT for each word tWord in pAllWords put "+" & tWord after tWords END REPEAT END IF put tWords after tUrl END IF IF pWithoutWords is not empty THEN REPEAT for each word tWord in pWithoutWords put "+-" & tWord after tWords END REPEAT put tWords after tUrl END IF IF field "fldYear" is not empty THEN put "+" & GetSearchYear() after tUrl END IF return tUrl END MakeURL ------------------------------------------------------- -- _FilterList ------------------------------------------------------- FUNCTION _FilterList local tStrFilter put empty into tStrFilter SWITCH (the hilitedbuttonname of group "gpFilter") CASE "rdoMetaCard" put "metacard" into tStrFilter break CASE "rdoExternals" put "externals" into tStrFilter break CASE "rdoEducation" put "improve-revolution" into tStrFilter break -- case "rdoAll" DEFAULT CASE "rdoUse" put "use-revolution" into tStrFilter break END SWITCH return urlEncode(tStrFilter) END _FilterList ------------------------------------------------------- -- GetMessageContent -- -- Get the message content, defined as everything between the --
     and "X-Body-of-Message-End" tags.
    -------------------------------------------------------
    FUNCTION GetMessageContent pMessage
        local tEndString
        local tStart, tEnd
         
        put "