You can subscribe to this list here.
| 2004 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(447) |
Nov
(163) |
Dec
(57) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2005 |
Jan
(172) |
Feb
|
Mar
(123) |
Apr
(64) |
May
(1) |
Jun
(278) |
Jul
(89) |
Aug
(97) |
Sep
(62) |
Oct
(53) |
Nov
(119) |
Dec
(60) |
| 2006 |
Jan
(76) |
Feb
(1094) |
Mar
(363) |
Apr
(163) |
May
(57) |
Jun
(43) |
Jul
(39) |
Aug
(15) |
Sep
(33) |
Oct
(62) |
Nov
(8) |
Dec
|
| 2007 |
Jan
(9) |
Feb
(34) |
Mar
(2) |
Apr
(14) |
May
(8) |
Jun
(40) |
Jul
(21) |
Aug
(1) |
Sep
(20) |
Oct
(15) |
Nov
(26) |
Dec
|
| 2008 |
Jan
(1) |
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(3) |
Oct
|
Nov
|
Dec
(1) |
| 2009 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(32) |
Jun
|
Jul
|
Aug
(3) |
Sep
(3) |
Oct
|
Nov
|
Dec
|
| 2010 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2011 |
Jan
|
Feb
|
Mar
(2) |
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(7) |
Dec
|
| 2012 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: creedon <icr...@us...> - 2006-02-09 02:52:28
|
Update of /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/discuss In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2998 Modified Files: postAttachedFile readMessage editMessageForm Log Message: changes to support mainResponderWebsites.root and sampleMrWs style mainResponder websites Index: postAttachedFile =================================================================== RCS file: /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/discuss/postAttachedFile,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** postAttachedFile 26 Mar 2005 21:45:37 -0000 1.1.1.1 --- postAttachedFile 9 Feb 2006 02:52:18 -0000 1.2 *************** *** 1,3 **** FrontierVcsFile:1:scpt:mainResponder.discuss.postAttachedFile ! on postAttachedFile (adrFileArgs, msgNum, memberGroup) { ÇStore an attached file, either on disk or inside the discussion group. ÇChanges: ÇThu, 20 May 1999 16:39:55 GMT by AR ÇFirst implementation. Based on screenshotsSite.postCatcher in screenshots.root. Ç10/15/99; 1:13:09 AM by PBS ÇAdded support for addresses, and strings that can be coerced to addresses, in discuss.root. Ç10/20/99; 12:16:56 PM by PBS ÇIf an image is attached, store it in the dg in an image subtable. ÇOnly do so if flDiscussStoreImages is true, otherwise write even images to disk. Ç03/15/00; 5:26:21 PM by PBS ÇWhen computing the path to the attachments folder for this message, it now calls mainResponder.discuss.getMessageAttachmentsFolder -- a new bottleneck script. bundle { //error checking if not defined (adrFileArgs^.filename) { return (false)}; if not defined (adrFileArgs^.data) { return (false)}; if string.length (adrFileArgs^.filename) == 0 { return (false)}; if string.length (adrFileArgs^.data) == 0 { return (false)}}; local (pta = html.getPageTableAddress ()); local (adrMsg = mainResponder.discuss.getMessageTable (msgNum)); local (flStoredInDg = false, f); bundle { //possibly store this image in the dg, not to disk if defined (pta^.responderAttributes.flDiscussStoreImages) { if pta^.responderAttributes.flDiscussStoreImages { if defined (adrFileArgs^.["Content-type"]) { local (mimeType = adrFileArgs^.["Content-type"]); local (flGif = false, flJpeg = false); case string.lower (mimeType) { //is it a GIF or a JPEG? "image/gif" { flGif = true}; "image/jpeg"; "image/pjpeg" { flJpeg = true}}; if flGif or flJpeg { //store GIFs and JPEGs in the dg if not defined (adrMsg^.image) { new (tableType, @adrMsg^.image)}; adrMsg^.image.bits = binary (adrFileArgs^.data); adrMsg^.image.mimeType = mimeType; local (hwList); if flGif { hwList = html.getGifHeightWidth (@adrMsg^.image.bits); setBinaryType (@adrMsg^.image.bits, 'GIFf')}; if flJpeg { hwList = html.getJpegHeightWidth (@adrMsg^.image.bits); setBinaryType (@adrMsg^.image.bits, 'JPEG')}; adrMsg^.image.height = hwList [1]; adrMsg^.image.width = hwList [2]; flStoredInDg = true}}}}}; if not flStoredInDg { //write to disk local (fname, folderPath, s = adrFileArgs^.filename, i, ch); local (pc = file.getPathChar ()); bundle { //compute folderPath folderPath = mainResponder.discuss.getMessageAttachmentsFolder (adrMsg); ÇPBS 03/15/00: old code, now factored out Çlocal (adrDiscuss = mainResponder.discuss.openRoot ()) Çlocal (dgName = nameOf (adrDiscuss^)) Çtry //PBS 10/15/99: get the real name of the dg (it might be an address in discuss.root) Çlocal (adr = @[system.temp.mainResponder.discussRootFile]) Çif defined (adr^.[pta^.discussionRoot]) ÇdgName = nameOf (adr^.[pta^.discussionRoot]) Çlocal (discussionFolderName = nameOf (adrDiscuss^)) //PBS 10/15/99 Çif discussionFolderName beginsWith "#" ÇdiscussionFolderName = string.popLeading (discussionFolderName, '#') Çon add (s) //append sub-folders to folderpath ÇfolderPath = folderPath + s + pc ÇfolderPath = adrDiscuss^.prefs.binaryServerFolder Çadd (memberGroup) Çadd (adrMsg^.member) Çadd (dgName) Çadd (msgNum)}; for i = sizeOf (s) downTo 1 { //pop off everything but the file name ch = s [i]; if not (string.isAlpha (ch) or string.isNumeric (ch) or (ch == ".") or (ch == " ")) { s = string.delete (s, 1, i); break}}; fname = s; f = folderPath + fname; file.sureFilePath (f); file.writeWholeFile (f, adrFileArgs^.data)}; return (f)} \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:scpt:mainResponder.discuss.postAttachedFile ! on postAttachedFile (adrFileArgs, msgNum, memberGroup) { ÇChanges Ç1/15/06; 1:36:47 PM by TAC Çcategorize images and attachements in alsoListedIn Çstore information about the file in an attachement table, we don't care what kind of file it is Ç7/26/03; 4:04:15 PM by TAC Çadded PNG support Ç03/15/00; 5:26:21 PM by PBS ÇWhen computing the path to the attachments folder for this message, it now calls mainResponder.discuss.getMessageAttachmentsFolder -- a new bottleneck script. Ç1999 Ç10/20/99; 12:16:56 PM by PBS ÇIf an image is attached, store it in the dg in an image subtable. ÇOnly do so if flDiscussStoreImages is true, otherwise write even images to disk. Ç10/15/99; 1:13:09 AM by PBS ÇAdded support for addresses, and strings that can be coerced to addresses, in discuss.root. Ç5/20/99; 8:39:55 AM by AR ÇFirst implementation. Based on screenshotsSite.postCatcher in screenshots.root. ÇStore an attached file, either on disk or inside the discussion group. bundle { //error checking if not defined (adrFileArgs^.filename) { return (false)}; if not defined (adrFileArgs^.data) { return (false)}; if string.length (adrFileArgs^.filename) == 0 { return (false)}; if string.length (adrFileArgs^.data) == 0 { return (false)}}; local (pta = html.getPageTableAddress ()); local (adrMsg = mainResponder.discuss.getMessageTable (msgNum)); local (adrAttachment = @adrMsg^.attachment); local (flStoredInDg = false, f, newAlsoListedIn, oldAlsoListedIn = ""); if defined (adrAttachment^.mimeType) { // old also listed in case string.lower (adrAttachment^.mimeType) { // is it a GIF, JPEG, or PNG? "image/gif"; "image/jpeg"; "image/pjpeg"; "image/png" { oldAlsoListedIn = "images"}} else { oldAlsoListedIn = "attachments"}}; bundle { // set up attachment storage if not defined (adrAttachment^) { new (tableType, adrAttachment)}; try { adrAttachment^.mimeType = adrFileArgs^.["Content-type"]}; adrAttachment^.originalFileName = adrFileArgs^.filename; adrAttachment^.sizeBytes = sizeOf (adrFileArgs^.data)}; if defined (pta^.responderAttributes.flDiscussStoreImages) { // possibly store an image attachment in the dg, not to disk if pta^.responderAttributes.flDiscussStoreImages { if defined (adrAttachment^.mimeType) { local (mimeType = adrAttachment^.mimeType); local (flGif = false, flJpeg = false, flPng = false); case string.lower (mimeType) { // is it a GIF, JPEG, or PNG? "image/gif" { flGif = true}; "image/jpeg"; "image/pjpeg" { flJpeg = true}; "image/png" { flPng = true}}; if flGif or flJpeg or flPng { // store GIFs, JPEGs, or PNGs in the dg local (hwList); adrAttachment^.data = binary (adrFileArgs^.data); if flGif { hwList = html.getGifHeightWidth (@adrAttachment^.data); setBinaryType (@adrAttachment^.data, 'GIFf')}; if flJpeg { hwList = html.getJpegHeightWidth (@adrAttachment^.data); setBinaryType (@adrAttachment^.data, 'JPEG')}; if flPng { hwList = html.getPngHeightWidth (@adrAttachment^.data); setBinaryType (@adrAttachment^.data, 'PNGf')}; adrAttachment^.height = hwList [1]; adrAttachment^.width = hwList [2]; newAlsoListedIn = "images"; flStoredInDg = true}}}}; if not flStoredInDg { //write to disk local (folderPath, s = adrFileArgs^.filename, i, ch); local (pc = file.getPathChar ()); bundle { //compute folderPath folderPath = mainResponder.discuss.getMessageAttachmentsFolder (adrMsg, @adrAttachment^.url); ÇPBS 03/15/00: old code, now factored out Çlocal (adrDiscuss = mainResponder.discuss.openRoot ()) Çlocal (dgName = nameOf (adrDiscuss^)) Çtry //PBS 10/15/99: get the real name of the dg (it might be an address in discuss.root) Çlocal (adr = @[system.temp.mainResponder.discussRootFile]) Çif defined (adr^.[pta^.discussionRoot]) ÇdgName = nameOf (adr^.[pta^.discussionRoot]) Çlocal (discussionFolderName = nameOf (adrDiscuss^)) //PBS 10/15/99 Çif discussionFolderName beginsWith "#" ÇdiscussionFolderName = string.popLeading (discussionFolderName, '#') Çon add (s) //append sub-folders to folderpath ÇfolderPath = folderPath + s + pc ÇfolderPath = adrDiscuss^.prefs.binaryServerFolder Çadd (memberGroup) Çadd (adrMsg^.member) Çadd (dgName) Çadd (msgNum)};}; for i = sizeOf (s) downTo 1 { //pop off everything but the file name ch = s [i]; if not (string.isAlpha (ch) or string.isNumeric (ch) or (ch == ".") or (ch == " ")) { s = string.delete (s, 1, i); break}}; adrAttachment^.fileName = s; f = folderPath + adrAttachment^.fileName; adrAttachment^.f = f; file.sureFilePath (f); file.writeWholeFile (f, adrFileArgs^.data); newAlsoListedIn = "attachments"}; bundle { // also listed in if not (defined (adrMsg^.alsoListedIn)) { adrMsg^.alsoListedIn = {}}; adrMsg^.alsoListedIn = adrMsg^.alsoListedIn - {oldAlsoListedIn}; adrMsg^.alsoListedIn = adrMsg^.alsoListedIn + {newAlsoListedIn}}; return (f)} \ No newline at end of file Index: readMessage =================================================================== RCS file: /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/discuss/readMessage,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** readMessage 5 Jan 2006 06:16:46 -0000 1.5 --- readMessage 9 Feb 2006 02:52:18 -0000 1.6 *************** *** 1,3 **** FrontierVcsFile:1:scpt:mainResponder.discuss.readMessage ! on readMessage (msgNum, flResponses=true, flResponseForm=true, flShowMsgNums=true, flShowAuthor=true, flShowPostTime=true, flShowReads=true, flStoryHeaderOnly=false, flEditButtonsInHeader=true, flShowEnclosure=true, editPageURL="", flShowCowSkullLink=false, pta=nil, adrMsgTable=nil, adrData=nil, adrGetBodyCallback=nil, searchArgs="", flUseMappedMemberKeys=false) { ÇChanges Ç1/4/06; 4:48:10 PM by TAC Çfor response form. moved p and hr tags out of mainResponder.discuss.newMessageForm call, XHTML compliance Çadded missing quote character from width attribute of td tag when adding horizontal for etp button Ç2005 Ç11/24/05; 9:50:02 AM by TAC Çclose input, hr and more p tags Çlowercase form method POST for xhtml compatibility Ç10/13/05; 12:37:15 AM by TAC Çclose paragraph tag for auto paragraphs for compatibility with post HTML v4.01 transitional Ç7/12/05; 1:14:38 AM by TAC Çhide member emails Ç4/18/03; 6:06:50 PM by JES ÇNew optional parameter, flUseMappedMemberKeys -- if true, we use the newer style numeric member keys instead of the older email address style member keys. ÇThu, Jun 6, 2002 at 2:29:44 PM by TAC Çmake davenet style bylines work with deleted members and stories Ç2000 Ç11/27/00; 6:22:13 PM by PBS Çpta is named parameter in call to manilaSuite.pike.editMessageButton. Ç11/26/00; 8:13:51 PM by PBS ÇUse the new bottleneck routine for displaying an external editor button. Ç10/18/00; 10:50:08 PM by JES ÇCommented out the code that adds the Edit in Frontier button. Ç10/12/00; 12:35:42 AM by JES ÇNew optional parameter: searchArgs - if provided, it's appended to URLs of links to messages. This is how support for multi-mode (topic-based vs. day-based) DGs are handled. Ç07/13/00; 3:00:29 AM by JES ÇFixed problem where the byline would sometimes appear in Manila's discussion group interface, even though there was already an Author header -- only display the byline if flShowAuthor is false. Ç05/01/00; 7:41:17 PM by JES ÇChanged getString calls to use a replacement table address instead of a lists Ç05/01/00; 5:19:31 PM by PBS ÇNew optional parameter: adrGetBodyCallback. This allows the caller to specify a script that gets the body of the discussion group message. This is used by the news items feature, which needs to convert from XML to HTML when displaying a news item dg message. ÇIf adrGetBodyCallback^ () returns "", then the normal get-body routine runs. Ç01/17/00; 4:48:31 PM by PBS ÇPreliminary server support for Pike. Ç1999 Ç11/18/99; 3:55:29 PM by PBS ÇRemoved <font size="+0"></font> tags from around message text, as they did nothing, but they made it hard for a designer to specify the font of the message text. Ç10/20/99; 4:12:18 PM by PBS ÇIf an image is stored with the message in the dg, display the picture below the title and headers but above the text. Call the new script mainResponder.discuss.buildImageTag to create the image tag. Ç10/5/99; 5:06:24 PM by PBS ÇSometimes the headers section would be empty, there would be an empty table adding an extra blank line to the page. This is now fixed. ÇMon, Aug 2, 1999 at 2:38:39 PM by PBS ÇNew optional parameters: pta, adrMsgTable, and adrData. These were added because sometimes these addresses are known before calling this script, and there's no sense in re-computing them. This is a minor performance enhancement. ÇAdded some comments to this script to make it easier to follow. ÇRemove the unused local variable pagetable. ÇSat, 12 Jun 1999 13:42:51 GMT by AR ÇBug fix: The Topics header now works properly if the displayed message is part of the response tree of a message that has been deleted. ÇFri, Jun 11, 1999 at 10:33:25 AM by PBS ÇNew page table attribute: if pta^.readMessageByLineFormat is "DaveNet," then the byline will appear like this: ÇTuesday, March 16, 1999; by Dave Winer. ÇWednesday, June 09, 1999 at 4:47:49 PM by PBS ÇCall mainResponder.discuss.memberCanEdit to determine if the member may edit this message. ÇMonday, June 07, 1999 at 2:25:39 PM by PBS ÇNew pagetable attributes: flReadMessageAutoParagraphs, flReadMessageProcessMacros, and flReadMessageExpandUrls give more control over what happens when reading a discussion group message. When calling this script from a web page that's a script, it's best to set these all to false. When calling from a macro, it's not necessary to define these attributes: previous behavior is conserved, there's no breakage. ÇWed, 26 May 1999 01:33:57 GMT by AR ÇReal names of message authors are now looked up in the membership group specified thru pta^.responderAttributes.defaultMembershipGroup instead of formerly config.mainresponder.globals.defaultMembershipGroup, allowing greater flexibility while retaining backwards-compatibility. ÇSat, 22 May 1999 15:32:02 GMT by AR ÇAdded optional parameter flShowCowSkullLink. The default is false. If it's set to true, a cowskull linking to the standard msgReader page for this message is added. This feature probably only makes sense for sites like stories.userland.com where messages are displayed outside of the standard discussion group context. ÇFri, 21 May 1999 16:58:48 GMT by AR ÇAdded optional editPageURL parameter for setting the action URL of the Edit This Page button. If it's the empty string, we use pta^.responderattributes.urls^.discussEditInBrowser. ÇWed, 19 May 1999 18:50:24 GMT by AR ÇAdded three new parameters: flShowAuthor, flShowPostTime, flShowReads. Default: true. ÇAdded a new parameter: flStoryHeaderOnly. Default: false. ÇInserted missing </tr> tag after header section. ÇAdded a new parameter: flEditButtonsInHeader. Default: true. Ç5/12/99; 6:43:55 AM by DW ÇAdded Topic line for non-top-level messages. It takes you to the top-level topic that the message is in response to. ÇThu, 22 Apr 1999 15:00:04 GMT by AR ÇModified after closing a security hole in htmlInterfaces.root Çhttp://frontier.userland.com/security/htmlInterfacesRoot ÇMon, 01 Mar 1999 17:45:42 GMT by AR ÇChanged code in the "set member info" section to no longer reference config.mainResponder.prefs.defaultDiscussRoot. Instead we get the discussion group rootname by dereferencing adrdata which is set by mainresponder.discuss.openroot. Ç5/19/99; 10:19:48 PM by DW ÇChanged "By Dave Winer" to "Posted by Dave Winer". This makes more sense because I might post articles written by other people. ÇThis is the main bottleneck script for displaying discussion group messages. ÇIt's used in discussion groups -- but also any time you want to display a discussion group message as a page outside of the discussion group interface. Most of the parameters govern whether or not to display the various discussion group message headers. bundle { //get page table, discussion group, and message table addresses if pta == nil { //PBS 8/2/99: get the page table address pta = html.getPageTableAddress ()}; if adrData == nil { //PBS 8/2/99: get the address of the root of this discussion group adrData = mainResponder.discuss.openRoot (pta)}; if adrMsgTable == nil { //PBS 8/2/99: get the address of the table for this discussion group message adrMsgTable = @adrData^.messages.[string.padWithZeros (msgNum, 7)]}; try { //JES 4/19/03: not particularly pretty, but makes sure that any manila code that calls us will get the right value for flUseMappedMemberKeys if manilaSuite.isManilaSite (manilaSuite.getSiteAddress ()) { flUseMappedMemberKeys = true}}}; local (membershipGroup = pta^.responderAttributes.defaultMembershipGroup); local (flShowEditButtons, flEditButtonsAtTop, flEditButtonsAtBottom, flShowMessageHeaders); local (htmlText = "", indentLevel = 0); local (flMember = defined (pta^.adrMemberInfo)); on add (s) { htmlText = htmlText + string.filledString ("\t", indentLevel) + s + "\r"}; bundle { //increment read stats adrMsgTable^.ctReads++; config.mainResponder.stats.ctDiscussionGroupReads++}; //1/17/99; 9:20:18 AM by DW bundle { //was this message deleted? if mainResponder.discuss.isMessageDeleted (msgNum, adrMsgTable, pta) { Ç4/10/00; 12:17:54 AM by JES - added localization add (mainResponder.getString ("discuss.messageDeleted")); return (htmlText)}}; bundle { //calculate lots of booleans in advance to avoid spitting out unwanted empty table cells etc. flShowEnclosure = flShowEnclosure and (defined (adrMsgTable^.enclosureAddress) and (adrMsgTable^.enclosureAddress != "")); flShowEditButtons = (flMember and (mainResponder.discuss.memberCanEdit (adrMsgTable, pta^.adrMemberInfo))); //PBS 6/9/99: a member other than the poster may be able to edit this message flEditButtonsAtTop = (flShowEditButtons and flEditButtonsInHeader); flEditButtonsAtBottom = (flShowEditButtons and not flEditButtonsInHeader); flShowMessageHeaders = (not flStoryHeaderOnly) and (flShowAuthor or flShowPostTime or flShowMsgNums or flShowEnclosure or flShowReads); if not flShowMessageHeaders { //PBS 9/22/99: make it possible to have a byline and message headers: example -- the Samples site needs a byline plus enclosure header if defined (pta^.flReadMessageStoryHeaderAndMessageHeaders) { if pta^.flReadMessageStoryHeaderAndMessageHeaders { flShowMessageHeaders = true}}}}; on addEditButtons () { //add Edit button (or buttons) to the page Ç4/10/00; 12:17:54 AM by JES - added localization local (editableInFrontier = false); Çif defined (pta^.adrMemberInfo^.isFrontierSixAlpha) //edit in Frontier button Çbundle //old code Çadd ("<hr><b>Frontier 6 Alphas</b><p>") Çadd ("According to our records, you are a Frontier 6 alpha tester, and you created the message that you're viewing. That means that you can edit this message using Frontier 6's wrapping headlines outliner.") Çadd ("To use this feature, be sure Frontier is running, and you have suites.editorial installed. Then click on the following link. <i>Please follow the instructions carefully.</i><p>") Çadd ("<a href=\"" + pta^.responderattributes.urls^.discussEditInFrontier + msgnum + "\">Edit message #" + msgnum + " in Frontier</a>") Çadd ("<font size=\"-2\"><br>You can edit this message<br>because you are a Frontier 6<br>alpha tester and you are<br>the author of this message.</font>") Çlocal (url = pta^.responderAttributes.urls^.discussEditInFrontier + msgNum) Ç ÇBuild the Edit in Frontier button. Çadd ("<td valign=\"middle\"><center>"); indentLevel++ Çadd ("<form method=\"POST\" action=\"" + url + "\">"); indentLevel++ Çadd ("<input name=\"msgnum\" type=\"hidden\" value=\"" + msgNum + "\">") Çadd ("<input type=\"submit\" value=\"" + mainResponder.getString ("discuss.editInFrontier") + "\">") Çadd ("</form>"); indentLevel-- Çadd ("</center></td>"); indentLevel-- Ç ÇeditableInFrontier = true bundle { //edit in web browser button if editPageURL == "" { editPageURL = pta^.responderAttributes.urls^.discussEditInBrowser}; add ("<td valign=\"middle\"><center>"); indentLevel++; add ("<form method=\"post\" action=\"" + editPageURL + msgNum + "\">"); indentLevel++; add ("<input name=\"msgnum\" type=\"hidden\" value=\"" + msgNum + "\" />"); local (buttonValue = mainResponder.getString ("discuss.editThisPage")); if editableInFrontier { buttonValue = mainResponder.getString ("discuss.editInBrowser"); //change button name from Edit this Page to Edit in Browser add (" ")}; add ("<input type=\"submit\" value=\"" + buttonValue + "\" />"); add ("</form>"); indentLevel--; add ("</center>"); bundle { //PBS 01/13/00: Add the Edit in Pike button if defined (pta^.responderAttributes.urls^.editInPike) { ÇPike support is a feature not of mainResponder but of Manila. However, this script, which displays the discussion group message and the Edit this Page, needs to be Pike-aware enough to display the Pike button. Çif manilaSuite.pike.memberHasPike (pta) Çlocal (editInPikeUrl = pta^.responderAttributes.urls^.editInPike) Çif not (editInPikeUrl endsWith "$") ÇeditInPikeUrl = editInPikeUrl + "$" ÇeditInPikeUrl = editInPikeUrl + msgNum Çlocal (adrSite = pta^.adrSiteRootTable) Çlocal (adrMember = pta^.adrMemberInfo) Çadd (manilaSuite.pike.pikeButton (editInPikeUrl, adrMsgTable, adrMember, adrSite, true, mainResponder.getString ("discuss.editThisStoryInPikeOutline"), pta)) //true because this is a message add (manilaSuite.pike.editMessageButton (adrMsgTable, pta:pta))}}; //PBS 11/27/00: pta is named parameter add ("</td>"); indentLevel--}}; bundle { //put up message headers section Ç4/10/00; 12:17:54 AM by JES - added localization Çbundle // non-localized version Çadd ("<i>" + date.abbrevString (adrMsgTable^.postTime) + "; by " + name + ".</i>") local (flByline = flStoryHeaderOnly); //PBS 06/22/00: message table can over-ride byline display if defined (adrMsgTable^.flByline) { //an attribute in the message table can over-ride the site setting if not adrMsgTable^.flByline { flByline = false} else { flByline = true}}; if flByline and !flShowAuthor { //07/13/00 JES: added !flShowAuthor -- never show a Byline if we have an Author header ÇSupport DaveNet-style bylines: PBS 6/11/99 ÇLike: Friday, June 11, 1999; by Dave Winer (no link to author) if defined (pta^.readMessageBylineFormat) and string.lower (pta^.readMessageBylineFormat) == "davenet" { bundle { local { name = mainResponder.members.linkToMember (membershipGroup, adrMsgTable^.member)}; add ("<i>" + mainResponder.macros.byline (name, adrMsgTable^.postTime, "DaveNet") + "</i>")}; Çbundle // old code Çlocal (adrMember = mainResponder.members.getMemberTable (membershipGroup, adrMsgTable^.member)) Çlocal (name = nameOf (adrMember^)) // 10/05/05; 7:01:56 PM by PR default to the member key Çif defined (adrMember^.personalInfo.name) Çname = adrMember^.personalInfo.name Çelse Çif name contains '@' Çname = string.replace (string.mid (name, 1, string.patternMatch ('@', name)+2) + "...", '@', "@") Çadd ("<i>" + mainResponder.macros.byline (name, adrMsgTable^.postTime, "DaveNet") + "</i>")}} else { // standard byline format local (authorLink = mainResponder.members.linkToMember (membershipGroup, adrMsgTable^.member, true, useMap: flUseMappedMemberKeys)); add ("<i>" + mainResponder.macros.byline (authorLink, adrMsgTable^.postTime) + "</i>")}}; local (flDoHeaders = false); //PBS 10/5/99: fix for blank headers section, which messages up the formatting if flEditButtonsAtTop { flDoHeaders = true} else { if flShowMessageHeaders { case true { flShowAuthor; flShowPostTime; flShowMsgNums; flShowEnclosure; flShowReads { flDoHeaders = true}}}}; if flDoHeaders { //PBS 10/5/99: was: if (flShowMessageHeaders or flEditButtonsAtTop) add ("<p />");; add ("<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\">"); indentLevel++; add ("<tr>"); indentLevel++; if flShowMessageHeaders { //add author, posted, msg#, etc add ("<td>"); indentLevel++; add ("<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\">"); indentLevel++; on tr (label, val) { add ("<tr>"); indentLevel++; add ("<td valign=\"top\"><font size=\"+0\"><b>" + label + "</b> </font></td>"); add ("<td valign=\"top\"><font size=\"+0\">" + val + "</font></td>"); add ("</tr>"); indentLevel--}; on msgLink (msgNum) { return ("<a href=\"" + pta^.responderAttributes.urls^.discussMsgReader + msgNum + searchArgs + "\">" + msgNum + "</a>")}; if flShowAuthor { tr (mainResponder.getString ("discuss.authorHeader"), mainResponder.members.linkToMember (membershipGroup, adrMsgTable^.member, true, useMap: flUseMappedMemberKeys))}; // 4/13/00 JES: localized the header if flShowPostTime { tr (mainResponder.getString ("discuss.postedHeader"), mainResponder.localization.dateTimeString (adrMsgTable^.postTime))}; // 4/13/00 JES: localized the header and the date if flShowMsgNums and (adrMsgTable^.inResponseTo > 0) { //spit out the Topic line local (nomad = adrMsgTable); while (nomad^.inResponseTo > 0) { nomad = mainResponder.discuss.getMessageTable (nomad^.inResponseTo)}; tr (mainResponder.getString ("discuss.topicHeader"), "<a href=\"" + pta^.responderAttributes.urls^.discussMsgReader + nomad^.msgNum + searchArgs + "\">" + nomad^.subject + "</a>")}; // 4/13/00 JES: localized the header if flShowMsgNums { // put out the Msg# line local (val = msgNum); if adrMsgTable^.inResponseTo > 0 { try { local (replacementTable); new (tableType, @replacementTable); // 05/01/00 JES: use replacement table instead of a list replacementTable.msglink = msgLink (adrMsgTable^.inResponseTo); val = val + " (" + mainResponder.getString ("discuss.inResponseTo", @replacementTable) + ")"}} // 4/13/00 JES: localized the header else { val = val + " (" + mainResponder.getString ("discuss.topMsgInThread") + ")"}; // 4/13/00 JES: localized tr (mainResponder.getString ("discuss.msgNumHeader"), val)}; if flShowEnclosure { //regurgitate the Enclosure line Çhttp://discuss.userland.com/enclosures/view$868 local (viewingUrl = pta^.responderAttributes.urls^.discussEnclosureViewer + msgNum); Ç4/13/00; 5:52:43 PM by JES: localized enclosure text local (listingLink = "<a href=\"" + viewingUrl + "\">" + mainResponder.getString ("discuss.viewEnclosure") + "</a>"); local (fatPageLink = "<a href=\"" + pta^.responderAttributes.urls^.discussEnclosureDownloader + msgNum + "\">" + mainResponder.getString ("discuss.fatPageEnclosure") + "</a>"); local (rpcLink = "<a href=\"" + pta^.responderAttributes.urls^.discussEnclosureRPCer + msgNum + "\">" + mainResponder.getString ("discuss.RPCenclosure") + "</a>"); tr (mainResponder.getString ("discuss.enclosureHeader"), listingLink + ", " + fatPageLink + ", " + rpcLink)}; if flShowMsgNums { //throw up Prev/Next local (ixPrev = -1, ixNext = -1); local (ixLastMsg = adrData^.prefs.nextMsgNum - 1); for i = (msgNum - 1) downTo 1 { //find the previous message local (adrMsg = mainResponder.discuss.getMessageTable (i, pta, adrData)); if not (mainResponder.discuss.isMessageDeleted (i, adrMsg, pta:pta)) { ixPrev = i; break}}; for i = (msgNum + 1) to ixLastMsg { //find the next message local (adrMsg = mainResponder.discuss.getMessageTable (i, pta, adrData)); if not (mainResponder.discuss.isMessageDeleted (i, adrMsg, pta:pta)) { ixNext = i; break}}; Ç4/13/00; 5:53:22 PM by JES: localized next/prev header and link display if ixPrev == -1 { if ixNext != -1 { tr (mainResponder.getString ("discuss.nextMsgHeader"), msgLink (ixNext))}} else { if ixNext == -1 { if ixPrev != -1 { tr (mainResponder.getString ("discuss.prevMsgHeader"), msgLink (ixPrev))}} else { local (replacementTable); new (tableType, @replacementTable); // 05/01/00 JES: use replacement table instead of a list replacementTable.prevmsglink = msgLink (ixPrev); replacementTable.nextmsglink = msgLink (ixNext); tr (mainResponder.getString ("discuss.prevNextMsgHeader"), mainResponder.getString ("discuss.prevNextMsgNums", @replacementTable))}}}; if flShowReads { //show the number of times this message has been read tr (mainResponder.getString ("discuss.readsHeader"), adrMsgTable^.ctReads)}; // 4/13/00 JES: localized add ("</table>"); indentLevel--; add ("</td>"); indentLevel--}; if flEditButtonsAtTop { //add edit in Frontier button, possibly other stuff if (flStoryHeaderOnly or flShowMessageHeaders) { //add a bit of horizontal space add ("<td width=\"50\"> </td>")}; addEditButtons ()}; add ("</tr>"); indentLevel--; add ("</table>"); indentLevel--; add ("<p />")} else { add ("<p />")}}; bundle { //add the body of the story local (flCallbackReturnedBody = false); if adrGetBodyCallback != nil { local (s); s = adrGetBodyCallback^ (adrMsgTable); if s != "" { add (s); flCallbackReturnedBody = true}}; if not flCallbackReturnedBody { bundle { //PBS 10/20/99: if an image is attached to this message, display it above the body if defined (adrMsgTable^.image) { if defined (pta^.responderAttributes.urls^.imageViewer) { //must be defined: it's the link to the imageViewer script ÇThe imageViewer script takes a msgNum as pathArgs and displays the picture attached to that dg message. add (mainResponder.discuss.buildImageTag (adrMsgTable^.msgNum)); add ("<p />")}}}; if typeOf (adrMsgTable^.body) == outlineType { //outlines get passed through an outline renderer local (oldRenderOutlineWith = nil); if defined (pta^.renderOutlineWith) { oldRenderOutlineWith = pta^.renderOutlineWith}; if defined (pta^.renderDiscussOutlinesWith) { pta^.renderOutlineWith = pta^.renderDiscussOutlinesWith}; if defined (pta^.flReadMessageProcessMacros) and pta^.flReadMessageProcessMacros { try {add (html.processMacros (html.tenderRender (@adrMsgTable^.body), false, pta))}} else { if defined (pta^.flReadMessageExpandUrls) and not pta^.flReadMessageExpandUrls { try {add (html.tenderRender (@adrMsgTable^.body))}} else { //default, original behavior try {add (html.expandURLs (html.tenderRender (@adrMsgTable^.body)))}}}; if oldRenderOutlineWith != nil { pta^.renderOutlineWith = oldRenderOutlineWith}} else { //it's not an outline local (s = string (adrMsgTable^.body)); s = string.replaceAll (s, "\n", ""); //2/15/99 DW, inside <pre>s these cause extra line-skips if not (defined (pta^.flReadMessageAutoParagraphs)) or pta^.flReadMessageAutoParagraphs { s = string.replaceAll (s, "\r\r", "\r\r<p />")}; if not (defined (pta^.flReadMessageProcessMacros)) or pta^.flReadMessageProcessMacros { s = html.processMacros (s, false, pta); }; Çadd ("<font size=\"+0\">" + s + "</font>") add (s)}}}; //PBS 11/18/99: removed <font> tags from around message text, as they didn't do anything, but made it harder for a designer to specify the font for the page if flEditButtonsAtBottom { //add edit buttons to the bottom add ("<p />"); add ("<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\">"); indentLevel++; add ("<tr>"); indentLevel++; addEditButtons (); add ("</tr>"); indentLevel--; add ("</table>"); indentLevel--; add ("<p />")}; if flShowCowSkullLink { //add cowskull link to standard msgReader page ÇThe cowskull link is a link to the discussion group interface version of this page. try {add ("<p>\r<a href=\"" + pta^.responderAttributes.urls^.discussMsgReader + msgNum + "\">" + mainResponder.discuss.cowSkullImage (pta) + "</a>\r</p>")}}; if flResponses { //list message response structure Ç4/10/00; 12:17:54 AM by JES - added localization Çbundle // non-localized version Çadd ("<i>" + date.abbrevString (adrMsgTable^.postTime) + "; by " + name + ".</i>") if sizeof (adrMsgTable^.responses) > 0 { local (stack = {}); on addResponses (adrItem) { local (adrTable, msgNum, replyMember, i, ct = sizeOf (adrItem^.responses), flDeleted); add ("<ul>"); indentLevel++; for i = ct downTo 1 { msgNum = adrItem^.responses [i]; if stack contains msgNum { //avoid infinite recursion continue; }; adrTable = mainResponder.discuss.getMessageTable (msgNum, pta, adrData); if not defined (adrTable^) { continue}; if not (mainResponder.discuss.isMessageDeleted (msgNum, adrTable, pta)) { replyMember = mainResponder.members.getMemberName (membershipGroup, adrTable^.member); add ("<li><a href=\"" + pta^.responderAttributes.urls^.discussMsgReader + msgNum + searchArgs + "\">" + adrTable^.subject + "</a>, " + replyMember + ", " + mainResponder.localization.dateTimeString (adrTable^.postTime, pta: pta) + "<p />"); // 4/13/00 JES: localized the date display if sizeof (adrTable^.responses) > 0 { stack = stack + {adrTable^.msgNum}; addResponses (adrTable); delete (@stack [sizeof (stack)])}}}; add ("</ul>"); indentLevel--; }; add ("<p /><hr /><b>" + mainResponder.getString ("discuss.thereAreResponsesToThisMsg") + "</b>"); addResponses (adrMsgTable)}}; //it's recursive if flResponseForm { //provide a response form Ç4/10/00; 12:17:54 AM by JES - added localization Çbundle // non-localized version Çadd ("<i>" + date.abbrevString (adrMsgTable^.postTime) + "; by " + name + ".</i>") if flMember { //only members can add messages local (subject = adrMsgTable^.subject); if not (string.lower (subject) beginswith string.lower (string.trimWhiteSpace (mainResponder.getString ("discuss.rePrefix")))) { subject = mainResponder.getString ("discuss.rePrefix") + subject}; local (subjectprompt, buttontext, bodyprompt); subjectprompt = mainResponder.getString ("discuss.responseSubjectPrompt"); buttontext = mainResponder.getString ("discuss.postResponseButtonText"); bodyprompt = mainResponder.getString ("discuss.responseBodyPrompt"); add ("<p /><hr />"); add (mainResponder.discuss.newMessageForm (msgNum, subject, subjectprompt, buttontext, bodyprompt: bodyprompt, pta: pta))}}; bundle { //set member info ÇFor every member, store the highest message read for the current discussion group. ÇFirst make sure the discussionGroupInfo table exists for this member, then make sure there's a table for this dg, then set highestMessageRead for this dg for this member. if flMember { //is this a member? local (adrMember = pta^.adrMemberInfo); if not defined (adrMember^.discussionGroupInfo) { new (tabletype, @adrmember^.discussionGroupInfo)}; local (rootName = nameOf (adrData^)); local (adrTable = @adrMember^.discussionGroupInfo.[rootName]); if not defined (adrTable^) { new (tableType, adrTable)}; if not defined (adrTable^.highestMessageRead) { adrTable^.highestMessageRead = 0}; if msgNum > adrTable^.highestMessageRead { adrTable^.highestMessageRead = msgNum}}}; return (htmlText)} \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:scpt:mainResponder.discuss.readMessage ! on readMessage (msgNum, flResponses=true, flResponseForm=true, flShowMsgNums=true, flShowAuthor=true, flShowPostTime=true, flShowReads=true, flStoryHeaderOnly=false, flEditButtonsInHeader=true, flShowEnclosure=true, editPageURL="", flShowCowSkullLink=false, pta=nil, adrMsgTable=nil, adrData=nil, adrGetBodyCallback=nil, searchArgs="", flUseMappedMemberKeys=false, flShowAttachment = false) { ÇChanges Ç1/15/06; 3:19:08 PM by TAC Çadded flShowAttachment parameter Ç1/4/06; 4:48:10 PM by TAC Çfor response form don't nest p and hr tags inside b tag, XHTML compliance Çadded missing quote character from width attribute of td tag when adding horizontal for etp button Ç2005 Ç11/24/05; 9:50:02 AM by TAC Çclose input, hr and more p tags Çlowercase form method POST for xhtml compatibility Ç10/13/05; 12:37:15 AM by TAC Çclose paragraph tag for auto paragraphs for compatibility with post HTML v4.01 transitional Ç7/12/05; 1:14:38 AM by TAC Çhide member emails Ç4/18/03; 6:06:50 PM by JES ÇNew optional parameter, flUseMappedMemberKeys -- if true, we use the newer style numeric member keys instead of the older email address style member keys. ÇThu, Jun 6, 2002 at 2:29:44 PM by TAC Çmake davenet style bylines work with deleted members and stories Ç2000 Ç11/27/00; 6:22:13 PM by PBS Çpta is named parameter in call to manilaSuite.pike.editMessageButton. Ç11/26/00; 8:13:51 PM by PBS ÇUse the new bottleneck routine for displaying an external editor button. Ç10/18/00; 10:50:08 PM by JES ÇCommented out the code that adds the Edit in Frontier button. Ç10/12/00; 12:35:42 AM by JES ÇNew optional parameter: searchArgs - if provided, it's appended to URLs of links to messages. This is how support for multi-mode (topic-based vs. day-based) DGs are handled. Ç07/13/00; 3:00:29 AM by JES ÇFixed problem where the byline would sometimes appear in Manila's discussion group interface, even though there was already an Author header -- only display the byline if flShowAuthor is false. Ç05/01/00; 7:41:17 PM by JES ÇChanged getString calls to use a replacement table address instead of a lists Ç05/01/00; 5:19:31 PM by PBS ÇNew optional parameter: adrGetBodyCallback. This allows the caller to specify a script that gets the body of the discussion group message. This is used by the news items feature, which needs to convert from XML to HTML when displaying a news item dg message. ÇIf adrGetBodyCallback^ () returns "", then the normal get-body routine runs. Ç01/17/00; 4:48:31 PM by PBS ÇPreliminary server support for Pike. Ç1999 Ç11/18/99; 3:55:29 PM by PBS ÇRemoved <font size="+0"></font> tags from around message text, as they did nothing, but they made it hard for a designer to specify the font of the message text. Ç10/20/99; 4:12:18 PM by PBS ÇIf an image is stored with the message in the dg, display the picture below the title and headers but above the text. Call the new script mainResponder.discuss.buildImageTag to create the image tag. Ç10/5/99; 5:06:24 PM by PBS ÇSometimes the headers section would be empty, there would be an empty table adding an extra blank line to the page. This is now fixed. ÇMon, Aug 2, 1999 at 2:38:39 PM by PBS ÇNew optional parameters: pta, adrMsgTable, and adrData. These were added because sometimes these addresses are known before calling this script, and there's no sense in re-computing them. This is a minor performance enhancement. ÇAdded some comments to this script to make it easier to follow. ÇRemove the unused local variable pagetable. ÇSat, 12 Jun 1999 13:42:51 GMT by AR ÇBug fix: The Topics header now works properly if the displayed message is part of the response tree of a message that has been deleted. ÇFri, Jun 11, 1999 at 10:33:25 AM by PBS ÇNew page table attribute: if pta^.readMessageByLineFormat is "DaveNet," then the byline will appear like this: ÇTuesday, March 16, 1999; by Dave Winer. ÇWednesday, June 09, 1999 at 4:47:49 PM by PBS ÇCall mainResponder.discuss.memberCanEdit to determine if the member may edit this message. ÇMonday, June 07, 1999 at 2:25:39 PM by PBS ÇNew pagetable attributes: flReadMessageAutoParagraphs, flReadMessageProcessMacros, and flReadMessageExpandUrls give more control over what happens when reading a discussion group message. When calling this script from a web page that's a script, it's best to set these all to false. When calling from a macro, it's not necessary to define these attributes: previous behavior is conserved, there's no breakage. ÇWed, 26 May 1999 01:33:57 GMT by AR ÇReal names of message authors are now looked up in the membership group specified thru pta^.responderAttributes.defaultMembershipGroup instead of formerly config.mainresponder.globals.defaultMembershipGroup, allowing greater flexibility while retaining backwards-compatibility. ÇSat, 22 May 1999 15:32:02 GMT by AR ÇAdded optional parameter flShowCowSkullLink. The default is false. If it's set to true, a cowskull linking to the standard msgReader page for this message is added. This feature probably only makes sense for sites like stories.userland.com where messages are displayed outside of the standard discussion group context. ÇFri, 21 May 1999 16:58:48 GMT by AR ÇAdded optional editPageURL parameter for setting the action URL of the Edit This Page button. If it's the empty string, we use pta^.responderattributes.urls^.discussEditInBrowser. ÇWed, 19 May 1999 18:50:24 GMT by AR ÇAdded three new parameters: flShowAuthor, flShowPostTime, flShowReads. Default: true. ÇAdded a new parameter: flStoryHeaderOnly. Default: false. ÇInserted missing </tr> tag after header section. ÇAdded a new parameter: flEditButtonsInHeader. Default: true. Ç5/12/99; 6:43:55 AM by DW ÇAdded Topic line for non-top-level messages. It takes you to the top-level topic that the message is in response to. ÇThu, 22 Apr 1999 15:00:04 GMT by AR ÇModified after closing a security hole in htmlInterfaces.root Çhttp://frontier.userland.com/security/htmlInterfacesRoot ÇMon, 01 Mar 1999 17:45:42 GMT by AR ÇChanged code in the "set member info" section to no longer reference config.mainResponder.prefs.defaultDiscussRoot. Instead we get the discussion group rootname by dereferencing adrdata which is set by mainresponder.discuss.openroot. Ç5/19/99; 10:19:48 PM by DW ÇChanged "By Dave Winer" to "Posted by Dave Winer". This makes more sense because I might post articles written by other people. ÇThis is the main bottleneck script for displaying discussion group messages. ÇIt's used in discussion groups -- but also any time you want to display a discussion group message as a page outside of the discussion group interface. Most of the parameters govern whether or not to display the various discussion group message headers. bundle { //get page table, discussion group, and message table addresses if pta == nil { //PBS 8/2/99: get the page table address pta = html.getPageTableAddress ()}; Çscratchpad.pt = pta^ if adrData == nil { //PBS 8/2/99: get the address of the root of this discussion group adrData = mainResponder.discuss.openRoot (pta)}; if adrMsgTable == nil { //PBS 8/2/99: get the address of the table for this discussion group message adrMsgTable = @adrData^.messages.[string.padWithZeros (msgNum, 7)]}; try { //JES 4/19/03: not particularly pretty, but makes sure that any manila code that calls us will get the right value for flUseMappedMemberKeys if manilaSuite.isManilaSite (manilaSuite.getSiteAddress ()) { flUseMappedMemberKeys = true}}}; local (membershipGroup = pta^.responderAttributes.defaultMembershipGroup); local (flShowEditButtons, flEditButtonsAtTop, flEditButtonsAtBottom, flShowMessageHeaders); local (htmlText = "", indentLevel = 0); local (flMember = defined (pta^.adrMemberInfo)); on add (s) { htmlText = htmlText + string.filledString ("\t", indentLevel) + s + "\r"}; bundle { //increment read stats adrMsgTable^.ctReads++; config.mainResponder.stats.ctDiscussionGroupReads++}; //1/17/99; 9:20:18 AM by DW bundle { //was this message deleted? if mainResponder.discuss.isMessageDeleted (msgNum, adrMsgTable, pta) { Ç4/10/00; 12:17:54 AM by JES - added localization add (mainResponder.getString ("discuss.messageDeleted")); return (htmlText)}}; bundle { //calculate lots of booleans in advance to avoid spitting out unwanted empty table cells etc. flShowEnclosure = flShowEnclosure and (defined (adrMsgTable^.enclosureAddress) and (adrMsgTable^.enclosureAddress != "")); flShowEditButtons = (flMember and (mainResponder.discuss.memberCanEdit (adrMsgTable, pta^.adrMemberInfo))); //PBS 6/9/99: a member other than the poster may be able to edit this message flEditButtonsAtTop = (flShowEditButtons and flEditButtonsInHeader); flEditButtonsAtBottom = (flShowEditButtons and not flEditButtonsInHeader); flShowAttachment = flShowAttachment and defined (adrMsgTable^.attachment); flShowMessageHeaders = (not flStoryHeaderOnly) and (flShowAuthor or flShowPostTime or flShowMsgNums or flShowEnclosure or flShowReads or flShowAttachment); if not flShowMessageHeaders { //PBS 9/22/99: make it possible to have a byline and message headers: example -- the Samples site needs a byline plus enclosure header if defined (pta^.flReadMessageStoryHeaderAndMessageHeaders) { if pta^.flReadMessageStoryHeaderAndMessageHeaders { flShowMessageHeaders = true}}}}; on addEditButtons () { //add Edit button (or buttons) to the page Ç4/10/00; 12:17:54 AM by JES - added localization local (editableInFrontier = false); Çif defined (pta^.adrMemberInfo^.isFrontierSixAlpha) //edit in Frontier button Çbundle //old code Çadd ("<hr><b>Frontier 6 Alphas</b><p>") Çadd ("According to our records, you are a Frontier 6 alpha tester, and you created the message that you're viewing. That means that you can edit this message using Frontier 6's wrapping headlines outliner.") Çadd ("To use this feature, be sure Frontier is running, and you have suites.editorial installed. Then click on the following link. <i>Please follow the instructions carefully.</i><p>") Çadd ("<a href=\"" + pta^.responderattributes.urls^.discussEditInFrontier + msgnum + "\">Edit message #" + msgnum + " in Frontier</a>") Çadd ("<font size=\"-2\"><br>You can edit this message<br>because you are a Frontier 6<br>alpha tester and you are<br>the author of this message.</font>") Çlocal (url = pta^.responderAttributes.urls^.discussEditInFrontier + msgNum) Ç ÇBuild the Edit in Frontier button. Çadd ("<td valign=\"middle\"><center>"); indentLevel++ Çadd ("<form method=\"POST\" action=\"" + url + "\">"); indentLevel++ Çadd ("<input name=\"msgnum\" type=\"hidden\" value=\"" + msgNum + "\">") Çadd ("<input type=\"submit\" value=\"" + mainResponder.getString ("discuss.editInFrontier") + "\">") Çadd ("</form>"); indentLevel-- Çadd ("</center></td>"); indentLevel-- Ç ÇeditableInFrontier = true bundle { //edit in web browser button if editPageURL == "" { editPageURL = pta^.responderAttributes.urls^.discussEditInBrowser}; add ("<td valign=\"middle\"><center>"); indentLevel++; add ("<form method=\"post\" action=\"" + editPageURL + msgNum + "\">"); indentLevel++; add ("<input name=\"msgnum\" type=\"hidden\" value=\"" + msgNum + "\" />"); local (buttonValue = mainResponder.getString ("discuss.editThisPage")); if editableInFrontier { buttonValue = mainResponder.getString ("discuss.editInBrowser"); //change button name from Edit this Page to Edit in Browser add (" ")}; add ("<input type=\"submit\" value=\"" + buttonValue + "\" />"); add ("</form>"); indentLevel--; add ("</center>"); bundle { //PBS 01/13/00: Add the Edit in Pike button if defined (pta^.responderAttributes.urls^.editInPike) { ÇPike support is a feature not of mainResponder but of Manila. However, this script, which displays the discussion group message and the Edit this Page, needs to be Pike-aware enough to display the Pike button. Çif manilaSuite.pike.memberHasPike (pta) Çlocal (editInPikeUrl = pta^.responderAttributes.urls^.editInPike) Çif not (editInPikeUrl endsWith "$") ÇeditInPikeUrl = editInPikeUrl + "$" ÇeditInPikeUrl = editInPikeUrl + msgNum Çlocal (adrSite = pta^.adrSiteRootTable) Çlocal (adrMember = pta^.adrMemberInfo) Çadd (manilaSuite.pike.pikeButton (editInPikeUrl, adrMsgTable, adrMember, adrSite, true, mainResponder.getString ("discuss.editThisStoryInPikeOutline"), pta)) //true because this is a message add (manilaSuite.pike.editMessageButton (adrMsgTable, pta:pta))}}; //PBS 11/27/00: pta is named parameter add ("</td>"); indentLevel--}}; bundle { //put up message headers section Ç4/10/00; 12:17:54 AM by JES - added localization Çbundle // non-localized version Çadd ("<i>" + date.abbrevString (adrMsgTable^.postTime) + "; by " + name + ".</i>") local (flByline = flStoryHeaderOnly); //PBS 06/22/00: message table can over-ride byline display if defined (adrMsgTable^.flByline) { //an attribute in the message table can over-ride the site setting if not adrMsgTable^.flByline { flByline = false} else { flByline = true}}; if flByline and !flShowAuthor { //07/13/00 JES: added !flShowAuthor -- never show a Byline if we have an Author header ÇSupport DaveNet-style bylines: PBS 6/11/99 ÇLike: Friday, June 11, 1999; by Dave Winer (no link to author) if defined (pta^.readMessageBylineFormat) and string.lower (pta^.readMessageBylineFormat) == "davenet" { bundle { local { name = mainResponder.members.linkToMember (membershipGroup, adrMsgTable^.member)}; add ("<i>" + mainResponder.macros.byline (name, adrMsgTable^.postTime, "DaveNet") + "</i>")}; Çbundle // old code Çlocal (adrMember = mainResponder.members.getMemberTable (membershipGroup, adrMsgTable^.member)) Çlocal (name = nameOf (adrMember^)) // 10/05/05; 7:01:56 PM by PR default to the member key Çif defined (adrMember^.personalInfo.name) Çname = adrMember^.personalInfo.name Çelse Çif name contains '@' Çname = string.replace (string.mid (name, 1, string.patternMatch ('@', name)+2) + "...", '@', "@") Çadd ("<i>" + mainResponder.macros.byline (name, adrMsgTable^.postTime, "DaveNet") + "</i>")}} else { // standard byline format local (authorLink = mainResponder.members.linkToMember (membershipGroup, adrMsgTable^.member, true, useMap: flUseMappedMemberKeys)); add ("<i>" + mainResponder.macros.byline (authorLink, adrMsgTable^.postTime) + "</i>")}}; local (flDoHeaders = false); //PBS 10/5/99: fix for blank headers section, which messages up the formatting if flEditButtonsAtTop { flDoHeaders = true} else { if flShowMessageHeaders { case true { flShowAuthor; flShowPostTime; flShowMsgNums; flShowEnclosure; flShowReads; flShowAttachment { flDoHeaders = true}}}}; if flDoHeaders { //PBS 10/5/99: was: if (flShowMessageHeaders or flEditButtonsAtTop) add ("<p />");; add ("<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\">"); indentLevel++; add ("<tr>"); indentLevel++; if flShowMessageHeaders { //add author, posted, msg#, etc add ("<td>"); indentLevel++; add ("<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\">"); indentLevel++; on tr (label, val) { add ("<tr>"); indentLevel++; add ("<td valign=\"top\"><font size=\"+0\"><b>" + label + "</b> </font></td>"); add ("<td valign=\"top\"><font size=\"+0\">" + val + "</font></td>"); add ("</tr>"); indentLevel--}; on msgLink (msgNum) { return ("<a href=\"" + pta^.responderAttributes.urls^.discussMsgReader + msgNum + searchArgs + "\">" + msgNum + "</a>")}; if flShowAuthor { tr (mainResponder.getString ("discuss.authorHeader"), mainResponder.members.linkToMember (membershipGroup, adrMsgTable^.member, true, useMap: flUseMappedMemberKeys))}; // 4/13/00 JES: localized the header if flShowPostTime { tr (mainResponder.getString ("discuss.postedHeader"), mainResponder.localization.dateTimeString (adrMsgTable^.postTime))}; // 4/13/00 JES: localized the header and the date if flShowMsgNums and (adrMsgTable^.inResponseTo > 0) { //spit out the Topic line local (nomad = adrMsgTable); while (nomad^.inResponseTo > 0) { nomad = mainResponder.discuss.getMessageTable (nomad^.inResponseTo)}; tr (mainResponder.getString ("discuss.topicHeader"), "<a href=\"" + pta^.responderAttributes.urls^.discussMsgReader + nomad^.msgNum + searchArgs + "\">" + nomad^.subject + "</a>")}; // 4/13/00 JES: localized the header if flShowMsgNums { // put out the Msg# line local (val = msgNum); if adrMsgTable^.inResponseTo > 0 { try { local (replacementTable); new (tableType, @replacementTable); // 05/01/00 JES: use replacement table instead of a list replacementTable.msglink = msgLink (adrMsgTable^.inResponseTo); val = val + " (" + mainResponder.getString ("discuss.inResponseTo", @replacementTable) + ")"}} // 4/13/00 JES: localized the header else { val = val + " (" + mainResponder.getString ("discuss.topMsgInThread") + ")"}; // 4/13/00 JES: localized tr (mainResponder.getString ("discuss.msgNumHeader"), val)}; if flShowEnclosure { //regurgitate the Enclosure line Çhttp://discuss.userland.com/enclosures/view$868 local (viewingUrl = pta^.responderAttributes.urls^.discussEnclosureViewer + msgNum); Ç4/13/00; 5:52:43 PM by JES: localized enclosure text local (listingLink = "<a href=\"" + viewingUrl + "\">" + mainResponder.getString ("discuss.viewEnclosure") + "</a>"); local (fatPageLink = "<a href=\"" + pta^.responderAttributes.urls^.discussEnclosureDownloader + msgNum + "\">" + mainResponder.getString ("discuss.fatPageEnclosure") + "</a>"); local (rpcLink = "<a href=\"" + pta^.responderAttributes.urls^.discussEnclosureRPCer + msgNum + "\">" + mainResponder.getString ("discuss.RPCenclosure") + "</a>"); tr (mainResponder.getString ("discuss.enclosureHeader"), listingLink + ", " + fatPageLink + ", " + rpcLink)}; if flShowMsgNums { //throw up Prev/Next local (ixPrev = -1, ixNext = -1); local (ixLastMsg = adrData^.prefs.nextMsgNum - 1); for i = (msgNum - 1) downTo 1 { //find the previous message local (adrMsg = mainResponder.discuss.getMessageTable (i, pta, adrData)); if not (mainResponder.discuss.isMessageDeleted (i, adrMsg, pta:pta)) { ixPrev = i; break}}; for i = (msgNum + 1) to ixLastMsg { //find the next message local (adrMsg = mainResponder.discuss.getMessageTable (i, pta, adrData)); if not (mainResponder.discuss.isMessageDeleted (i, adrMsg, pta:pta)) { ixNext = i; break}}; Ç4/13/00; 5:53:22 PM by JES: localized next/prev header and link display if ixPrev == -1 { if ixNext != -1 { tr (mainResponder.getString ("discuss.nextMsgHeader"), msgLink (ixNext))}} else { if ixNext == -1 { if ixPrev != -1 { tr (mainResponder.getString ("discuss.prevMsgHeader"), msgLink (ixPrev))}} else { local (replacementTable); new (tableType, @replacementTable); // 05/01/00 JES: use replacement table instead of a list replacementTable.prevmsglink = msgLink (ixPrev); replacementTable.nextmsglink = msgLink (ixNext); tr (mainResponder.getString ("discuss.prevNextMsgHeader"), mainResponder.getString ("discuss.prevNextMsgNums", @replacementTable))}}}; if flShowReads { //show the number of times this message has been read tr (mainResponder.getString ("discuss.readsHeader"), adrMsgTable^.ctReads)}; // 4/13/00 JES: localized if flShowAttachment { local (val); case string.lower (adrMsgTable^.attachment.mimeType) { // is it a GIF, JPEG, or PNG? "image/gif"; "image/jpeg"; "image/pjpeg"; "image/png" { val = "<img height=\"" + adrMsgTable^.attachment.height + "\" src=\"" + pta^.responderAttributes.urls^.discussAttachmentViewer + msgNum + "\" width=\"" + adrMsgTable^.attachment.width + "\" />"}} else { val = "<a href=\"" + adrMsgTable^.attachment.url + "\">" + adrMsgTable^.attachment.fileName + "</a>"; }; tr (mainResponder.getString ("discuss.attachmentHeader"), val)}; add ("</table>"); indentLevel--; add ("</td>"); indentLevel--}; if flEditButtonsAtTop { //add edit in Frontier button, possibly other stuff if (flStoryHeaderOnly or flShowMessageHeaders) { //add a bit of horizontal space add ("<td width=\"50\"> </td>")}; addEditButtons ()}; add ("</tr>"); indentLevel--; add ("</table>"); indentLevel--; add ("<p />")} else { add ("<p />")}}; bundle { //add the body of the story local (flCallbackReturnedBody = false); if adrGetBodyCallback != nil { local (s); s = adrGetBodyCallback^ (adrMsgTable); if s != "" { add (s); flCallbackReturnedBody = true}}; if not flCallbackReturnedBody { bundle { //PBS 10/20/99: if an image is attached to this message, display it above the body if defined (adrMsgTable^.image) { if defined (pta^.responderAttributes.urls^.imageViewer) { //must be defined: it's the link to the imageViewer script ÇThe imageViewer script takes a msgNum as pathArgs and displays the picture attached to that dg message. add (mainResponder.discuss.buildImageTag (adrMsgTable^.msgNum)); add ("<p />")}}}; if typeOf (adrMsgTable^.body) == outlineType { //outlines get passed through an outline renderer local (oldRenderOutlineWith = nil); if defined (pta^.renderOutlineWith) { oldRenderOutlineWith = pta^.renderOutlineWith}; if defined (pta^.renderDiscussOutlinesWith) { pta^.renderOutlineWith = pta^.renderDiscussOutlinesWith}; if defined (pta^.flReadMessageProcessMacros) and pta^.flReadMessageProcessMacros { try {add (html.processMacros (html.tenderRender (@adrMsgTable^.body), false, pta))}} else { if defined (pta^.flReadMessageExpandUrls) and not pta^.flReadMessageExpandUrls { try {add (html.tenderRender (@adrMsgTable^.body))}} else { //default, original behavior try {add (html.expandURLs (html.tenderRender (@adrMsgTable^.body)))}}}; if oldRenderOutlineWith != nil { pta^.renderOutlineWith = oldRenderOutlineWith}} else { //it's not an outline local (s = string (adrMsgTable^.body)); s = string.replaceAll (s, "\n", ""); //2/15/99 DW, inside <pre>s these cause extra line-skips if not (defined (pta^.flReadMessageAutoParagraphs)) or pta^.flReadMessageAutoParagraphs { s = string.replaceAll (s, "\r\r", "\r\r<p />")}; if not (defined (pta^.flReadMessageProcessMacros)) or pta^.flReadMessageProcessMacros { s = html.processMacros (s, false, pta); }; Çadd ("<font size=\"+0\">" + s + "</font>") add (s)}}}; //PBS 11/18/99: removed <font> tags from around message text, as they didn't do anything, but made it harder for a designer to specify the font for the page if flEditButtonsAtBottom { //add edit buttons to the bottom add ("<p />"); add ("<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\">"); indentLevel++; add ("<tr>"); indentLevel++; addEd... [truncated message content] |
|
From: creedon <icr...@us...> - 2006-02-09 02:48:36
|
Update of /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/localization/languages/english/strings/setupFrontier In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1618 Modified Files: newUserConfirmMessage Log Message: towards XHTML compliance Index: newUserConfirmMessage =================================================================== RCS file: /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/localization/languages/english/strings/setupFrontier/newUserConfirmMessage,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** newUserConfirmMessage 16 Jun 2005 06:16:50 -0000 1.2 --- newUserConfirmMessage 9 Feb 2006 02:48:28 -0000 1.3 *************** *** 1,3 **** ! FrontierVcsFile:1:wptx:mainResponder.localization.languages.english.strings.setupFrontier.newUserConfirmMessage ! <p><br>The setup process is complete.</p> <p>Click the Continue button below to go to the Frontier Admin website for the first time. You will be asked to log in with the email address and password you've supplied.</p> <p>You can return to the Admin website at any time, using the Open Admin Site command in Frontier's Server menu.<br><br></p> \ No newline at end of file --- 1,3 ---- ! FrontierVcsFile:1:optx:mainResponder.localization.languages.english.strings.setupFrontier.newUserConfirmMessage ! <p> <br /> The setup process is complete. </p> <p> Click the Continue button below to go to the Frontier Admin website for the first time. You will be asked to log in with the email address and password you've supplied. </p> <p> You can return to the Admin website at any time, using the Open Admin Site command in Frontier's Server menu. <br /> <br /> </p> \ No newline at end of file |
|
From: creedon <icr...@us...> - 2006-02-09 02:47:23
|
Update of /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/search/utilities In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1247 Modified Files: indexDiscussionGroup Log Message: made this more generally useful, it used to be setup to just index a single dg Index: indexDiscussionGroup =================================================================== RCS file: /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/search/utilities/indexDiscussionGroup,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** indexDiscussionGroup 26 Mar 2005 21:46:13 -0000 1.1.1.1 --- indexDiscussionGroup 9 Feb 2006 02:47:11 -0000 1.2 *************** *** 1,3 **** FrontierVcsFile:1:scpt:mainResponder.search.utilities.indexDiscussionGroup ! ÇIndex the UserLand Discussion Group. local (adrMessages); local (siteName = "Discussion Group"); local (siteUrl = "http://discuss.userland.com/"); local (baseUrl = siteUrl + "msgReader$"); local (client = tcp.myDottedId ()); adrMessages = @["D:\\discuss.root"].discuss.messages; local (i); for i = 1 to sizeOf (adrMessages^) { local (adrMessage = @adrMessages^ [i]); if defined (adrMessage^.flDeleted) and adrMessage^.flDeleted { continue}; local (text, title, url); title = adrMessage^.subject; text = string (adrMessage^.body); text = text + " " + adrMessage^.member + " " + title; local (lastMod = clock.now ()); try {lastMod = adrMessage^.postTime}; try {lastMod = adrMessage^.lastUpdate}; url = baseUrl + adrMessage^.msgNum; mainResponder.search.server.index (title, url, text, siteName, siteUrl, client, false, lastMod); fileMenu.save (mainResponder.search.utilities.getIndexPath ())} \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:scpt:mainResponder.search.utilities.indexDiscussionGroup ! on indexDiscussionGroup (adrMessages, siteName, siteUrl, messageReaderUrl, client = tcp.myDottedId ()) { ÇChanges Ç8/11/05; 5:25:57 PM by TAC Çmade this more generally useful, it used to be setup to just index a single dg ÇIndex a Discussion Group. local (i); mainResponder.search.utilities.assureIndex (); for i = 1 to sizeOf (adrMessages^) { local (adrMessage = @adrMessages^ [i]); if defined (adrMessage^.flDeleted) and adrMessage^.flDeleted { continue}; local (text, title, url); title = adrMessage^.subject; text = string (adrMessage^.body); text = text + " " + adrMessage^.member + " " + title; local (lastMod = clock.now ()); try {lastMod = adrMessage^.postTime}; try {lastMod = adrMessage^.lastUpdate}; url = messageReaderUrl + adrMessage^.msgNum; mainResponder.search.server.index (title, url, text, siteName, siteUrl, client, false, lastMod); fileMenu.save (mainResponder.search.utilities.getIndexPath ())}}; Çbundle // testing ÇindexDiscussionGroup (@localDocserverMrWs.["#discussionGroup"].messages, localDocserverMnrspndrWbst.["#prefs"].siteName, localDocserverMnrspndrWbst.["#ftpSite"].url, localDocserverMnrspndrWbst.["#urls"].discussMsgReader) ÇindexDiscussionGroup (@sampleMrWs.["#discussionGroup"].messages, sampleMrWs.["#siteName"], sampleMrWs.["#ftpSite"].url, sampleMrWs.["#urls"].discussMsgReader) \ No newline at end of file |
|
From: creedon <icr...@us...> - 2006-02-09 02:44:59
|
Update of /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/members In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv364 Added Files: displayProfilePicture Log Message: created --- NEW FILE: displayProfilePicture --- (This appears to be a binary file; contents omitted.) |
|
From: creedon <icr...@us...> - 2006-02-09 02:44:08
|
Update of /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/search/client In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32572 Modified Files: addMessageCallback Log Message: reworked, using mainResponder.search.client.index seems severely broken Index: addMessageCallback =================================================================== RCS file: /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/search/client/addMessageCallback,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** addMessageCallback 26 Mar 2005 21:46:10 -0000 1.1.1.1 --- addMessageCallback 9 Feb 2006 02:43:59 -0000 1.2 *************** *** 1,3 **** FrontierVcsFile:1:scpt:mainResponder.search.client.addMessageCallback ! on addMessageCallback (adrObject) { ÇWhenever a DG message is new or changed, this callback gets called. try {mainResponder.search.client.index (adrObject)}; return (true)} \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:scpt:mainResponder.search.client.addMessageCallback ! on addMessageCallback (adrObject) { ÇChanges Ç1/14/06; 9:59:44 AM by TAC Çreworked, using mainResponder.search.client.index seems severely broken ÇWhenever a DG message is new or changed, this callback gets called. try { // index message local (pta = html.getPageTableAddress ()); Çscratchpad.pt = pta^ // for testing local (adrMessageTable, text, url); case true { defined (pta^.adrEditedMsg) { adrMessageTable = pta^.adrEditedMsg}; defined (pta^.adrNewMsg) { adrMessageTable = pta^.adrNewMsg}}; text = string (adrMessageTable^.body); if defined (adrMessageTable^.alsoListedIn) { if adrMessageTable^.alsoListedIn contains "stories" { // could be more robust url = pta^.urls^.storyReader + adrMessageTable^.msgNum}} else { url = pta^.urls^.discussMsgReader + adrMessageTable^.msgNum}; if defined (pta^.search^.flProcessMacros) { // perhaps process macros if pta^.search^.flProcessMacros { local (oldPta, pt); new (tableType, @pt); pt.adrMsgToEdit = adrMessageTable; try { oldPta = html.getPageTableAddress ()}; if oldPta == nil { Çpt.adrMsgToEdit = adrMsgTable pt.adrObject = nil; pt.adrSiteRootTable = adrSite; pt.glossary = @adrSite^.["#glossary"]} else { pt.adrObject = oldPta^.adrObject; pt.adrSiteRootTable = oldPta^.adrSiteRootTable; pt.glossary = oldPta^.glossary}; html.setPageTableAddress (@pt); text = html.processMacros (text, adrPageTable: @pt); if oldPta == nil { html.deletePageTableAddress ()} else { html.setPageTableAddress (oldPta)}}}; mainResponder.search.server.storePageForIndexing (adrMessageTable^.subject, url, text, pta^.search^.siteName, pta^.ftpSite^.url, pta^.client, config.mainresponder.search.prefs.flStoreFullText, createdDate: adrMessageTable^.postTime, lastModDate: adrMessageTable^.lastUpdate)}; return (true)}; Çbundle // testing Çhtml.setPageTableAddress (@scratchpad.pt) Ç ÇaddMessageCallback (@scratchpad.pt.adrObject) Ç Çhtml.deletePageTableAddress () \ No newline at end of file |
|
From: creedon <icr...@us...> - 2006-02-09 02:42:45
|
Update of /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/adminSite/website In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32194 Modified Files: setupFrontier Log Message: lowercase method get, towards XHTML compliance Index: setupFrontier =================================================================== RCS file: /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/adminSite/website/setupFrontier,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** setupFrontier 2 Feb 2006 07:46:38 -0000 1.5 --- setupFrontier 9 Feb 2006 02:42:34 -0000 1.6 *************** *** 1,3 **** FrontierVcsFile:1:scpt:mainResponder.adminSite.website.setupFrontier ! on setupFrontier () { ÇChanges Ç2/1/06; 1:32:48 PM by TAC Çtowards XHTML compliance Çlowercase method check, towards XHTML compliance Ç7/6/05; 12:51:01 PM by TAC Çrewrite, based on old code <http://cvs.sourceforge.net/viewcvs.py/frontierkernel/odbs/mainResponderRoot/mainResponder/adminSite/website/setupFrontier?rev=1.2> local (pta = html.getPageTableAddress ()); local (errorMessage = "", htmlText = "", indentLevel = 0, pathArgs = ""); on add (s) { htmlText = htmlText + string.filledstring ("\t", indentLevel) + s + "\r"}; on popupWindowLink (label, localizationStringId) { localizationStringId = string.urlEncode (localizationStringId); return ("<a href=\"JavaScript: newWindow=openWin ('" + string.popLeading (pta^.URI, '/') + "$popupWindow?label=" + string.urlEncode (label) + "&localizationStringId=" + localizationStringId + "', 'prefsPopup', 'width=400,height=400,toolbar=0,location=0,directories=0,status=0,menuBar=0,scrollBars=1,resizable=1'); newWindow.focus ()\">" + label + "</a>")}; if string.lower (pta^.method) == "post" { local (adrArgs = @pta^.postArgs, flError = false); if defined (adrArgs^.personalize) { // personalize local (name = adrArgs^.name); local (organization = adrArgs^.organization); local (email = adrArgs^.email); local (mailHost = adrArgs^.mailHost); local (password = adrArgs^.password); local (repeat = adrArgs^.repeatPassword); bundle { // convert mail host port to a number try { // if not, it's an error adrArgs^.mailHostPort = number (adrArgs^.mailHostPort)} else { errorMessage = "Can't set the outgoing mail server port because the port you entered is not valid."; flError = true}}; bundle { // convert web server port to a number try { // if not, it's an error adrArgs^.webServerPort = number (adrArgs^.webServerPort)} else { errorMessage = "Can't set the web server port because the port you entered is not valid."; flError = true}}; on getInitials (s) { local (initials = ""); bundle { //strip off parentheticals if s contains "(" { s = string.nthField (s, "(", 1)}; if s contains "[" { s = string.nthField (s, "[", 1)}; if s contains "{" { s = string.nthField (s, "{", 1)}}; s = string.trimWhiteSpace (s); initials = string.upper (s[1]); local (i, ct = sizeOf (s)); if sizeOf (s) > 1 { local (flNextCharIsInitial = false); for i = 2 to ct { if flNextCharIsInitial { if string.isAlpha (s[i]) { initials = initials + string.upper (s[i])}; flNextCharIsInitial = false}; if not string.isAlpha (s[i]) { flNextCharIsInitial = true}}}; return (initials)}; on setName (name) { user.prefs.name = name; bundle { //set user.prefs.initials user.prefs.initials = getInitials (name)}}; on setEmail (email) { user.prefs.mailAddress = email}; if system.environment.isMac { //convert name, organization to Mac text name = latinToMac.convert (name); organization = latinToMac.convert (organization)}; setName (name); setEmail (email); user.prefs.organization = organization; user.prefs.mailHost = mailHost; config.mainResponder.prefs.baseUrl = "http://" + adrArgs^.webServerDomain + "/"; bundle { //check that the password is ok, and that it matches the repeat password if sizeOf (password) < 4 { errorMessage = "Can't continue setting up Frontier because the password you supplied is not at least four characters long."; flError = true}; if not flError { if password != repeat { errorMessage = "Can't continue setting up Frontier because the password you supplied does not match the repeat password."; flError = true}}}; bundle { //set up Admin member for access to control panel bundle { //create the Admin membership group if needed local (adrRoot = @[system.temp.mainResponder.membersRootFile]); local (adrGroup = @adrRoot^.admin); if not defined (adrGroup^) { new (tableType, adrGroup)}; if not defined (adrGroup^.callbacks) { new (tableType, @adrGroup^.callbacks)}; if not defined (adrGroup^.cookieDomain) { adrGroup^.cookieDomain = ""}; if not defined (adrGroup^.cookieExpires) { adrGroup^.cookieExpires = "Mon, 01 Apr 2030 07:00:00 GMT"}; if not defined (adrGroup^.cookieName) { adrGroup^.cookieName = "Admin"}; if not defined (adrGroup^.mailReturnAddress) { adrGroup^.mailReturnAddress = user.prefs.mailAddress}; if not defined (adrGroup^.mailSubject) { adrGroup^.mailSubject = "Admin"}; if not defined (adrGroup^.mailTemplate) { wp.newTextObject ("", @adrGroup^.mailTemplate)}; if not defined (adrGroup^.openToPublic) { adrGroup^.openToPublic = false}; if not defined (adrGroup^.users) { new (tableType, @adrGroup^.users)}}; local (adrMember = mainResponder.members.getMemberTable ("Admin", user.prefs.mailAddress)); if not defined (adrMember^) { new (tableType, adrMember)}; adrMember^.password = password; if not defined (adrMember^.personalInfo) { new (tableType, @adrMember^.personalInfo)}; if not defined (adrMember^.personalInfo.name) { adrMember^.personalInfo.name = user.prefs.name}}; if not (flError) { user.prefs.mailHostPort = adrArgs^.mailHostPort; if adrArgs^.webServerPort != user.inetd.config.http.port { // web server port local (flRunning = inetd.isDaemonRunning (@user.inetd.config.http)); if flRunning { //stop server, set port, restart server inetd.stopOne (@user.inetd.config.http); user.inetd.config.http.port = adrArgs^.webServerPort; inetd.startOne (@user.inetd.config.http)} else { //just set port user.inetd.config.http.port = adrArgs^.webServerPort}}; scriptError ("!redirect " + pta^.URI + "$proxyServer")}}; if defined (adrArgs^.proxyServer) { // proxy server try { // convert port to a number -- if not, it's an error adrArgs^.port = number (adrArgs^.port)} else { errorMessage = "Can't set your proxy server settings because the port you entered is not valid."; adrArgs^.enabled = false; flError = true}; user.webBrowser.proxy.domain = adrArgs^.domain; user.webBrowser.proxy.username = adrArgs^.username; user.webBrowser.proxy.password = binary (adrArgs^.password); user.webBrowser.proxy.enabled = false; if defined (adrArgs^.enabled) { if adrArgs^.enabled { user.webBrowser.proxy.enabled = true}}; if not (flError) { user.webBrowser.proxy.port = adrArgs^.port; scriptError ("!redirect " + pta^.URI + "$portForwarding")}}; if defined (adrArgs^.portForwarding) { // port forwarding local (adminPassword = adrArgs^.password); local (flEnablePortForwarding = defined (adrArgs^.flEnablePortForwarding)); local (flRememberAdminPassword = defined (adrArgs^.flRememberAdminPassword)); local (password = mainResponder.members.getMemberTable ("Admin", user.prefs.mailAddress)^.password); local (urlParts = string.urlSplit (config.mainResponder.prefs.baseUrl)); bundle { // convert actualPort to a number -- if not, it's an error try { adrArgs^.actualPort = number (adrArgs^.actualPort)} else { errorMessage = "Can't set your actual web server port because the port you entered is not valid."; flEnablePortForwarding = false; flError = true}}; bundle { // convert apparentPort to a number -- if not, it's an error try { adrArgs^.apparentPort = number (adrArgs^.apparentPort)} else { errorMessage = "Can't set your apparent web server port because the port you entered is not valid."; flEnablePortForwarding = false; flError = true}}; if flRememberAdminPassword and flEnablePortForwarding { user.prefs.portForwardingAdminPassword = binary (adminPassword)}; if not (flError) { if adrArgs^.actualPort != user.inetd.config.http.port or adrArgs^.apparentPort != user.inetd.config.http.apparentPort { local (flRunning = inetd.isDaemonRunning (@user.inetd.config.http)); if flRunning { // stop server, set port, restart server inetd.stopOne (@user.inetd.config.http); user.inetd.config.http.apparentPort = adrArgs^.apparentPort; user.inetd.config.http.port = adrArgs^.actualPort; inetd.startOne (@user.inetd.config.http)} else { // just set port user.inetd.config.http.apparentPort = adrArgs^.apparentPort; user.inetd.config.http.port = adrArgs^.actualPort}}}; Frontier.completeSetup (urlParts [2], password, adminPassword, flRememberAdminPassword, flEnablePortForwarding); if not (flError) { scriptError ("!redirect " + pta^.URI + "$congratulations")}}}; if defined (pta^.pathArgs) { if pta^.pathArgs != "" { pathArgs = pta^.pathArgs}}; case pathArgs { // generally the cases should be ordered in user presentation order, they can be accessed by name or number, name is preferred "1"; "personalize" { local (name = user.prefs.name, organization = user.prefs.organization); pta^.title = "Personalize"; bundle { // change the template to the setup template, which doesn't have navigation links to the rest of the admin site table.assign (@pta^.template, "setup"); pta^.indirectTemplate = true}; if system.environment.isMac { // convert name, organization to latin text name = latinToMac.macToLatin (name); organization = latinToMac.macToLatin (organization)}; bundle { //render the new user page local (t); new (tabletype, @t); bundle { // add the labels to the replacement table t.webserverdomainlabel = popupWindowLink ("Web server domain name or IP address", "setupFrontier.popupText.webServerDomainIp")}; bundle { // add personal info to replacement table t.mailhost = user.prefs.mailHost; t.mailHostPort = user.prefs.mailHostPort; t.useremail = user.prefs.mailAddress; t.username = name; t.userorganization = organization; t.userpassword = ""; bundle { // web server domain or ip address local (urlParts = string.urlSplit (config.mainResponder.prefs.baseUrl)); t.webserverdomain = urlParts [2]}; try { // try to get the admin password from the Admin membership group local (adrMember = mainResponder.members.getMemberTable ("Admin", user.prefs.mailAddress)); if defined (adrMember^) { t.userpassword = adrMember^.password}}; bundle { // web server port t.webserverport = user.inetd.config.http.port}}; bundle { // add error message to replacement table t.errorMessage = ""; if errorMessage != "" { t.errorMessage = "<p style=\"color: red;\">" + errorMessage + "</p>"}}; add (mainResponder.getString ("setupFrontier.personalize", @t))}}; "2"; "proxyServer" { pta^.title = "Proxy Server Settings"; bundle { // change the template to the setup template, which doesn't have navigation links to the rest of the admin site table.assign (@pta^.template, "setup"); pta^.indirectTemplate = true}; bundle { // render the new user page local (t); new (tabletype, @t); bundle { // add proxy settings to replacement table with user.webBrowser.proxy { t.proxydomain = domain; t.proxyusername = username; t.proxypassword = string (password); t.proxyport = port; if enabled { t.proxyenabled = "checked"} else { t.proxyenabled = ""}}}; bundle { // add error message to replacement table t.errorMessage = ""; if errorMessage != "" { t.errorMessage = "<p style=\"color: red;\">" + errorMessage + "</p>"}}; add (mainResponder.getString ("setupFrontier.proxyServer", @t))}}; "3"; "portForwarding" { if system.environment.isCarbon { //we need to run the port forwarding page now pta^.title = "Mac OS X Port Forwarding"; bundle { // change the template to the setup template, which doesn't have navigation links to the rest of the admin site table.assign (@pta^.template, "setup"); pta^.indirectTemplate = true}; bundle { // render the new user page local (t); new (tabletype, @t); t.adminPassword = ""; t.rememberAdminPassword = "checked"; t.enablePortForwarding = "checked"; t.actualPort = user.inetd.config.http.port; t.apparentPort = 80; if defined (user.inetd.config.http.apparentPort) { t.apparentPort = user.inetd.config.http.apparentPort}; if defined (user.prefs.portForwardingAdminPassword) { t.adminPassword = string (user.prefs.portForwardingAdminPassword)}; bundle { // add error message to replacement table t.errorMessage = ""; if errorMessage != "" { t.errorMessage = "<p style=\"color: red;\">" + errorMessage + "</p>"}}; add (mainResponder.getString ("setupFrontier.portForwarding", @t))}} else { //Windows and Classic don't need to deal with port forwarding local (password = mainResponder.members.getMemberTable ("Admin", user.prefs.mailAddress)^.password); local (urlParts = string.urlSplit (config.mainResponder.prefs.baseUrl)); Frontier.completeSetup (urlParts [2], password); scriptError ("!redirect " + pta^.URI + "$congratulations")}}; "4"; "congratulations" { bundle { // change the template to the setup template, which doesn't have navigation links to the rest of the admin site table.assign (@pta^.template, "setup"); pta^.indirectTemplate = true}; pta^.title = "Congratulations"; local (adminSiteUrl = "http://" + pta^.host + "/"); bundle { //render the new user page add (mainResponder.getString ("setupFrontier.newUserConfirmMessage")); bundle { //add the Continue button local (adminSiteUrl = "http://" + pta^.host + "/"); add ("<form method=\"GET\" action=\"" + adminSiteUrl + "\">"); add ("<input type=\"submit\" value=\"Continue\" onclick=\"document.location='" + adminSiteUrl + "'\" />"); add ("</form>")}; if defined (system.temp.Frontier.setupFrontier.flAllowLocalAccessToSetupPage) { system.temp.Frontier.setupFrontier.flAllowLocalAccessToSetupPage = false}}}; //require login from now on "popupWindow" { // this is a special case, it produces a popup window pta^.autoParagraphs = true; pta^.title = "Popup Text"; table.assign (@pta^.pageHeader, "<html><head><title><%title%></title></head><body>"); table.assign (@pta^.template, "<body>{bodytext}</body></html>"); try { delete (@pta^.javaScript)}; // popup windows should not have any JavaScript add ("<div name=\"setupfrontierpopupwindow\" style=\"font-size: x-large; margin: 13px;\">"); indentLevel++; add ("<b>"); indentLevel++; add (string.urlDecode (pta^.searchArgTable.label)); add ("</b>"); indentLevel--; add ("<br />"); add ("<br />"); add (mainResponder.getString (pta^.searchArgTable.localizationStringId)); add ("</div>"); indentLevel--}} else { scriptError ("!redirect " + pta^.URI + "$personalize")}; return (htmlText)} \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:scpt:mainResponder.adminSite.website.setupFrontier ! on setupFrontier () { ÇChanges Ç2/8/06; 2:20:15 PM by TAC Çlowercase method get, towards XHTML compliance Ç2/1/06; 1:32:48 PM by TAC Çtowards XHTML compliance Çlowercase method check, towards XHTML compliance Ç7/6/05; 12:51:01 PM by TAC Çrewrite, based on old code <http://cvs.sourceforge.net/viewcvs.py/frontierkernel/odbs/mainResponderRoot/mainResponder/adminSite/website/setupFrontier?rev=1.2> local (pta = html.getPageTableAddress ()); local (errorMessage = "", htmlText = "", indentLevel = 0, pathArgs = ""); on add (s) { htmlText = htmlText + string.filledstring ("\t", indentLevel) + s + "\r"}; on popupWindowLink (label, localizationStringId) { localizationStringId = string.urlEncode (localizationStringId); return ("<a href=\"JavaScript: newWindow=openWin ('" + string.popLeading (pta^.URI, '/') + "$popupWindow?label=" + string.urlEncode (label) + "&localizationStringId=" + localizationStringId + "', 'prefsPopup', 'width=400,height=400,toolbar=0,location=0,directories=0,status=0,menuBar=0,scrollBars=1,resizable=1'); newWindow.focus ()\">" + label + "</a>")}; if string.lower (pta^.method) == "post" { local (adrArgs = @pta^.postArgs, flError = false); if defined (adrArgs^.personalize) { // personalize local (name = adrArgs^.name); local (organization = adrArgs^.organization); local (email = adrArgs^.email); local (mailHost = adrArgs^.mailHost); local (password = adrArgs^.password); local (repeat = adrArgs^.repeatPassword); bundle { // convert mail host port to a number try { // if not, it's an error adrArgs^.mailHostPort = number (adrArgs^.mailHostPort)} else { errorMessage = "Can't set the outgoing mail server port because the port you entered is not valid."; flError = true}}; bundle { // convert web server port to a number try { // if not, it's an error adrArgs^.webServerPort = number (adrArgs^.webServerPort)} else { errorMessage = "Can't set the web server port because the port you entered is not valid."; flError = true}}; on getInitials (s) { local (initials = ""); bundle { //strip off parentheticals if s contains "(" { s = string.nthField (s, "(", 1)}; if s contains "[" { s = string.nthField (s, "[", 1)}; if s contains "{" { s = string.nthField (s, "{", 1)}}; s = string.trimWhiteSpace (s); initials = string.upper (s[1]); local (i, ct = sizeOf (s)); if sizeOf (s) > 1 { local (flNextCharIsInitial = false); for i = 2 to ct { if flNextCharIsInitial { if string.isAlpha (s[i]) { initials = initials + string.upper (s[i])}; flNextCharIsInitial = false}; if not string.isAlpha (s[i]) { flNextCharIsInitial = true}}}; return (initials)}; on setName (name) { user.prefs.name = name; bundle { //set user.prefs.initials user.prefs.initials = getInitials (name)}}; on setEmail (email) { user.prefs.mailAddress = email}; if system.environment.isMac { //convert name, organization to Mac text name = latinToMac.convert (name); organization = latinToMac.convert (organization)}; setName (name); setEmail (email); user.prefs.organization = organization; user.prefs.mailHost = mailHost; config.mainResponder.prefs.baseUrl = "http://" + adrArgs^.webServerDomain + "/"; bundle { //check that the password is ok, and that it matches the repeat password if sizeOf (password) < 4 { errorMessage = "Can't continue setting up Frontier because the password you supplied is not at least four characters long."; flError = true}; if not flError { if password != repeat { errorMessage = "Can't continue setting up Frontier because the password you supplied does not match the repeat password."; flError = true}}}; bundle { //set up Admin member for access to control panel bundle { //create the Admin membership group if needed local (adrRoot = @[system.temp.mainResponder.membersRootFile]); local (adrGroup = @adrRoot^.admin); if not defined (adrGroup^) { new (tableType, adrGroup)}; if not defined (adrGroup^.callbacks) { new (tableType, @adrGroup^.callbacks)}; if not defined (adrGroup^.cookieDomain) { adrGroup^.cookieDomain = ""}; if not defined (adrGroup^.cookieExpires) { adrGroup^.cookieExpires = "Mon, 01 Apr 2030 07:00:00 GMT"}; if not defined (adrGroup^.cookieName) { adrGroup^.cookieName = "Admin"}; if not defined (adrGroup^.mailReturnAddress) { adrGroup^.mailReturnAddress = user.prefs.mailAddress}; if not defined (adrGroup^.mailSubject) { adrGroup^.mailSubject = "Admin"}; if not defined (adrGroup^.mailTemplate) { wp.newTextObject ("", @adrGroup^.mailTemplate)}; if not defined (adrGroup^.openToPublic) { adrGroup^.openToPublic = false}; if not defined (adrGroup^.users) { new (tableType, @adrGroup^.users)}}; local (adrMember = mainResponder.members.getMemberTable ("Admin", user.prefs.mailAddress)); if not defined (adrMember^) { new (tableType, adrMember)}; adrMember^.password = password; if not defined (adrMember^.personalInfo) { new (tableType, @adrMember^.personalInfo)}; if not defined (adrMember^.personalInfo.name) { adrMember^.personalInfo.name = user.prefs.name}}; if not (flError) { user.prefs.mailHostPort = adrArgs^.mailHostPort; if adrArgs^.webServerPort != user.inetd.config.http.port { // web server port local (flRunning = inetd.isDaemonRunning (@user.inetd.config.http)); if flRunning { //stop server, set port, restart server inetd.stopOne (@user.inetd.config.http); user.inetd.config.http.port = adrArgs^.webServerPort; inetd.startOne (@user.inetd.config.http)} else { //just set port user.inetd.config.http.port = adrArgs^.webServerPort}}; scriptError ("!redirect " + pta^.URI + "$proxyServer")}}; if defined (adrArgs^.proxyServer) { // proxy server try { // convert port to a number -- if not, it's an error adrArgs^.port = number (adrArgs^.port)} else { errorMessage = "Can't set your proxy server settings because the port you entered is not valid."; adrArgs^.enabled = false; flError = true}; user.webBrowser.proxy.domain = adrArgs^.domain; user.webBrowser.proxy.username = adrArgs^.username; user.webBrowser.proxy.password = binary (adrArgs^.password); user.webBrowser.proxy.enabled = false; if defined (adrArgs^.enabled) { if adrArgs^.enabled { user.webBrowser.proxy.enabled = true}}; if not (flError) { user.webBrowser.proxy.port = adrArgs^.port; scriptError ("!redirect " + pta^.URI + "$portForwarding")}}; if defined (adrArgs^.portForwarding) { // port forwarding local (adminPassword = adrArgs^.password); local (flEnablePortForwarding = defined (adrArgs^.flEnablePortForwarding)); local (flRememberAdminPassword = defined (adrArgs^.flRememberAdminPassword)); local (password = mainResponder.members.getMemberTable ("Admin", user.prefs.mailAddress)^.password); local (urlParts = string.urlSplit (config.mainResponder.prefs.baseUrl)); bundle { // convert actualPort to a number -- if not, it's an error try { adrArgs^.actualPort = number (adrArgs^.actualPort)} else { errorMessage = "Can't set your actual web server port because the port you entered is not valid."; flEnablePortForwarding = false; flError = true}}; bundle { // convert apparentPort to a number -- if not, it's an error try { adrArgs^.apparentPort = number (adrArgs^.apparentPort)} else { errorMessage = "Can't set your apparent web server port because the port you entered is not valid."; flEnablePortForwarding = false; flError = true}}; if flRememberAdminPassword and flEnablePortForwarding { user.prefs.portForwardingAdminPassword = binary (adminPassword)}; if not (flError) { if adrArgs^.actualPort != user.inetd.config.http.port or adrArgs^.apparentPort != user.inetd.config.http.apparentPort { local (flRunning = inetd.isDaemonRunning (@user.inetd.config.http)); if flRunning { // stop server, set port, restart server inetd.stopOne (@user.inetd.config.http); user.inetd.config.http.apparentPort = adrArgs^.apparentPort; user.inetd.config.http.port = adrArgs^.actualPort; inetd.startOne (@user.inetd.config.http)} else { // just set port user.inetd.config.http.apparentPort = adrArgs^.apparentPort; user.inetd.config.http.port = adrArgs^.actualPort}}}; Frontier.completeSetup (urlParts [2], password, adminPassword, flRememberAdminPassword, flEnablePortForwarding); if not (flError) { scriptError ("!redirect " + pta^.URI + "$congratulations")}}}; if defined (pta^.pathArgs) { if pta^.pathArgs != "" { pathArgs = pta^.pathArgs}}; case pathArgs { // generally the cases should be ordered in user presentation order, they can be accessed by name or number, name is preferred "1"; "personalize" { local (name = user.prefs.name, organization = user.prefs.organization); pta^.title = "Personalize"; bundle { // change the template to the setup template, which doesn't have navigation links to the rest of the admin site table.assign (@pta^.template, "setup"); pta^.indirectTemplate = true}; if system.environment.isMac { // convert name, organization to latin text name = latinToMac.macToLatin (name); organization = latinToMac.macToLatin (organization)}; bundle { //render the new user page local (t); new (tabletype, @t); bundle { // add the labels to the replacement table t.webserverdomainlabel = popupWindowLink ("Web server domain name or IP address", "setupFrontier.popupText.webServerDomainIp")}; bundle { // add personal info to replacement table t.mailhost = user.prefs.mailHost; t.mailHostPort = user.prefs.mailHostPort; t.useremail = user.prefs.mailAddress; t.username = name; t.userorganization = organization; t.userpassword = ""; bundle { // web server domain or ip address local (urlParts = string.urlSplit (config.mainResponder.prefs.baseUrl)); t.webserverdomain = urlParts [2]}; try { // try to get the admin password from the Admin membership group local (adrMember = mainResponder.members.getMemberTable ("Admin", user.prefs.mailAddress)); if defined (adrMember^) { t.userpassword = adrMember^.password}}; bundle { // web server port t.webserverport = user.inetd.config.http.port}}; bundle { // add error message to replacement table t.errorMessage = ""; if errorMessage != "" { t.errorMessage = "<p style=\"color: red;\">" + errorMessage + "</p>"}}; add (mainResponder.getString ("setupFrontier.personalize", @t))}}; "2"; "proxyServer" { pta^.title = "Proxy Server Settings"; bundle { // change the template to the setup template, which doesn't have navigation links to the rest of the admin site table.assign (@pta^.template, "setup"); pta^.indirectTemplate = true}; bundle { // render the new user page local (t); new (tabletype, @t); bundle { // add proxy settings to replacement table with user.webBrowser.proxy { t.proxydomain = domain; t.proxyusername = username; t.proxypassword = string (password); t.proxyport = port; if enabled { t.proxyenabled = "checked"} else { t.proxyenabled = ""}}}; bundle { // add error message to replacement table t.errorMessage = ""; if errorMessage != "" { t.errorMessage = "<p style=\"color: red;\">" + errorMessage + "</p>"}}; add (mainResponder.getString ("setupFrontier.proxyServer", @t))}}; "3"; "portForwarding" { if system.environment.isCarbon { //we need to run the port forwarding page now pta^.title = "Mac OS X Port Forwarding"; bundle { // change the template to the setup template, which doesn't have navigation links to the rest of the admin site table.assign (@pta^.template, "setup"); pta^.indirectTemplate = true}; bundle { // render the new user page local (t); new (tabletype, @t); t.adminPassword = ""; t.rememberAdminPassword = "checked"; t.enablePortForwarding = "checked"; t.actualPort = user.inetd.config.http.port; t.apparentPort = 80; if defined (user.inetd.config.http.apparentPort) { t.apparentPort = user.inetd.config.http.apparentPort}; if defined (user.prefs.portForwardingAdminPassword) { t.adminPassword = string (user.prefs.portForwardingAdminPassword)}; bundle { // add error message to replacement table t.errorMessage = ""; if errorMessage != "" { t.errorMessage = "<p style=\"color: red;\">" + errorMessage + "</p>"}}; add (mainResponder.getString ("setupFrontier.portForwarding", @t))}} else { //Windows and Classic don't need to deal with port forwarding local (password = mainResponder.members.getMemberTable ("Admin", user.prefs.mailAddress)^.password); local (urlParts = string.urlSplit (config.mainResponder.prefs.baseUrl)); Frontier.completeSetup (urlParts [2], password); scriptError ("!redirect " + pta^.URI + "$congratulations")}}; "4"; "congratulations" { bundle { // change the template to the setup template, which doesn't have navigation links to the rest of the admin site table.assign (@pta^.template, "setup"); pta^.indirectTemplate = true}; pta^.title = "Congratulations"; local (adminSiteUrl = "http://" + pta^.host + "/"); bundle { //render the new user page add (mainResponder.getString ("setupFrontier.newUserConfirmMessage")); bundle { //add the Continue button local (adminSiteUrl = "http://" + pta^.host + "/"); add ("<form method=\"get\" action=\"" + adminSiteUrl + "\">"); add ("<input type=\"submit\" value=\"Continue\" onclick=\"document.location='" + adminSiteUrl + "'\" />"); add ("</form>")}; if defined (system.temp.Frontier.setupFrontier.flAllowLocalAccessToSetupPage) { system.temp.Frontier.setupFrontier.flAllowLocalAccessToSetupPage = false}}}; //require login from now on "popupWindow" { // this is a special case, it produces a popup window pta^.autoParagraphs = true; pta^.title = "Popup Text"; table.assign (@pta^.pageHeader, "<html><head><title><%title%></title></head><body>"); table.assign (@pta^.template, "<body>{bodytext}</body></html>"); try { delete (@pta^.javaScript)}; // popup windows should not have any JavaScript add ("<div name=\"setupfrontierpopupwindow\" style=\"font-size: x-large; margin: 13px;\">"); indentLevel++; add ("<b>"); indentLevel++; add (string.urlDecode (pta^.searchArgTable.label)); add ("</b>"); indentLevel--; add ("<br />"); add ("<br />"); add (mainResponder.getString (pta^.searchArgTable.localizationStringId)); add ("</div>"); indentLevel--}} else { scriptError ("!redirect " + pta^.URI + "$personalize")}; return (htmlText)} \ No newline at end of file |
|
From: Andre R. <and...@us...> - 2006-02-08 21:37:27
|
Update of /cvsroot/frontierkernel/Frontier/build_XCode/Frontier.xcode In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28000/build_XCode/Frontier.xcode Modified Files: project.pbxproj Log Message: Turn on level 2 optimizations for deployment build style, keep optimizations disabled for development build style. Index: project.pbxproj =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/build_XCode/Frontier.xcode/project.pbxproj,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -d -r1.24 -r1.25 *** project.pbxproj 8 Feb 2006 19:13:44 -0000 1.24 --- project.pbxproj 8 Feb 2006 21:37:19 -0000 1.25 *************** *** 24,28 **** GCC_ENABLE_CPP_EXCEPTIONS = NO; GCC_ENABLE_CPP_RTTI = NO; - GCC_OPTIMIZATION_LEVEL = 0; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = frontier.xcode.h; --- 24,27 ---- *************** *** 3615,3618 **** --- 3614,3618 ---- COPY_PHASE_STRIP = YES; GCC_ENABLE_FIX_AND_CONTINUE = NO; + GCC_OPTIMIZATION_LEVEL = 2; ZERO_LINK = NO; }; *************** *** 4175,4179 **** GCC_ENABLE_CPP_EXCEPTIONS = NO; GCC_ENABLE_CPP_RTTI = NO; - GCC_OPTIMIZATION_LEVEL = 0; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = frontier.xcode.h; --- 4175,4178 ---- |
|
From: Andre R. <and...@us...> - 2006-02-08 21:35:26
|
Update of /cvsroot/frontierkernel/Frontier/Common/source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26962/Common/source Modified Files: langdialog.c langhash.c langhtml.c langipc.c langscan.c langsystypes.c opicons.c opstructure.c osacomponent.c shellcallbacks.c shellsysverbs.c strings.c tablepopup.c wpengine.c wpverbs.c Log Message: Eliminated Xcode 1.5 compiler warnings about uninitialized variables. Index: wpverbs.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/wpverbs.c,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** wpverbs.c 24 Jan 2005 03:48:34 -0000 1.5 --- wpverbs.c 8 Feb 2006 21:35:17 -0000 1.6 *************** *** 1732,1736 **** register boolean fl; long startsel, endsel; ! long origendsel, searchstart; short diff; boolean flwrapped = false; --- 1732,1736 ---- register boolean fl; long startsel, endsel; ! long origendsel = 0, searchstart; short diff; boolean flwrapped = false; Index: osacomponent.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/osacomponent.c,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** osacomponent.c 11 Jan 2005 22:48:10 -0000 1.7 --- osacomponent.c 8 Feb 2006 21:35:17 -0000 1.8 *************** *** 2480,2484 **** Handle hdata; DescType subtype; ! boolean fl; OSAError err = noErr; hdlhashnode hnodesource; --- 2480,2484 ---- Handle hdata; DescType subtype; ! boolean fl = false; OSAError err = noErr; hdlhashnode hnodesource; *************** *** 3607,3612 **** boolean flpushkeys; boolean flignore; ! short rnum; ! Handle haete; #if !TARGET_API_MAC_CARBON --- 3607,3612 ---- boolean flpushkeys; boolean flignore; ! short rnum = 0; ! Handle haete = nil; #if !TARGET_API_MAC_CARBON *************** *** 4485,4489 **** AEDesc* resultingDebugInfoOrDataToSet) { ! OSAError err; hdlhashnode hnode; --- 4485,4489 ---- AEDesc* resultingDebugInfoOrDataToSet) { ! OSAError err = noErr; hdlhashnode hnode; Index: wpengine.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/wpengine.c,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** wpengine.c 5 Dec 2005 20:36:16 -0000 1.9 --- wpengine.c 8 Feb 2006 21:35:17 -0000 1.10 *************** *** 1180,1184 **** long stackopenright [256]; char stackopentag [256]; ! char tagvalue, lasttagvalue; char ch; long i = 0; --- 1180,1184 ---- long stackopenright [256]; char stackopentag [256]; ! char tagvalue, lasttagvalue = 0; char ch; long i = 0; Index: shellcallbacks.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/shellcallbacks.c,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** shellcallbacks.c 11 Jan 2005 22:48:10 -0000 1.4 --- shellcallbacks.c 8 Feb 2006 21:35:17 -0000 1.5 *************** *** 120,124 **** register hdlstring hstring; ! short ixbase, ixaction; bigstring bsundo, bs; --- 120,124 ---- register hdlstring hstring; ! short ixbase = 0, ixaction; bigstring bsundo, bs; Index: opstructure.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/opstructure.c,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** opstructure.c 11 Jan 2005 22:48:09 -0000 1.4 --- opstructure.c 8 Feb 2006 21:35:17 -0000 1.5 *************** *** 2573,2577 **** hdlscreenmap hmap; boolean fltempscrap; ! boolean flmarkcopies; opclearallmarks (); --- 2573,2577 ---- hdlscreenmap hmap; boolean fltempscrap; ! boolean flmarkcopies = false; opclearallmarks (); Index: langdialog.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/langdialog.c,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** langdialog.c 11 Jan 2005 22:48:05 -0000 1.4 --- langdialog.c 8 Feb 2006 21:35:17 -0000 1.5 *************** *** 385,389 **** tyvaluerecord val; boolean fl; ! boolean fldebugging; cleartmpstack (); --- 385,389 ---- tyvaluerecord val; boolean fl; ! boolean fldebugging = false; cleartmpstack (); Index: strings.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/strings.c,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** strings.c 5 Dec 2005 21:49:20 -0000 1.8 --- strings.c 8 Feb 2006 21:35:17 -0000 1.9 *************** *** 918,922 **** boolean flinstring = false; boolean flinescapesequence = false; ! byte chendstring; for (i = 0; i < ct; i++) { --- 918,922 ---- boolean flinstring = false; boolean flinescapesequence = false; ! byte chendstring = 0; for (i = 0; i < ct; i++) { *************** *** 934,938 **** flinescapesequence = true; else ! flinstring = ch != chendstring; } } --- 934,938 ---- flinescapesequence = true; else ! flinstring = (ch != chendstring); } } Index: langhash.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/langhash.c,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** langhash.c 11 Jan 2005 22:48:06 -0000 1.5 --- langhash.c 8 Feb 2006 21:35:17 -0000 1.6 *************** *** 845,849 **** boolean flneeddatabase = (fldisk && (**hn).val.fldiskval); ! hdldatabaserecord hdb; if (flneeddatabase) { --- 845,849 ---- boolean flneeddatabase = (fldisk && (**hn).val.fldiskval); ! hdldatabaserecord hdb = nil; if (flneeddatabase) { *************** *** 1696,1700 **** boolean flneeddatabase = (!fllocal && existingval.fldiskval); ! hdldatabaserecord hdb; if (flneeddatabase) { --- 1696,1700 ---- boolean flneeddatabase = (!fllocal && existingval.fldiskval); ! hdldatabaserecord hdb = nil; if (flneeddatabase) { Index: langscan.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/langscan.c,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** langscan.c 24 Jan 2005 02:10:01 -0000 1.6 --- langscan.c 8 Feb 2006 21:35:17 -0000 1.7 *************** *** 1134,1141 **** boolean fldone = false; hdltreenode hnode; ! tokentype token, token2; long ixstart; ! long ix1, ix2 = 0; ! unsigned long line2; short ctendbraces = 0; --- 1134,1141 ---- boolean fldone = false; hdltreenode hnode; ! tokentype token, token2 = 0; long ixstart; ! long ix1 = 0, ix2 = 0; ! unsigned long line2 = 0; short ctendbraces = 0; *************** *** 1232,1239 **** boolean fldone = false; hdltreenode hnode; ! tokentype token, lasttoken; long ixstart; long ix1 = 0; ! unsigned long line1; bigstring bsid; boolean flgotid = false; --- 1232,1239 ---- boolean fldone = false; hdltreenode hnode; ! tokentype token, lasttoken = 0; long ixstart; long ix1 = 0; ! unsigned long line1 = 0; bigstring bsid; boolean flgotid = false; Index: langipc.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/langipc.c,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** langipc.c 11 Jan 2005 22:48:06 -0000 1.6 --- langipc.c 8 Feb 2006 21:35:17 -0000 1.7 *************** *** 233,237 **** void *pval = nil; Handle hval = nil; ! long len; byte flval; bigstring bsval; --- 233,237 ---- void *pval = nil; Handle hval = nil; ! long len = 0; byte flval; bigstring bsval; *************** *** 2785,2789 **** tyvaluerecord val; tyipcaddress ipcaddress; ! long savetransid, transactionid; boolean fl; --- 2785,2789 ---- tyvaluerecord val; tyipcaddress ipcaddress; ! long savetransid = 0, transactionid; boolean fl; Index: langsystypes.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/langsystypes.c,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** langsystypes.c 20 Aug 2005 11:11:48 -0000 1.6 --- langsystypes.c 8 Feb 2006 21:35:17 -0000 1.7 *************** *** 1777,1780 **** --- 1777,1785 ---- break; + + default: + p = "\p"; + assert(false); /* 2006-02-08 aradke: this should never happen, but if it does we set p to the empty string */ + break; } Index: opicons.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/opicons.c,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** opicons.c 11 Jan 2005 22:48:09 -0000 1.4 --- opicons.c 8 Feb 2006 21:35:17 -0000 1.5 *************** *** 228,232 **** Rect linerect, iconrect; ! short iconnum; boolean flinverted, flselected; --- 228,232 ---- Rect linerect, iconrect; ! short iconnum = 0; boolean flinverted, flselected; Index: tablepopup.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/tablepopup.c,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** tablepopup.c 11 Jan 2005 22:48:11 -0000 1.4 --- tablepopup.c 8 Feb 2006 21:35:17 -0000 1.5 *************** *** 322,326 **** register tyvaluetype vt = valuetype; tyvaluerecord val; ! tyexternalid externalid; hdlhashtable ht; bigstring bs; --- 322,326 ---- register tyvaluetype vt = valuetype; tyvaluerecord val; ! tyexternalid externalid = 0; hdlhashtable ht; bigstring bs; Index: langhtml.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/langhtml.c,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** langhtml.c 5 Feb 2006 15:57:42 -0000 1.9 --- langhtml.c 8 Feb 2006 21:35:17 -0000 1.10 *************** *** 5071,5075 **** */ ! boolean flchained, fltmpval; boolean fl = false; tyvaluerecord val; --- 5071,5075 ---- */ ! boolean flchained = false, fltmpval; boolean fl = false; tyvaluerecord val; *************** *** 5163,5167 **** boolean fl = false; ! boolean fltmpval, flchained; if (hcontext != nil) { --- 5163,5167 ---- boolean fl = false; ! boolean fltmpval, flchained = false; if (hcontext != nil) { *************** *** 9240,9244 **** /*other variable definitions*/ handlestream sreturn; ! boolean fl; /*init*/ --- 9240,9244 ---- /*other variable definitions*/ handlestream sreturn; ! boolean fl = false; /*init*/ *************** *** 10052,10056 **** handlestream s; ! long ixstart; long ixsafeto = -1; long balance = 0; --- 10052,10056 ---- handlestream s; ! long ixstart = 0; long ixsafeto = -1; long balance = 0; Index: shellsysverbs.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/shellsysverbs.c,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** shellsysverbs.c 11 Jan 2005 22:48:10 -0000 1.5 --- shellsysverbs.c 8 Feb 2006 21:35:17 -0000 1.6 *************** *** 1104,1108 **** bigstring bsverb; boolean fl = false; ! boolean flchained; tyvaluerecord val; hdltreenode hfunctioncall; --- 1104,1108 ---- bigstring bsverb; boolean fl = false; ! boolean flchained = false; tyvaluerecord val; hdltreenode hfunctioncall; |
|
From: Andre R. <and...@us...> - 2006-02-08 21:33:06
|
Update of /cvsroot/frontierkernel/Frontier/Common/source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26347/Common/source Modified Files: shellprint.c Log Message: Commented out unused debug variable. Index: shellprint.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/shellprint.c,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** shellprint.c 26 Jan 2006 16:19:58 -0000 1.7 --- shellprint.c 8 Feb 2006 21:32:55 -0000 1.8 *************** *** 309,313 **** rpaper; ! typrintinfo *dbgprintinfo = &shellprintinfo; #ifdef MACVERSION --- 309,313 ---- rpaper; ! //typrintinfo *dbgprintinfo = &shellprintinfo; #ifdef MACVERSION |
|
From: Andre R. <and...@us...> - 2006-02-08 21:24:06
|
Update of /cvsroot/frontierkernel/Frontier/Common/source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22592 Modified Files: langregexp.c Log Message: Eliminated Xcode 1.5 compiler warning about uninitialized variable, probably indicative of an actual bug. Index: langregexp.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/langregexp.c,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** langregexp.c 11 Jan 2005 22:48:07 -0000 1.9 --- langregexp.c 8 Feb 2006 21:23:55 -0000 1.10 *************** *** 1294,1304 **** static int regexpstringnumberfrompattern (const char *cptr, int len, Handle hcp) { ! int res, top, mid, bot, entrysize, c; unsigned char *entry, *nametable; ! res = pcre_fullinfo (getpatternref (hcp), nil, PCRE_INFO_NAMECOUNT, (void *) &top); if (res == 0) ! res = pcre_fullinfo (getpatternref (hcp), nil, PCRE_INFO_NAMEENTRYSIZE, (void *) &entrysize); if (res == 0) --- 1294,1310 ---- static int regexpstringnumberfrompattern (const char *cptr, int len, Handle hcp) { ! /* ! 2006-02-08 aradke: rewrote conditional logic in loop body. the previous version ! may have yielded incorrect results if one of the two strings that are compared ! in the loop is the leading substring of the other, e.g. "spam" and "spamalot". ! */ ! ! int res, top, mid, bot, entrysize, elen, c; unsigned char *entry, *nametable; ! res = pcre_fullinfo (getpatternref (hcp), nil, PCRE_INFO_NAMECOUNT, (void *) &top); /* number of entries in table */ if (res == 0) ! res = pcre_fullinfo (getpatternref (hcp), nil, PCRE_INFO_NAMEENTRYSIZE, (void *) &entrysize); /* length of longest entry in table */ if (res == 0) *************** *** 1313,1331 **** while (top > bot) { ! mid = (top + bot) / 2; ! ! entry = nametable + entrysize * mid; ! ! if (strlen ((char *)(entry + 2)) == len) ! c = memcmp (cptr, (char *)(entry + 2), len); ! ! if (c == 0) { ! return (entry[0] << 8) + entry[1]; ! } ! if (c > 0) ! bot = mid + 1; ! else ! top = mid; } --- 1319,1340 ---- while (top > bot) { ! mid = (top + bot) / 2; ! entry = nametable + entrysize * mid; ! ! elen = strlen ((char *)(entry + 2)); ! ! c = memcmp (cptr, (char *)(entry + 2), min(len, elen)); ! ! if (c < 0) /* 2006-02-08 aradke */ ! top = mid; ! else if (c > 0) ! bot = mid + 1; ! else if (elen > len) /* implicitely c == 0 from here on... */ ! top = mid; /* shorter entries are lower in table */ ! else if (elen < len) ! bot = mid + 1; /* longer entries are higher in table */ ! else ! return (entry[0] << 8) + entry[1]; /* implicitly c == 0 and elen == len, i.e. named pattern found */ } |
|
From: Andre R. <and...@us...> - 2006-02-08 20:31:44
|
Update of /cvsroot/frontierkernel/Frontier/Common/source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv331/Common/source Modified Files: OpenTransportNetEvents.c about.c filemp3.c scripts.c Log Message: Eliminate Xcode 1.5 compiler warnings about uninitialized variables. Index: scripts.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/scripts.c,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** scripts.c 5 Feb 2006 16:00:31 -0000 1.5 --- scripts.c 8 Feb 2006 20:31:36 -0000 1.6 *************** *** 2426,2430 **** long lastlnum = (**hd).lastlnum; long lnum = (**hn).lnum; ! short diff; //shellshorteventloop (); /*suck up and process any waiting events*/ --- 2426,2430 ---- long lastlnum = (**hd).lastlnum; long lnum = (**hn).lnum; ! short diff = 0; //shellshorteventloop (); /*suck up and process any waiting events*/ Index: filemp3.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/filemp3.c,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** filemp3.c 20 Dec 2005 22:17:15 -0000 1.4 --- filemp3.c 8 Feb 2006 20:31:36 -0000 1.5 *************** *** 389,393 **** tympeginfostruct mp3; long ix = 0; ! long oldpos, header, ctbytes, ctframes; Handle h = nil; unsigned char c1, c2; --- 389,394 ---- tympeginfostruct mp3; long ix = 0; ! long header = 0; ! long oldpos, ctbytes, ctframes; Handle h = nil; unsigned char c1, c2; Index: about.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/about.c,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** about.c 8 Feb 2006 19:13:44 -0000 1.8 --- about.c 8 Feb 2006 20:31:36 -0000 1.9 *************** *** 279,286 **** ReleaseIconRef (iconref); - } /*if*/ ! if (ec == noErr) ! return; #endif --- 279,286 ---- ReleaseIconRef (iconref); ! if (ec == noErr) ! return; ! } /*if*/ #endif Index: OpenTransportNetEvents.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/OpenTransportNetEvents.c,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** OpenTransportNetEvents.c 24 Jan 2005 02:17:23 -0000 1.8 --- OpenTransportNetEvents.c 8 Feb 2006 20:31:36 -0000 1.9 *************** *** 3926,3930 **** /* Read from a stream */ ! OTResult result; OTFlags junkFlags; EndpointRecordRef epref = (EndpointRecordRef) stream; --- 3926,3930 ---- /* Read from a stream */ ! OTResult result = kOTNoError; OTFlags junkFlags; EndpointRecordRef epref = (EndpointRecordRef) stream; *************** *** 4038,4042 **** EndpointRecordRef epref = (EndpointRecordRef) stream; ! OTResult result; long ix = 0; boolean doLeave = false; --- 4038,4042 ---- EndpointRecordRef epref = (EndpointRecordRef) stream; ! OTResult result = kOTNoError; long ix = 0; boolean doLeave = false; |
|
From: Andre R. <and...@us...> - 2006-02-08 20:07:52
|
Update of /cvsroot/frontierkernel/Frontier/Common/source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22677/Common/source Modified Files: shellmenu.c Log Message: Eliminate Xcode 1.5 compiler warning about unused functions. Index: shellmenu.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/shellmenu.c,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** shellmenu.c 6 Feb 2006 20:23:45 -0000 1.11 --- shellmenu.c 8 Feb 2006 20:07:42 -0000 1.12 *************** *** 883,886 **** --- 883,888 ---- + #ifndef PIKE + static boolean shellsetmenuitemstring (hdlmenu hmenu, short ixmenu, short ixitemstring) { *************** *** 890,893 **** --- 892,897 ---- } /*shellsetmenuitemstring*/ + #endif + #ifdef PIKE *************** *** 957,960 **** --- 961,966 ---- + #if 0 + static void pikesetfilemenuitemname (short ixmenu) { *************** *** 984,987 **** --- 990,994 ---- }/*pikesetfilemenuitemname*/ + #endif |
|
From: Andre R. <and...@us...> - 2006-02-08 19:44:51
|
Update of /cvsroot/frontierkernel/Frontier/Common/headers In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13050/Common/headers Modified Files: versions.h Log Message: Bump version number to 10.1a6 for all targets. Index: versions.h =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/headers/versions.h,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** versions.h 8 Feb 2006 19:13:44 -0000 1.14 --- versions.h 8 Feb 2006 19:44:40 -0000 1.15 *************** *** 70,77 **** #define APP_STAGE_CODE 0x40 /* dev = 0x20, alpha = 0x40, beta = 0x60, final = 0x80 */ ! #define APP_REVISION_LEVEL 5 /* for non-final releases only */ ! #define APP_BUILD_NUMBER 5 /* increment by one for every release, final or not */ ! #define APP_VERSION_STRING "10.1a5" #else --- 70,77 ---- #define APP_STAGE_CODE 0x40 /* dev = 0x20, alpha = 0x40, beta = 0x60, final = 0x80 */ ! #define APP_REVISION_LEVEL 6 /* for non-final releases only */ ! #define APP_BUILD_NUMBER 6 /* increment by one for every release, final or not */ ! #define APP_VERSION_STRING "10.1a6" #else *************** *** 96,103 **** #define APP_STAGE_CODE 0x40 /* dev = 0x20, alpha = 0x40, beta = 0x60, final = 0x80 */ ! #define APP_REVISION_LEVEL 5 /* for non-final releases only */ ! #define APP_BUILD_NUMBER 5 /* increment by one for every release, final or not */ ! #define APP_VERSION_STRING "10.1a5" #endif --- 96,103 ---- #define APP_STAGE_CODE 0x40 /* dev = 0x20, alpha = 0x40, beta = 0x60, final = 0x80 */ ! #define APP_REVISION_LEVEL 6 /* for non-final releases only */ ! #define APP_BUILD_NUMBER 6 /* increment by one for every release, final or not */ ! #define APP_VERSION_STRING "10.1a6" #endif *************** *** 122,129 **** #define APP_STAGE_CODE 0x40 /* dev = 0x20, alpha = 0x40, beta = 0x60, final = 0x80 */ ! #define APP_REVISION_LEVEL 5 /* for non-final releases only */ ! #define APP_BUILD_NUMBER 5 /* increment by one for every release, final or not */ ! #define APP_VERSION_STRING "10.1a5" #endif --- 122,129 ---- #define APP_STAGE_CODE 0x40 /* dev = 0x20, alpha = 0x40, beta = 0x60, final = 0x80 */ ! #define APP_REVISION_LEVEL 6 /* for non-final releases only */ ! #define APP_BUILD_NUMBER 6 /* increment by one for every release, final or not */ ! #define APP_VERSION_STRING "10.1a6" #endif |
|
From: Andre R. <and...@us...> - 2006-02-08 19:42:29
|
Update of /cvsroot/frontierkernel/Frontier/Common/source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11906 Modified Files: frontierdebug.c langdll.c serialnumber.c Log Message: Reduce compiler chatter by commenting out some #pragma message instances that are no longer useful. Index: langdll.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/langdll.c,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** langdll.c 24 Jan 2005 03:02:37 -0000 1.6 --- langdll.c 8 Feb 2006 19:42:22 -0000 1.7 *************** *** 80,84 **** --- 80,86 ---- #ifdef NEW_DLL_INTERFACE + /* #pragma message ("*********************** NEW_DLL_INTERFACE is ON ***********************") + */ /* type definitions */ Index: serialnumber.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/serialnumber.c,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** serialnumber.c 11 Jan 2005 22:48:10 -0000 1.3 --- serialnumber.c 8 Feb 2006 19:42:22 -0000 1.4 *************** *** 31,37 **** #include "serialnumber.h" ! #pragma message ("************************* Serial Number Check is OFF ***********************************") ! boolean isvalidserialnumber (bigstring bsserialnumber) { --- 31,37 ---- #include "serialnumber.h" ! /* #pragma message ("************************* Serial Number Check is OFF ***********************************") ! */ boolean isvalidserialnumber (bigstring bsserialnumber) { Index: frontierdebug.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/frontierdebug.c,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** frontierdebug.c 11 Jan 2005 22:48:05 -0000 1.4 --- frontierdebug.c 8 Feb 2006 19:42:22 -0000 1.5 *************** *** 51,56 **** --- 51,58 ---- #elif (LAND_GENERALLOG_LEVEL >= LAND_LOGLEVEL_1) #pragma message ("*********************** GENERAL LOG: Level 1") + /* #else #pragma message ("*********************** GENERAL LOG: --OFF--") + */ #endif *************** *** 79,84 **** --- 81,88 ---- #elif (LAND_TCPLOG_LEVEL >= LAND_LOGLEVEL_1) #pragma message ("*********************** TCP LOG: Level 1") + /* #else #pragma message ("*********************** TCP LOG: --OFF--") + */ #endif *************** *** 107,112 **** --- 111,118 ---- #elif (LAND_DBLOG_LEVEL >= LAND_LOGLEVEL_1) #pragma message ("*********************** DB LOG: Level 1") + /* #else #pragma message ("*********************** DB LOG: --OFF--") + */ #endif *************** *** 135,140 **** --- 141,148 ---- #elif (LAND_THREADSLOG_LEVEL >= LAND_LOGLEVEL_1) #pragma message ("*********************** THREADS LOG: Level 1") + /* #else #pragma message ("*********************** THREADS LOG: --OFF--") + */ #endif |
|
From: Andre R. <and...@us...> - 2006-02-08 19:13:56
|
Update of /cvsroot/frontierkernel/Frontier/Common/source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30611/Common/source Modified Files: about.c Log Message: Moved more strings from about.c, shell.r, winland.rc into versions.h, so it gets easier to keep these updated for different variants of the kernel. Also reorganized how the Xcode build extracts the version info from versions.h. Index: about.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/about.c,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** about.c 5 Feb 2006 16:51:58 -0000 1.7 --- about.c 8 Feb 2006 19:13:44 -0000 1.8 *************** *** 166,174 **** static byte * aboutstrings [] = { ! app_slogan, /* 2006-02-04 aradke: see versions.h */ ! app_copyright, /* 2006-02-04 aradke: see versions.h */ ! app_url, /* 2006-02-04 aradke: see versions.h */ "\x02" "^0", --- 166,174 ---- static byte * aboutstrings [] = { ! bs_APP_SLOGAN, /* 2006-02-06 aradke: see versions.h */ ! bs_APP_COPYRIGHT, /* 2006-02-06 aradke: see versions.h */ ! bs_APP_URL, /* 2006-02-06 aradke: see versions.h */ "\x02" "^0", *************** *** 191,195 **** "\x0f" "Current Time: ", ! app_name, /* 2006-02-04 aradke: see versions.h */ "\x02" "^0", --- 191,195 ---- "\x0f" "Current Time: ", ! bs_APP_NAME, /* 2006-02-06 aradke: see versions.h */ "\x02" "^0", |
|
From: Andre R. <and...@us...> - 2006-02-08 19:13:56
|
Update of /cvsroot/frontierkernel/Frontier/Common/resources/Win32 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30611/Common/resources/Win32 Modified Files: WinLand.rc Log Message: Moved more strings from about.c, shell.r, winland.rc into versions.h, so it gets easier to keep these updated for different variants of the kernel. Also reorganized how the Xcode build extracts the version info from versions.h. Index: WinLand.rc =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/resources/Win32/WinLand.rc,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** WinLand.rc 5 Feb 2006 18:11:03 -0000 1.14 --- WinLand.rc 8 Feb 2006 19:13:44 -0000 1.15 *************** *** 839,854 **** VS_VERSION_INFO VERSIONINFO ! #ifdef PIKE ! #ifndef OPMLEDITOR ! FILEVERSION radio_major_version,radio_sub_version,radio_minor_version,radio_build_number ! PRODUCTVERSION radio_major_version,radio_sub_version,radio_minor_version,radio_build_number ! #else ! FILEVERSION opml_major_version,opml_sub_version,opml_minor_version,opml_build_number ! PRODUCTVERSION opml_major_version,opml_sub_version,opml_minor_version,opml_build_number ! #endif ! #else ! FILEVERSION frontier_major_version,frontier_sub_version,frontier_minor_version,frontier_build_number ! PRODUCTVERSION frontier_major_version,frontier_sub_version,frontier_minor_version,frontier_build_number ! #endif FILEFLAGSMASK 0x3fL #ifdef _DEBUG --- 839,844 ---- VS_VERSION_INFO VERSIONINFO ! FILEVERSION APP_MAJOR_VERSION,APP_SUB_VERSION,APP_MINOR_VERSION,APP_BUILD_NUMBER ! PRODUCTVERSION APP_MAJOR_VERSION,APP_SUB_VERSION,APP_MINOR_VERSION,APP_BUILD_NUMBER FILEFLAGSMASK 0x3fL #ifdef _DEBUG *************** *** 865,873 **** BLOCK "040904e4" BEGIN ! #ifndef OPMLEDITOR ! VALUE "CompanyName", "UserLand Software, Inc.\0" ! #else // OPMLEDITOR ! VALUE "CompanyName", "Scripting News, Inc.\0" ! #endif // OPMLEDITOR #ifdef PIKE #ifndef OPMLEDITOR --- 855,859 ---- BLOCK "040904e4" BEGIN ! VALUE "CompanyName", APP_COPYRIGHT_HOLDER "\0" #ifdef PIKE #ifndef OPMLEDITOR *************** *** 879,954 **** VALUE "FileDescription", "UserLand Frontier\0" #endif ! #ifdef fltrialsize ! #ifdef PIKE ! #ifndef OPMLEDITOR ! VALUE "FileVersion", "Trial " radio_version_string "\0" ! #else ! VALUE "FileVersion", "Trial " opml_version_string "\0" ! #endif ! #else ! VALUE "FileVersion", "Trial " frontier_version_string "\0" ! #endif ! #else ! #ifdef PIKE ! #ifndef OPMLEDITOR ! VALUE "FileVersion", radio_version_string "\0" ! #else ! VALUE "FileVersion", opml_version_string "\0" ! #endif ! #else ! VALUE "FileVersion", frontier_version_string "\0" ! #endif ! #endif ! #ifdef PIKE ! #ifndef OPMLEDITOR ! VALUE "InternalName", "Radio\0" /*7.0d8 PBS: name change*/ ! #else // OPMLEDITOR ! VALUE "InternalName", "OPML\0" /*2005-04-06 dluebbert: name change*/ ! #endif // OPMLEDITOR #else ! VALUE "InternalName", "Frontier\0" #endif // VALUE "Language", "English (United States)\0" #ifdef PIKE /*7.0d8 PBS: name change*/ #ifndef OPMLEDITOR - VALUE "LegalCopyright", "© 1992-2002 UserLand Software, Inc.\0" - VALUE "LegalTrademarks", "\042Userland\042 and \042Radio\042 is the trademarks of UserLand Software, Inc.\0" VALUE "OriginalFilename", "Radio.exe\0" VALUE "ProductName", "Radio UserLand\0" ! VALUE "Full Copyright", "© Copyright UserLand Software, Inc. All rights reserved. Permission and Use is Granted Subject to the UserLand End-User License Agreement.\0" #else // OPMLEDITOR - VALUE "LegalCopyright", "© 1992-2006 Scripting News, Inc.\0" - VALUE "LegalTrademarks", "\042OPML\042 is a trademarks of Scripting News, Inc.\0" VALUE "OriginalFilename", "opml.exe\0" VALUE "ProductName", "OPML\0" ! VALUE "Full Copyright", "© Copyright Scripting News, Inc. All rights reserved. Permission and Use is Granted Subject to the GNU General Public License.\0" #endif // OPMLEDITOR #else // !PIKE - VALUE "LegalCopyright", "© 1992-2002 UserLand Software, Inc.\0" - VALUE "LegalTrademarks", "\042UserLand\042 and \042Frontier\042 are the trademarks of UserLand Software, Inc.\0" VALUE "OriginalFilename", "Frontier.exe\0" VALUE "ProductName", "Frontier\0" ! VALUE "Full Copyright", "© Copyright UserLand Software, Inc. All rights reserved. Permission and Use is Granted Subject to the UserLand End-User License Agreement.\0" #endif // !PIKE #ifdef fltrialsize ! #ifdef PIKE ! #ifndef OPMLEDITOR ! VALUE "ProductVersion", "Trial " radio_version_string "\0" ! #else ! VALUE "ProductVersion", "Trial " opml_version_string "\0" ! #endif ! #else ! VALUE "ProductVersion", "Trial " frontier_version_string "\0" ! #endif #else ! #ifdef PIKE ! #ifndef OPMLEDITOR ! VALUE "ProductVersion", radio_version_string "\0" ! #else ! VALUE "ProductVersion", opml_version_string "\0" ! #endif ! #else ! VALUE "ProductVersion", frontier_version_string "\0" ! #endif #endif END --- 865,895 ---- VALUE "FileDescription", "UserLand Frontier\0" #endif ! #ifdef fltrialsize ! VALUE "FileVersion", "Trial " APP_VERSION_STRING "\0" #else ! VALUE "FileVersion", APP_VERSION_STRING "\0" #endif + VALUE "InternalName", APPNAME "\0" // VALUE "Language", "English (United States)\0" + VALUE "LegalCopyright", "© " APP_COPYRIGHT "\0" #ifdef PIKE /*7.0d8 PBS: name change*/ #ifndef OPMLEDITOR VALUE "OriginalFilename", "Radio.exe\0" VALUE "ProductName", "Radio UserLand\0" ! VALUE "Full Copyright", "© Copyright " APP_COPYRIGHT_HOLDER ". All rights reserved. Permission and Use is Granted Subject to the UserLand End-User License Agreement.\0" #else // OPMLEDITOR VALUE "OriginalFilename", "opml.exe\0" VALUE "ProductName", "OPML\0" ! VALUE "Full Copyright", "© Copyright " APP_COPYRIGHT_HOLDER ". Released under the GNU General Public License.\0" #endif // OPMLEDITOR #else // !PIKE VALUE "OriginalFilename", "Frontier.exe\0" VALUE "ProductName", "Frontier\0" ! VALUE "Full Copyright", "© Copyright " APP_COPYRIGHT_HOLDER ". Released under the GNU General Public License.\0" #endif // !PIKE #ifdef fltrialsize ! VALUE "ProductVersion", "Trial " APP_VERSION_STRING "\0" #else ! VALUE "ProductVersion", APP_VERSION_STRING "\0" #endif END *************** *** 1096,1108 **** 7 Defaults DISCARDABLE BEGIN "Open a file:\0" END ! #ifdef PIKE ! #ifndef OPMLEDITOR ! 8 Defaults DISCARDABLE BEGIN radio_version_string "\0" END ! #else ! 8 Defaults DISCARDABLE BEGIN opml_version_string "\0" END ! #endif ! #else ! 8 Defaults DISCARDABLE BEGIN frontier_version_string "\0" END ! #endif //PIKE 1 Interface DISCARDABLE BEGIN "Script\0" END --- 1037,1041 ---- 7 Defaults DISCARDABLE BEGIN "Open a file:\0" END ! 8 Defaults DISCARDABLE BEGIN APP_VERSION_STRING "\0" END 1 Interface DISCARDABLE BEGIN "Script\0" END |
|
From: Andre R. <and...@us...> - 2006-02-08 19:13:56
|
Update of /cvsroot/frontierkernel/Frontier/build_XCode In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30611/build_XCode Modified Files: Info_Frontier.plist Info_OPML.plist Removed Files: postlinking.sh Log Message: Moved more strings from about.c, shell.r, winland.rc into versions.h, so it gets easier to keep these updated for different variants of the kernel. Also reorganized how the Xcode build extracts the version info from versions.h. Index: Info_OPML.plist =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/build_XCode/Info_OPML.plist,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** Info_OPML.plist 5 Feb 2006 21:04:48 -0000 1.1 --- Info_OPML.plist 8 Feb 2006 19:13:44 -0000 1.2 *************** *** 180,184 **** <string>${PRODUCT_NAME_STR}</string> <key>CFBundleGetInfoString</key> ! <string>${PRODUCT_VERSION_STR}; © 1992-${COPYRIGHT_YEAR_STR} Scripting News, Inc.</string> <key>CFBundleIconFile</key> <string>OPML.icns</string> --- 180,184 ---- <string>${PRODUCT_NAME_STR}</string> <key>CFBundleGetInfoString</key> ! <string>${PRODUCT_VERSION_STR}; © ${PRODUCT_COPYRIGHT_STR}</string> <key>CFBundleIconFile</key> <string>OPML.icns</string> Index: Info_Frontier.plist =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/build_XCode/Info_Frontier.plist,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** Info_Frontier.plist 5 Feb 2006 21:04:48 -0000 1.1 --- Info_Frontier.plist 8 Feb 2006 19:13:44 -0000 1.2 *************** *** 158,162 **** <string>${PRODUCT_NAME_STR}</string> <key>CFBundleGetInfoString</key> ! <string>${PRODUCT_VERSION_STR}; © 1992-${COPYRIGHT_YEAR_STR} Userland Software, Inc.</string> <key>CFBundleIconFile</key> <string>Frontier.icns</string> --- 158,162 ---- <string>${PRODUCT_NAME_STR}</string> <key>CFBundleGetInfoString</key> ! <string>${PRODUCT_VERSION_STR}; © ${PRODUCT_COPYRIGHT_STR}</string> <key>CFBundleIconFile</key> <string>Frontier.icns</string> --- postlinking.sh DELETED --- |
|
From: Andre R. <and...@us...> - 2006-02-08 19:13:56
|
Update of /cvsroot/frontierkernel/Frontier/build_XCode/Frontier.xcode In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30611/build_XCode/Frontier.xcode Modified Files: project.pbxproj Log Message: Moved more strings from about.c, shell.r, winland.rc into versions.h, so it gets easier to keep these updated for different variants of the kernel. Also reorganized how the Xcode build extracts the version info from versions.h. Index: project.pbxproj =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/build_XCode/Frontier.xcode/project.pbxproj,v retrieving revision 1.23 retrieving revision 1.24 diff -C2 -d -r1.23 -r1.24 *** project.pbxproj 6 Feb 2006 16:10:13 -0000 1.23 --- project.pbxproj 8 Feb 2006 19:13:44 -0000 1.24 *************** *** 3484,3487 **** --- 3484,3488 ---- inputPaths = ( "${SRCROOT}/../Common/headers/versions.h\n\"${SRCROOT}/../Common/headers/versions.h\"\n", + "${SRCROOT}/tools/postlinking.sh", ); isa = PBXShellScriptBuildPhase; *************** *** 3491,3495 **** runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; ! shellScript = ". ${SRCROOT}/postlinking.sh\n"; }; 65059B4E09968C1400410571 = { --- 3492,3496 ---- runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; ! shellScript = ". ${SRCROOT}/tools/postlinking.sh\n"; }; 65059B4E09968C1400410571 = { *************** *** 12263,12266 **** --- 12264,12268 ---- inputPaths = ( "${SRCROOT}/../Common/headers/versions.h\n\"${SRCROOT}/../Common/headers/versions.h\"\n", + "${SRCROOT}/tools/postlinking.sh", ); isa = PBXShellScriptBuildPhase; *************** *** 12270,12274 **** runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; ! shellScript = ". ${SRCROOT}/postlinking.sh\n"; }; DEA58AB307435A9500BAB271 = { --- 12272,12276 ---- runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; ! shellScript = ". ${SRCROOT}/tools/postlinking.sh\n"; }; DEA58AB307435A9500BAB271 = { |
|
From: Andre R. <and...@us...> - 2006-02-08 19:13:56
|
Update of /cvsroot/frontierkernel/Frontier/build_XCode/tools In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30611/build_XCode/tools Added Files: appcopyright.c appversion.c postlinking.sh Log Message: Moved more strings from about.c, shell.r, winland.rc into versions.h, so it gets easier to keep these updated for different variants of the kernel. Also reorganized how the Xcode build extracts the version info from versions.h. --- NEW FILE: appcopyright.c --- /* $Id: appcopyright.c,v 1.1 2006/02/08 19:13:44 andreradke Exp $ */ /****************************************************************************** UserLand Frontier(tm) -- High performance Web content management, object database, system-level and Internet scripting environment, including source code editing and debugging. Copyright (C) 1992-2004 UserLand Software, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ /* 2006-02-06 aradke: just a fancy way to extract copyright year string */ #include <stdio.h> #include "versions.h" main () { printf(APP_COPYRIGHT); return 0; } /*main*/ --- NEW FILE: appversion.c --- /* $Id: appversion.c,v 1.1 2006/02/08 19:13:44 andreradke Exp $ */ /****************************************************************************** UserLand Frontier(tm) -- High performance Web content management, object database, system-level and Internet scripting environment, including source code editing and debugging. Copyright (C) 1992-2004 UserLand Software, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ /* 2006-02-06 aradke: just a fancy way to extract app version string */ #include <stdio.h> #include "versions.h" main () { printf(APP_VERSION_STRING); return 0; } /*main*/ --- NEW FILE: postlinking.sh --- # debug #set -x #printenv # Build Frontier.icns file # There seems to be some bugs here, so just use # pre-created Frontier.icns file. # Also add "icns.r" path to Input files and # "Frontier.icns" path to Output files below. # #/Developer/Tools/Rez "${SRCROOT}/../resources/Frontier/icns.r" -d TARGET_API_MAC_CARBON=1 -d FRONTIER_FRAMEWORK_INCLUDES=1 -i "${SRCROOT}/../Common/headers" -useDF -o "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Frontier.icns" # Strip trademark character to prevent problems with shell quoting #product_str=`echo ${PRODUCT_NAME} | awk -F '\342' '{print $1};'` product_str=${PRODUCT_NAME} ################################################## # # Parse the "versions.h" file for useful variables # echo "Extracting info from Common/headers/versions.h for Info.plist file" # go to tools directory currdir=`pwd` cd ${SRCROOT}/tools/ # pick up preprocessor definitions from target settings, e.g. "PIKE=1" preprocessor_defs=`echo ${GCC_PREPROCESSOR_DEFINITIONS} | sed -e "s/[A-Z0-9_][A-Z0-9_=]*/-D&/g"` # collect compiler flags in one string for readability cflags="${preprocessor_defs} -I${SRCROOT}/../Common/headers" # set environment variable to stop cc from complaining export MACOSX_DEPLOYMENT_TARGET="10.1" # extract the APP_VERSION_STRING cc ${cflags} -o appversion appversion.c version_str=`./appversion` echo "Using version string: ${version_str}" # extract the copyright_year_string cc ${cflags} -o appcopyright appcopyright.c copyright_str=`./appcopyright` echo "Using copyright string: ${copyright_str}" # clean up rm appversion appcopyright # revert to previous working directory cd ${currdir} ################################################## # build info.plist file using extracted information sed -e "s/\${PRODUCT_NAME_STR}/${product_str}/g" \ -e "s/\${PRODUCT_VERSION_STR}/${version_str}/g" \ -e "s/\${PRODUCT_COPYRIGHT_STR}/${copyright_str}/g" \ "${INFOPLIST_FILE}" > "${BUILT_PRODUCTS_DIR}/${CONTENTS_FOLDER_PATH}/Info.plist" |
|
From: Andre R. <and...@us...> - 2006-02-08 19:13:56
|
Update of /cvsroot/frontierkernel/Frontier/Common/headers In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30611/Common/headers Modified Files: versions.h Log Message: Moved more strings from about.c, shell.r, winland.rc into versions.h, so it gets easier to keep these updated for different variants of the kernel. Also reorganized how the Xcode build extracts the version info from versions.h. Index: versions.h =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/headers/versions.h,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** versions.h 5 Feb 2006 16:22:43 -0000 1.13 --- versions.h 8 Feb 2006 19:13:44 -0000 1.14 *************** *** 32,38 **** --- 32,145 ---- JES 12/04/2002 + + 2006-02-07 aradke: major overhaul + about.c and shell.r don't contain any target-specific version info anymore. + there is some target-specific info in the version resource in winland.rc left, + but nothing that needs to be changed on a regular basic. + to do: convert pascal to c strings? (see about.c) */ + /* common strings for all targets */ + + #define APP_COPYRIGHT_FROM "1992" + #define APP_COPYRIGHT_TILL "2006" + + + /* target-specific strings and version info */ + + #ifdef PIKE + #ifndef OPMLEDITOR + + /* version info for RADIO targets (formerly known as PIKE) */ + + #define APPNAME "Radio" + #define APP_COPYRIGHT_HOLDER "UserLand Software, Inc" + + #define bs_APP_NAME "\x05" "Radio" + #define bs_APP_SLOGAN "\x2b" "The power of Web publishing on your desktop" + #define bs_APP_COPYRIGHT "\x23" "© " APP_COPYRIGHT_FROM "-" APP_COPYRIGHT_TILL " UserLand Software, Inc." + #define bs_APP_URL "\x26" "http://frontierkernel.sourceforge.net/" + + #define APP_MAJOR_VERSION 10 + #define APP_MAJOR_VERSION_BCD 0x10 /* major version in BCD notation */ + + #define APP_SUB_VERSION 1 + #define APP_MINOR_VERSION 0 + #define APP_SUBMINOR_VERSION_BCD 0x10 /* sub and minor version in BCD notation */ + + #define APP_STAGE_CODE 0x40 /* dev = 0x20, alpha = 0x40, beta = 0x60, final = 0x80 */ + #define APP_REVISION_LEVEL 5 /* for non-final releases only */ + #define APP_BUILD_NUMBER 5 /* increment by one for every release, final or not */ + + #define APP_VERSION_STRING "10.1a5" + + #else + + /* version info for OPMLEDITOR targets */ + + #define APPNAME "OPML" + + #define APP_COPYRIGHT_HOLDER "Scripting News, Inc" + + #define bs_APP_NAME "\x04" "OPML" + #define bs_APP_SLOGAN "\x25" "Powerful OPML editing on your desktop" + #define bs_APP_COPYRIGHT "\x20" "© " APP_COPYRIGHT_FROM "-" APP_COPYRIGHT_TILL " Scripting News, Inc." + #define bs_APP_URL "\x18" "http://support.opml.org/" + + #define APP_MAJOR_VERSION 10 + #define APP_MAJOR_VERSION_BCD 0x10 /* major version in BCD notation */ + + #define APP_SUB_VERSION 1 + #define APP_MINOR_VERSION 0 + #define APP_SUBMINOR_VERSION_BCD 0x10 /* sub and minor version in BCD notation */ + + #define APP_STAGE_CODE 0x40 /* dev = 0x20, alpha = 0x40, beta = 0x60, final = 0x80 */ + #define APP_REVISION_LEVEL 5 /* for non-final releases only */ + #define APP_BUILD_NUMBER 5 /* increment by one for every release, final or not */ + + #define APP_VERSION_STRING "10.1a5" + + #endif + #else + + /* version info for FRONTIER targets */ + + #define APPNAME "Frontier" + #define APP_COPYRIGHT_HOLDER "Frontier Kernel Project" + + #define bs_APP_NAME "\x08" "Frontier" + #define bs_APP_SLOGAN "\x25" "Powerful cross-platform web scripting" + #define bs_APP_COPYRIGHT "\x23" "© " APP_COPYRIGHT_FROM "-" APP_COPYRIGHT_TILL " Frontier Kernel Project" + #define bs_APP_URL "\x26" "http://frontierkernel.sourceforge.net/" + + #define APP_MAJOR_VERSION 10 + #define APP_MAJOR_VERSION_BCD 0x10 /* major version in BCD notation */ + + #define APP_SUB_VERSION 1 + #define APP_MINOR_VERSION 0 + #define APP_SUBMINOR_VERSION_BCD 0x10 /* sub and minor version in BCD notation */ + + #define APP_STAGE_CODE 0x40 /* dev = 0x20, alpha = 0x40, beta = 0x60, final = 0x80 */ + #define APP_REVISION_LEVEL 5 /* for non-final releases only */ + #define APP_BUILD_NUMBER 5 /* increment by one for every release, final or not */ + + #define APP_VERSION_STRING "10.1a5" + + #endif + + #define APP_COPYRIGHT APP_COPYRIGHT_FROM "-" APP_COPYRIGHT_TILL " " APP_COPYRIGHT_HOLDER + + #define APPNAME_SHORT APPNAME /* 2006-02-04 aradke */ + #define APPNAME_TM APPNAME /* 2005-01-12 aradke: app names no longer include trademark character */ + + + + + + /* 2006-02-07 aradke: old version switched off */ + + #if 0 + /* Radio version information */ *************** *** 82,127 **** #define opml_version_string "10.1a5" - /* strings for all apps */ - - #define copyright_year_string "2006" - - - /* Define app name and related strings */ - #ifdef PIKE - #ifndef OPMLEDITOR - #define APPNAME "Radio" - #else - #define APPNAME "OPML" - #endif - #else - #define APPNAME "Frontier" - #endif - - #define APPNAME_SHORT APPNAME /* 2006-02-04 aradke */ - - /* app name for display -- ends with the trademark character */ - /* 2005-01-12 aradke: app names no longer include trademark character */ - #define APPNAME_TM APPNAME - - - /* 2006-02-04 aradke: Product slogan and url as shown in about window */ - - #ifdef PIKE - #ifndef OPMLEDITOR - #define app_name "\x05" "Radio" - #define app_slogan "\x2b" "The power of Web publishing on your desktop" - #define app_copyright "\x23" "© 1992-" copyright_year_string " UserLand Software, Inc." - #define app_url "\x26" "http://frontierkernel.sourceforge.net/" - #else - #define app_name "\x04" "OPML" - #define app_slogan "\x25" "Powerful OPML editing on your desktop" - #define app_copyright "\x20" "© 1992-" copyright_year_string " Scripting News, Inc." - #define app_url "\x18" "http://support.opml.org/" - #endif - #else - #define app_name "\x08" "Frontier" - #define app_slogan "\x25" "Powerful cross-platform web scripting" - #define app_copyright "\x23" "© 2004-" copyright_year_string " Frontier Kernel Project" - #define app_url "\x26" "http://frontierkernel.sourceforge.net/" - #endif --- 189,192 ---- #define opml_version_string "10.1a5" + #endif /* 2006-02-06 aradke: switched off, see below */ |
|
From: Andre R. <and...@us...> - 2006-02-08 19:13:53
|
Update of /cvsroot/frontierkernel/Frontier/Common/resources/Mac In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30611/Common/resources/Mac Modified Files: SHELL.R Log Message: Moved more strings from about.c, shell.r, winland.rc into versions.h, so it gets easier to keep these updated for different variants of the kernel. Also reorganized how the Xcode build extracts the version info from versions.h. Index: SHELL.R =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/resources/Mac/SHELL.R,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** SHELL.R 6 Feb 2006 11:28:01 -0000 1.15 --- SHELL.R 8 Feb 2006 19:13:44 -0000 1.16 *************** *** 4490,4494 **** #endif { ! "Copyright © 1992-" copyright_year_string ", UserLand Software, Inc." }; --- 4490,4494 ---- #endif { ! "Copyright © " APP_COPYRIGHT }; *************** *** 4496,4535 **** #ifdef version5orgreater resource 'vers' (1) { ! #ifdef PIKE ! #ifndef OPMLEDITOR ! radio_major_version_bcd, ! radio_subminor_version_bcd, ! radio_stage_code, ! radio_revision_level, ! verUS, ! radio_version_string, ! #else ! opml_major_version_bcd, ! opml_subminor_version_bcd, ! opml_stage_code, ! opml_revision_level, ! verUS, ! opml_version_string, ! #endif ! #else ! frontier_major_version_bcd, ! frontier_subminor_version_bcd, ! frontier_stage_code, ! frontier_revision_level, verUS, ! frontier_version_string, ! #endif #ifdef fltrialsize "Trial " #endif ! #ifdef PIKE ! #ifndef OPMLEDITOR ! radio_version_string "; © 1992-" copyright_year_string ", UserLand Software, Inc." ! #else //OPMLEDITOR ! opml_version_string "; © 1992-" copyright_year_string ", Scripting News, Inc." ! #endif // OPMLEDITOR ! #else ! frontier_version_string "; © 1992-" copyright_year_string ", UserLand Software, Inc." ! #endif }; #else --- 4496,4509 ---- #ifdef version5orgreater resource 'vers' (1) { ! APP_MAJOR_VERSION_BCD, ! APP_SUBMINOR_VERSION_BCD, ! APP_STAGE_CODE, ! APP_REVISION_LEVEL, verUS, ! APP_VERSION_STRING, #ifdef fltrialsize "Trial " #endif ! APP_VERSION_STRING "; © " APP_COPYRIGHT "." }; #else |
|
From: Andre R. <and...@us...> - 2006-02-08 19:09:48
|
Update of /cvsroot/frontierkernel/Frontier/build_XCode/tools In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28383/tools Log Message: Directory /cvsroot/frontierkernel/Frontier/build_XCode/tools added to the repository |
|
From: creedon <icr...@us...> - 2006-02-06 23:39:50
|
Update of /cvsroot/frontierkernel/odbs/frontierRoot/system/startup In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13749 Modified Files: startupScript Log Message: bring frontier to front before setting quickscript text for first root run Index: startupScript =================================================================== RCS file: /cvsroot/frontierkernel/odbs/frontierRoot/system/startup/startupScript,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** startupScript 6 Feb 2006 00:17:45 -0000 1.17 --- startupScript 6 Feb 2006 23:39:40 -0000 1.18 *************** *** 1,3 **** FrontierVcsFile:1:scpt:system.startup.startupScript ! ÇChanges Ç2/5/06; 9:45:01 AM by TAC Çremoved prefs.root startup script code when doing a first root run, no need to run it there as it is run later in the script Ç2/1/06; 1:27:51 PM by TAC Çdeleted some unneeded commented code Ç1/20/06; 1:54:05 PM by TAC Çdisable agents for all startups, not just for first root run Çthere was a problem with Tools starting up and its agent manipulating menus at the same time and causing a crash Ç12/24/05; 12:33:32 PM by TAC Çprefs.root now has a #startup script, deal with it Ç11/10/05; 4:24:48 PM by TAC Çmoved system.temp.Frontier/starting up after first if firstRootRun check was causing startup problem Ç11/5/05; 12:00:32 PM by TAC Çmoved system.temp.Frontier check back to top of script Ç10/9/05; 3:39:07 PM by TAC Çwhen storing prefs.root path, store realative path Çuse table.copyUndefinedContents to copy some item Çmove some of the user prefs initializations into Frontier.data.userPrefs Çrearrange script so that some initializations can happen outside of the first root run, this should make it easier to add new items and not have them get missed because the first root run had already been run once Ç10/4/05; 7:26:36 PM by TAC Çupon check for presence of Psapi.dll, don't use hard coded application name Ç9/26/05; 4:30:14 PM by TAC Çadded user.prefs.flReplaceDialogExpertMode Ç8/23/05; 7:22:18 PM by TAC Çadded user.prefs.flCompactModalMenus Ç7/14/05; 10:35:39 AM by TAC Çsystem.menus.data.currentMenuType set to nil so agent will update modal menu properly upon relaunch Ç7/6/05; 12:21:38 PM by TAC Çchanged user.callbacks.sendmail to user.callbacks.tcpSendMail Çadded user.prefs.mailHostPort Ç6/15/05; 6:52:11 PM by TAC Çrewrite for Open Source release, bring in code from startup.startupScript, userland.firstRootRun, userland.finishInstall, and userland.cleanRoot ÇOld code Çstartup.startupScript <http://cvs.sourceforge.net/viewcvs.py/frontierkernel/odbs/frontierRoot/system/startup/startupScript?rev=1.1> Çuserland.firstRootRun <http://cvs.sourceforge.net/viewcvs.py/frontierkernel/odbs/frontierRoot/system/verbs/builtins/userland/Attic/firstRootRun?rev=1.1> Çuserland.finishInstall <http://cvs.sourceforge.net/viewcvs.py/frontierkernel/odbs/frontierRoot/system/verbs/builtins/userland/Attic/finishInstall?rev=1.1> Çuserland.cleanRoot <http://cvs.sourceforge.net/viewcvs.py/frontierkernel/odbs/frontierRoot/system/verbs/builtins/userland/Attic/cleanRoot?rev=1.1> Ç06/08/01; 11:24:35 PM by JES ÇWhen opening databases defined at user.databases, skip objects which aren't tables. This avoids the condition where startup wouldn't complete, if there's an item #1 in the user.databases table. Ç06/02/01; 8:34:20 PM by PBS ÇDo the web-based install and open the Control Panel if this is the first root run. Ç04/28/01; 7:48:46 PM by JES ÇCall Frontier.tools.startup in a try block, so that the startup process will finish even if Tools installation fails. Ç04/20/01; 4:49:05 PM by JES ÇCall tools.startup to install Tools at startup. Ç10/7/99; 4:20:26 PM by PBS ÇOnly run the #startup script in a guest database if runStartupScript exists and is true. Previously, it would be run whether runStartupScript was true or false. Çhttp://frontier.userland.com/stories/storyReader$1760 Ç10/6/99; 10:21:35 PM by PBS ÇOnly set the taskTime for the overnight task if it's in the past. This fixes a bug when the taskTime was before midnight, but it was being set for the next day, so the overnight task wouldn't run. Çhttp://frontier.userland.com/stories/storyReader$1761 Ç8/19/99; 6:44:48 AM by DW ÇMake sure that taskTimes in user.scheduler.tasks are in the future. ÇWe do this much more quickly than scheduler.monitor would. Çhttp://discuss.userland.com/msgReader$9658 ÇThis script runs when Frontier opens the Frontier.root file. if defined (system.temp.Frontier) { // only run the startup script once return}; local (flEnableAgents = true, flOpenDatabases = true, flEnableHttpServer = true); // can be set by the external startup script local (flFirstRootRun = true); bundle { // miscellaneous initializations, checks, and etc., phase 1 of 2 Frontier.enableAgents (false); // try to keep agents from reporting errors and causing problems Frontier.pathString = file.folderFromPath (frontier.getFilePath ()); if defined (user.prefs.firstRootRun) { flFirstRootRun = user.prefs.firstRootRun}}; if flFirstRootRun { while window.frontmost () != "" { // open windows can mess things up later on window.hide (window.frontmost ())}; Çreturn (false) // enable for testing new (tableType, @system.temp); new (tableType, @root.user)}; bundle { // system.temp.Frontier, we are starting up new (tableType, @system.temp.Frontier); system.temp.Frontier.startupTime = clock.now (); system.temp.Frontier.startingUp = true}; backups.init (); batchExporter.init (); export.init (); rootUpdates.init (); // set up user.rootUpdates, even though root updates uses tcp, its ok to set up here as no tcp calls are made at this time webEdit.init (); bundle { // set up user.prefs if flFirstRootRun { new (tableType, @user.prefs); bundle { // set up user.prefs.commonStyles case sys.os () { "MacOS" { if system.environment.isCarbon { user.prefs.commonStyles = Frontier.data.commonStylesMacCarbon} else { user.prefs.commonStyles = Frontier.data.commonStylesMac}}; "Win95"; "WinNT" { user.prefs.commonStyles = Frontier.data.commonStylesWin}}}}; table.copyUndefinedContents (@Frontier.data.userPrefs, @user.prefs); bundle { // set up user.prefs.dialogs if flFirstRootRun { new (tableType, @user.prefs.dialogs)}; table.copyUndefinedContents (@Frontier.data.userPrefs.dialogs, @user.prefs.dialogs)}; bundle { // set up user.prefs.search if flFirstRootRun { new (tableType, @user.prefs.search)}; table.copyUndefinedContents (@Frontier.data.userPrefs.search, @user.prefs.search); if not (defined (user.prefs.search.replaceWith)) { user.prefs.search.replaceWith = Frontier.version ()}}; Frontier.setupUserPrefsFonts ()}; if flFirstRootRun { bundle { // set up the quick script window clipboard.putvalue ("dialog.notify (\"Hello World!\")"); window.quickScript (); editmenu.selectall (); editmenu.paste (); window.close ("Quick Script")}; bundle { // set up root window local (w = "root"); window.open (w); window.setPosition (w, 0, 0); editMenu.setFont (user.prefs.fonts.tableFont); editMenu.setFontSize (user.prefs.fonts.tableFontSize); window.zoom (w)}; bundle { // set up user.callbacks new (tableType, @user.callbacks); new (tableType, @user.callbacks.closeWindow); new (tableType, @user.callbacks.cmd2click); new (tableType, @user.callbacks.compileChangedScript); new (tableType, @user.callbacks.control2click); new (tableType, @user.callbacks.fileWriteWholeFile); new (tableType, @user.callbacks.opCollapse); new (tableType, @user.callbacks.opCursorMoved); new (tableType, @user.callbacks.openWindow); new (tableType, @user.callbacks.opExpand); new (tableType, @user.callbacks.opInsert); new (tableType, @user.callbacks.opReturnKey); new (tableType, @user.callbacks.opRightClick); new (tableType, @user.callbacks.opStruct2Click); new (tableType, @user.callbacks.option2click); new (tableType, @user.callbacks.resume); new (tableType, @user.callbacks.saveWindow); new (tableType, @user.callbacks.shutdown); new (tableType, @user.callbacks.startup); new (tableType, @user.callbacks.statusMessage); new (tableType, @user.callbacks.suspend); new (tableType, @user.callbacks.systemTrayIcon2Click); new (tableType, @user.callbacks.systemTrayIconRightClick); new (tableType, @user.callbacks.tcpSendMail)}; bundle { // clear applications paths in system.verbs.apps local (adrAppsTable = @system.verbs.apps, i); for i = 1 to sizeof (adrAppsTable^) { local (adrAppInfo = @adrAppsTable^ [i].appInfo); if defined (adrAppInfo^) { adrAppInfo^.path = ""}}}; bundle { // set up Frontier.tools.thread Frontier.tools.thread.ct = 0; Frontier.tools.thread.enabled = true}; bundle { // set up workspace new (tableType, @root.workspace); new (outlineType, @workspace.notepad)}; bundle { // miscellaneous new (tableType, @root.scratchpad); new (tableType, @system.deskscripts); new (tableType, @user.databases); new (tableType, @user.protocols)}}; Çnew (tableType, @websites.["#data"]) bundle { // set up user.menus if flFirstRootRun { new (tableType, @user.menus)}; Çuser.menus.bookmarkMenu = userland.virginBookmarkMenu if not (defined (user.menus.customMenu)) { user.menus.customMenu = Frontier.data.virginCustomMenu}}; if flFirstRootRun { bundle { // open mainResponder.root, hidden and add to user.databases local (appFolder = Frontier.getSubFolder ("apps")); if not defined ( [appFolder + "mainResponder.root"] ) { Frontier.installApp ("mainResponder.root", false)}}; bundle { // open prefs.root, hidden and add to user.databases local (f = Frontier.getSubFolder ("www") + "prefs.root"); if not (defined ([f])) { fileMenu.open (f, true);}; //open hidden ÇAdd an entry to the user.databases table. local (adrTable = @user.databases.["prefs.root"]); new (tableType, adrTable); adrTable^.f = file.getPathChar () + (f - Frontier.pathString); adrTable^.openOnStartup = true; adrTable^.runStartupScript = true; adrTable^.supportsSubscribe = false}}; Çbundle //initialize responders Çuser.webserver.responders.websiteFramework.data.docTree.samples = @websites.samples Çtry Çdelete (@user.webserver.responders.websiteFramework.data.docTree.allSites) Çtry Çdelete (@user.webserver.responders.websiteFramework.data.docTree.contents) Ç Çif defined (user.webserver.responders.manilaEdit) Çdelete (@user.webserver.responders.manilaEdit) ÇfileMenu.save () bundle { // miscellaneous variable initializations and checks, phase 2 of 2 system.menus.data.currentsuite = ""; system.menus.data.currentMenuType = nil; system.menus.data.currentmenu = 0; bundle { // check for presence of Psapi.dll if sys.os () == "WinNT" { if not (sys.appIsRunning (file.fileFromPath (Frontier.getProgramPath ()))) { // 11/27/04; 12:14:40 PM by TAC - would it be possible for Frontier to install this on its own? dialog.alert ("You need to run the Frontier Psapi Installer for certain Frontier verbs to work properly.")}}}}; bundle { //open the about window if the pref says we should Çadded 12/16/98; 6:47:28 PM by DW if not defined (user.prefs.openAboutWindow) { user.prefs.openAboutWindow = true}; if user.prefs.openAboutWindow { window.about ()}}; bundle { //initialize the log, next bit of code could add a log item Çadded 12/16/98; 6:52:40 PM by DW if defined (log.startup) { log.startup ()}}; bundle { //run the external startup script local (fname = "frontierStartupCommands.txt"); local (f = file.folderFromPath (Frontier.getProgramPath ()) + fname); if file.exists (f) { try { evaluate (string (file.readWholeFile (f)))} else { log.add ("Error running " + fname + ": \"" + tryError + "\"", "startupError", flwptext:true)}}}; bundle { // tcp based services webserver.init (); // needs to load first betty.init (); // needs to load second soap.init ()}; bundle { // people based services people.init (); // needs to load first custody.init (); webEditServer.init ()}; bundle { //open all the databases that have openOnStartup true Çadded 12/16/98; 6:23:16 PM by DW if defined (user.databases) { if flOpenDatabases { local (i, flmsg = false); for i = 1 to sizeof (user.databases) { if typeOf (user.databases[i]) == tableType { //06/08/01 JES: avert item #1 errors with user.databases [i] { local (flopened = false); try { if openOnStartup { msg (this + ": Opening " + file.fileFromPath (f)); flmsg = true; fileMenu.open (f, hidden:true); flopened = true}} else { log.add ("Startup error opening guest database " + nameof (user.databases [i]) + ": \"" + tryError + "\"", "startupError", flwptext:true)}; if flopened { if defined (runStartupScript) { if runStartupScript { //PBS 10/7/99: check the value of runStartupScript: only run the script if the boolean is true local (adrscript = @[filespec (f)].["#startup"]); if defined (adrscript^) { try { adrscript^ ()} else { log.add ("Error running #startup script in guest database " + nameof (user.databases [i]) + ": \"" + tryError + "\"", "startupError", flwptext:true)}}}}}}}}; if flmsg { msg ("")}}}}; try { //04/28/2001 JES: prevent startup from failing if Tool installation fails. Frontier.tools.startup ()}; scheduler.init (); html.init (); bundle { // webBrowser webBrowser.init (); if system.environment.isMac { try {new (tableType, @user.odbEditors.data.openFiles)}}; //Empty out the list of externally-edited files. if system.environment.isWindows { user.webBrowser.winDefaultBrowserApp = file.findApplication ("htm")}}; if flFirstRootRun { bundle { // set up websites table and related with websites.["#ftpSite"] { folder = file.folderFromPath (Frontier.getProgramPath ()) + "Websites" + file.getPathChar (); Çfile.sureFolder (folder) url = file.fileToURL (folder); isLocal = true}; user.html.sites.default = websites.["#ftpSite"]}; bundle { // personalize this copy of Frontier, configure network settings, and complete the installation local (flWebBasedInstall = true); if flWebBasedInstall { Ç11/29/04; 11:17:45 AM by TAC - the following seems like it should be done as part of mainRepsonder startup, init. IIRC, members.root is a feature of mainResponder bundle { //create the Admin membership group if needed local (adrRoot = @[system.temp.mainResponder.membersRootFile]); local (adrGroup = @adrRoot^.admin); if not defined (adrGroup^) { new (tableType, adrGroup)}; if not defined (adrGroup^.callbacks) { new (tableType, @adrGroup^.callbacks)}; if not defined (adrGroup^.cookieDomain) { adrGroup^.cookieDomain = ""}; if not defined (adrGroup^.cookieExpires) { adrGroup^.cookieExpires = "Mon, 01 Apr 2030 07:00:00 GMT"}; if not defined (adrGroup^.cookieName) { adrGroup^.cookieName = "Admin"}; if not defined (adrGroup^.mailReturnAddress) { adrGroup^.mailReturnAddress = user.prefs.mailAddress}; if not defined (adrGroup^.mailSubject) { adrGroup^.mailSubject = "Admin"}; if not defined (adrGroup^.mailTemplate) { wp.newTextObject ("", @adrGroup^.mailTemplate)}; if not defined (adrGroup^.openToPublic) { adrGroup^.openToPublic = false}; if not defined (adrGroup^.users) { new (tableType, @adrGroup^.users)}}; bundle { // prep for web based install via mainResponder admin website local (portString = ""); if user.inetd.config.http2.port != 80 { portString = ":" + user.inetd.config.http2.port}; if not defined (system.temp.Frontier.setupFrontier) { new (tableType, @system.temp.Frontier.setupFrontier)}; system.temp.Frontier.setupFrontier.flAllowLocalAccessToSetupPage = true; local (setupUrl = "http://127.0.0.1" + portString + "/setupFrontier"); if not defined (system.temp.installer) { new (tableType, @system.temp.installer)}; system.temp.installer.urlToOpen = setupUrl}} else { on infoDialog () { //prompt the user for name, org and initials on kernelCall (adrName, adrInitials, adrOrg, adrEmail) { kernel (dialog.getUserInfo)}; local (name, initials, organization, email); case sys.os () { "Win95"; "WinNT" { if not (kernelCall (@name, @initials, @organization, @email)) { return (false)}; if initials == "" { dialog.alert ("You must specify your initials."); infoDialog ()}; user.prefs.name = name; user.prefs.initials = initials; user.prefs.organization = organization; user.prefs.mailAddress = email}; "MacOS" { bundle { //initialize user.prefs.name etc using info from Internet Config try { name = ic.geticpreference (ic.eventinfo.realName)}; try { organization = ic.geticpreference (ic.eventinfo.organization)}; try { email = ic.geticpreferece (ic.eventinfo.emailAddress)}; user.prefs.name = name; user.prefs.organization = organization; if name != "" { local (i); user.prefs.initials = name [1]; for i = 3 to sizeof (name) { if name [i] == ' ' { user.prefs.initials = user.prefs.initials + name [i+1]}}}}; card.run (@system.cards.userInfoDialog)}}; return (true)}; infoDialog ()}}; //AR 09/27/04 : personalize install ÇrootUpdates.getCurrent ("Frontier") // 11/29/04; 6:57:54 PM by TAC - if we get a root update then we'll need to use rootUpdates.update bundle { // about window local (w); window.about (); w = window.frontMost (); window.zoom (w); menus.scripts.styleCommand ("medium"); window.setPosition (w, 25, 75)}; Çwindow.close (s) bundle { // license edit (@system.startup.license); // 12/4/04; 9:26:35 PM by TAC - i rather do this near the beginning of phase 1 firstRootRun but had a problem with this window and setting up the quick script window wp.setSelect (0, 0)}}; system.callbacks.startup (); //call user's startup scripts bundle { // build menu bar system.menus.buildMenuBar (); system.menus.buildSuitesSubmenu ()}; //5.0 Frontier.enableAgents (flEnableAgents); if flEnableHttpServer { //6.0, daemons don't start up until all the startup code has run new (tableType, @user.inetd.listens); inetd.start ()}; //start up all daemons with startup set true if flFirstRootRun { if defined (system.temp.installer.urlToOpen) { Çwindow.update ("About Frontier") webBrowser.openUrl (system.temp.installer.urlToOpen); webBrowser.bringToFront ()}; user.prefs.firstRootRun = false}; system.temp.Frontier.startingUp = false; //signal to all who care, let the hits begin! msg (""); fileMenu.save () \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:scpt:system.startup.startupScript ! ÇChanges Ç2/6/06; 12:04:50 PM by TAC Çbring frontier to front before setting quickscript text for first root run Ç2/5/06; 9:45:01 AM by TAC Çremoved prefs.root startup script code when doing a first root run, no need to run it there as it is run later in the script Ç2/1/06; 1:27:51 PM by TAC Çdeleted some unneeded commented code Ç1/20/06; 1:54:05 PM by TAC Çdisable agents for all startups, not just for first root run Çthere was a problem with Tools starting up and its agent manipulating menus at the same time and causing a crash Ç12/24/05; 12:33:32 PM by TAC Çprefs.root now has a #startup script, deal with it Ç11/10/05; 4:24:48 PM by TAC Çmoved system.temp.Frontier/starting up after first if firstRootRun check was causing startup problem Ç11/5/05; 12:00:32 PM by TAC Çmoved system.temp.Frontier check back to top of script Ç10/9/05; 3:39:07 PM by TAC Çwhen storing prefs.root path, store realative path Çuse table.copyUndefinedContents to copy some item Çmove some of the user prefs initializations into Frontier.data.userPrefs Çrearrange script so that some initializations can happen outside of the first root run, this should make it easier to add new items and not have them get missed because the first root run had already been run once Ç10/4/05; 7:26:36 PM by TAC Çupon check for presence of Psapi.dll, don't use hard coded application name Ç9/26/05; 4:30:14 PM by TAC Çadded user.prefs.flReplaceDialogExpertMode Ç8/23/05; 7:22:18 PM by TAC Çadded user.prefs.flCompactModalMenus Ç7/14/05; 10:35:39 AM by TAC Çsystem.menus.data.currentMenuType set to nil so agent will update modal menu properly upon relaunch Ç7/6/05; 12:21:38 PM by TAC Çchanged user.callbacks.sendmail to user.callbacks.tcpSendMail Çadded user.prefs.mailHostPort Ç6/15/05; 6:52:11 PM by TAC Çrewrite for Open Source release, bring in code from startup.startupScript, userland.firstRootRun, userland.finishInstall, and userland.cleanRoot ÇOld code Çstartup.startupScript <http://cvs.sourceforge.net/viewcvs.py/frontierkernel/odbs/frontierRoot/system/startup/startupScript?rev=1.1> Çuserland.firstRootRun <http://cvs.sourceforge.net/viewcvs.py/frontierkernel/odbs/frontierRoot/system/verbs/builtins/userland/Attic/firstRootRun?rev=1.1> Çuserland.finishInstall <http://cvs.sourceforge.net/viewcvs.py/frontierkernel/odbs/frontierRoot/system/verbs/builtins/userland/Attic/finishInstall?rev=1.1> Çuserland.cleanRoot <http://cvs.sourceforge.net/viewcvs.py/frontierkernel/odbs/frontierRoot/system/verbs/builtins/userland/Attic/cleanRoot?rev=1.1> Ç06/08/01; 11:24:35 PM by JES ÇWhen opening databases defined at user.databases, skip objects which aren't tables. This avoids the condition where startup wouldn't complete, if there's an item #1 in the user.databases table. Ç06/02/01; 8:34:20 PM by PBS ÇDo the web-based install and open the Control Panel if this is the first root run. Ç04/28/01; 7:48:46 PM by JES ÇCall Frontier.tools.startup in a try block, so that the startup process will finish even if Tools installation fails. Ç04/20/01; 4:49:05 PM by JES ÇCall tools.startup to install Tools at startup. Ç10/7/99; 4:20:26 PM by PBS ÇOnly run the #startup script in a guest database if runStartupScript exists and is true. Previously, it would be run whether runStartupScript was true or false. Çhttp://frontier.userland.com/stories/storyReader$1760 Ç10/6/99; 10:21:35 PM by PBS ÇOnly set the taskTime for the overnight task if it's in the past. This fixes a bug when the taskTime was before midnight, but it was being set for the next day, so the overnight task wouldn't run. Çhttp://frontier.userland.com/stories/storyReader$1761 Ç8/19/99; 6:44:48 AM by DW ÇMake sure that taskTimes in user.scheduler.tasks are in the future. ÇWe do this much more quickly than scheduler.monitor would. Çhttp://discuss.userland.com/msgReader$9658 ÇThis script runs when Frontier opens the Frontier.root file. if defined (system.temp.Frontier) { // only run the startup script once return}; local (flEnableAgents = true, flOpenDatabases = true, flEnableHttpServer = true); // can be set by the external startup script local (flFirstRootRun = true); bundle { // miscellaneous initializations, checks, and etc., phase 1 of 2 Frontier.enableAgents (false); // try to keep agents from reporting errors and causing problems Frontier.pathString = file.folderFromPath (frontier.getFilePath ()); if defined (user.prefs.firstRootRun) { flFirstRootRun = user.prefs.firstRootRun}}; if flFirstRootRun { while window.frontmost () != "" { // open windows can mess things up later on window.hide (window.frontmost ())}; Çreturn (false) // enable for testing new (tableType, @system.temp); new (tableType, @root.user)}; bundle { // system.temp.Frontier, we are starting up new (tableType, @system.temp.Frontier); system.temp.Frontier.startupTime = clock.now (); system.temp.Frontier.startingUp = true}; backups.init (); batchExporter.init (); export.init (); rootUpdates.init (); // set up user.rootUpdates, even though root updates uses tcp, its ok to set up here as no tcp calls are made at this time webEdit.init (); bundle { // set up user.prefs if flFirstRootRun { new (tableType, @user.prefs); bundle { // set up user.prefs.commonStyles case sys.os () { "MacOS" { if system.environment.isCarbon { user.prefs.commonStyles = Frontier.data.commonStylesMacCarbon} else { user.prefs.commonStyles = Frontier.data.commonStylesMac}}; "Win95"; "WinNT" { user.prefs.commonStyles = Frontier.data.commonStylesWin}}}}; table.copyUndefinedContents (@Frontier.data.userPrefs, @user.prefs); bundle { // set up user.prefs.dialogs if flFirstRootRun { new (tableType, @user.prefs.dialogs)}; table.copyUndefinedContents (@Frontier.data.userPrefs.dialogs, @user.prefs.dialogs)}; bundle { // set up user.prefs.search if flFirstRootRun { new (tableType, @user.prefs.search)}; table.copyUndefinedContents (@Frontier.data.userPrefs.search, @user.prefs.search); if not (defined (user.prefs.search.replaceWith)) { user.prefs.search.replaceWith = Frontier.version ()}}; Frontier.setupUserPrefsFonts ()}; if flFirstRootRun { bundle { // set up the quick script window Frontier.bringToFront (); clipboard.putvalue ("dialog.notify (\"Hello World!\")"); window.quickScript (); editmenu.selectall (); editmenu.paste (); window.close ("Quick Script")}; bundle { // set up root window local (w = "root"); window.open (w); window.setPosition (w, 0, 0); editMenu.setFont (user.prefs.fonts.tableFont); editMenu.setFontSize (user.prefs.fonts.tableFontSize); window.zoom (w)}; bundle { // set up user.callbacks new (tableType, @user.callbacks); new (tableType, @user.callbacks.closeWindow); new (tableType, @user.callbacks.cmd2click); new (tableType, @user.callbacks.compileChangedScript); new (tableType, @user.callbacks.control2click); new (tableType, @user.callbacks.fileWriteWholeFile); new (tableType, @user.callbacks.opCollapse); new (tableType, @user.callbacks.opCursorMoved); new (tableType, @user.callbacks.openWindow); new (tableType, @user.callbacks.opExpand); new (tableType, @user.callbacks.opInsert); new (tableType, @user.callbacks.opReturnKey); new (tableType, @user.callbacks.opRightClick); new (tableType, @user.callbacks.opStruct2Click); new (tableType, @user.callbacks.option2click); new (tableType, @user.callbacks.resume); new (tableType, @user.callbacks.saveWindow); new (tableType, @user.callbacks.shutdown); new (tableType, @user.callbacks.startup); new (tableType, @user.callbacks.statusMessage); new (tableType, @user.callbacks.suspend); new (tableType, @user.callbacks.systemTrayIcon2Click); new (tableType, @user.callbacks.systemTrayIconRightClick); new (tableType, @user.callbacks.tcpSendMail)}; bundle { // clear applications paths in system.verbs.apps local (adrAppsTable = @system.verbs.apps, i); for i = 1 to sizeof (adrAppsTable^) { local (adrAppInfo = @adrAppsTable^ [i].appInfo); if defined (adrAppInfo^) { adrAppInfo^.path = ""}}}; bundle { // set up Frontier.tools.thread Frontier.tools.thread.ct = 0; Frontier.tools.thread.enabled = true}; bundle { // set up workspace new (tableType, @root.workspace); new (outlineType, @workspace.notepad)}; bundle { // miscellaneous new (tableType, @root.scratchpad); new (tableType, @system.deskscripts); new (tableType, @user.databases); new (tableType, @user.protocols)}}; Çnew (tableType, @websites.["#data"]) bundle { // set up user.menus if flFirstRootRun { new (tableType, @user.menus)}; Çuser.menus.bookmarkMenu = userland.virginBookmarkMenu if not (defined (user.menus.customMenu)) { user.menus.customMenu = Frontier.data.virginCustomMenu}}; if flFirstRootRun { bundle { // open mainResponder.root, hidden and add to user.databases local (appFolder = Frontier.getSubFolder ("apps")); if not defined ( [appFolder + "mainResponder.root"] ) { Frontier.installApp ("mainResponder.root", false)}}; bundle { // open prefs.root, hidden and add to user.databases local (f = Frontier.getSubFolder ("www") + "prefs.root"); if not (defined ([f])) { fileMenu.open (f, true);}; //open hidden ÇAdd an entry to the user.databases table. local (adrTable = @user.databases.["prefs.root"]); new (tableType, adrTable); adrTable^.f = file.getPathChar () + (f - Frontier.pathString); adrTable^.openOnStartup = true; adrTable^.runStartupScript = true; adrTable^.supportsSubscribe = false}}; Çbundle //initialize responders Çuser.webserver.responders.websiteFramework.data.docTree.samples = @websites.samples Çtry Çdelete (@user.webserver.responders.websiteFramework.data.docTree.allSites) Çtry Çdelete (@user.webserver.responders.websiteFramework.data.docTree.contents) Ç Çif defined (user.webserver.responders.manilaEdit) Çdelete (@user.webserver.responders.manilaEdit) ÇfileMenu.save () bundle { // miscellaneous variable initializations and checks, phase 2 of 2 system.menus.data.currentsuite = ""; system.menus.data.currentMenuType = nil; system.menus.data.currentmenu = 0; bundle { // check for presence of Psapi.dll if sys.os () == "WinNT" { if not (sys.appIsRunning (file.fileFromPath (Frontier.getProgramPath ()))) { // 11/27/04; 12:14:40 PM by TAC - would it be possible for Frontier to install this on its own? dialog.alert ("You need to run the Frontier Psapi Installer for certain Frontier verbs to work properly.")}}}}; bundle { //open the about window if the pref says we should Çadded 12/16/98; 6:47:28 PM by DW if not defined (user.prefs.openAboutWindow) { user.prefs.openAboutWindow = true}; if user.prefs.openAboutWindow { window.about ()}}; bundle { //initialize the log, next bit of code could add a log item Çadded 12/16/98; 6:52:40 PM by DW if defined (log.startup) { log.startup ()}}; bundle { //run the external startup script local (fname = "frontierStartupCommands.txt"); local (f = file.folderFromPath (Frontier.getProgramPath ()) + fname); if file.exists (f) { try { evaluate (string (file.readWholeFile (f)))} else { log.add ("Error running " + fname + ": \"" + tryError + "\"", "startupError", flwptext:true)}}}; bundle { // tcp based services webserver.init (); // needs to load first betty.init (); // needs to load second soap.init ()}; bundle { // people based services people.init (); // needs to load first custody.init (); webEditServer.init ()}; bundle { //open all the databases that have openOnStartup true Çadded 12/16/98; 6:23:16 PM by DW if defined (user.databases) { if flOpenDatabases { local (i, flmsg = false); for i = 1 to sizeof (user.databases) { if typeOf (user.databases[i]) == tableType { //06/08/01 JES: avert item #1 errors with user.databases [i] { local (flopened = false); try { if openOnStartup { msg (this + ": Opening " + file.fileFromPath (f)); flmsg = true; fileMenu.open (f, hidden:true); flopened = true}} else { log.add ("Startup error opening guest database " + nameof (user.databases [i]) + ": \"" + tryError + "\"", "startupError", flwptext:true)}; if flopened { if defined (runStartupScript) { if runStartupScript { //PBS 10/7/99: check the value of runStartupScript: only run the script if the boolean is true local (adrscript = @[filespec (f)].["#startup"]); if defined (adrscript^) { try { adrscript^ ()} else { log.add ("Error running #startup script in guest database " + nameof (user.databases [i]) + ": \"" + tryError + "\"", "startupError", flwptext:true)}}}}}}}}; if flmsg { msg ("")}}}}; try { //04/28/2001 JES: prevent startup from failing if Tool installation fails. Frontier.tools.startup ()}; scheduler.init (); html.init (); bundle { // webBrowser webBrowser.init (); if system.environment.isMac { try {new (tableType, @user.odbEditors.data.openFiles)}}; //Empty out the list of externally-edited files. if system.environment.isWindows { user.webBrowser.winDefaultBrowserApp = file.findApplication ("htm")}}; if flFirstRootRun { bundle { // set up websites table and related with websites.["#ftpSite"] { folder = file.folderFromPath (Frontier.getProgramPath ()) + "Websites" + file.getPathChar (); Çfile.sureFolder (folder) url = file.fileToURL (folder); isLocal = true}; user.html.sites.default = websites.["#ftpSite"]}; bundle { // personalize this copy of Frontier, configure network settings, and complete the installation local (flWebBasedInstall = true); if flWebBasedInstall { Ç11/29/04; 11:17:45 AM by TAC - the following seems like it should be done as part of mainRepsonder startup, init. IIRC, members.root is a feature of mainResponder bundle { //create the Admin membership group if needed local (adrRoot = @[system.temp.mainResponder.membersRootFile]); local (adrGroup = @adrRoot^.admin); if not defined (adrGroup^) { new (tableType, adrGroup)}; if not defined (adrGroup^.callbacks) { new (tableType, @adrGroup^.callbacks)}; if not defined (adrGroup^.cookieDomain) { adrGroup^.cookieDomain = ""}; if not defined (adrGroup^.cookieExpires) { adrGroup^.cookieExpires = "Mon, 01 Apr 2030 07:00:00 GMT"}; if not defined (adrGroup^.cookieName) { adrGroup^.cookieName = "Admin"}; if not defined (adrGroup^.mailReturnAddress) { adrGroup^.mailReturnAddress = user.prefs.mailAddress}; if not defined (adrGroup^.mailSubject) { adrGroup^.mailSubject = "Admin"}; if not defined (adrGroup^.mailTemplate) { wp.newTextObject ("", @adrGroup^.mailTemplate)}; if not defined (adrGroup^.openToPublic) { adrGroup^.openToPublic = false}; if not defined (adrGroup^.users) { new (tableType, @adrGroup^.users)}}; bundle { // prep for web based install via mainResponder admin website local (portString = ""); if user.inetd.config.http2.port != 80 { portString = ":" + user.inetd.config.http2.port}; if not defined (system.temp.Frontier.setupFrontier) { new (tableType, @system.temp.Frontier.setupFrontier)}; system.temp.Frontier.setupFrontier.flAllowLocalAccessToSetupPage = true; local (setupUrl = "http://127.0.0.1" + portString + "/setupFrontier"); if not defined (system.temp.installer) { new (tableType, @system.temp.installer)}; system.temp.installer.urlToOpen = setupUrl}} else { on infoDialog () { //prompt the user for name, org and initials on kernelCall (adrName, adrInitials, adrOrg, adrEmail) { kernel (dialog.getUserInfo)}; local (name, initials, organization, email); case sys.os () { "Win95"; "WinNT" { if not (kernelCall (@name, @initials, @organization, @email)) { return (false)}; if initials == "" { dialog.alert ("You must specify your initials."); infoDialog ()}; user.prefs.name = name; user.prefs.initials = initials; user.prefs.organization = organization; user.prefs.mailAddress = email}; "MacOS" { bundle { //initialize user.prefs.name etc using info from Internet Config try { name = ic.geticpreference (ic.eventinfo.realName)}; try { organization = ic.geticpreference (ic.eventinfo.organization)}; try { email = ic.geticpreferece (ic.eventinfo.emailAddress)}; user.prefs.name = name; user.prefs.organization = organization; if name != "" { local (i); user.prefs.initials = name [1]; for i = 3 to sizeof (name) { if name [i] == ' ' { user.prefs.initials = user.prefs.initials + name [i+1]}}}}; card.run (@system.cards.userInfoDialog)}}; return (true)}; infoDialog ()}}; //AR 09/27/04 : personalize install ÇrootUpdates.getCurrent ("Frontier") // 11/29/04; 6:57:54 PM by TAC - if we get a root update then we'll need to use rootUpdates.update bundle { // about window local (w); window.about (); w = window.frontMost (); window.zoom (w); menus.scripts.styleCommand ("medium"); window.setPosition (w, 25, 75)}; Çwindow.close (s) bundle { // license edit (@system.startup.license); // 12/4/04; 9:26:35 PM by TAC - i rather do this near the beginning of phase 1 firstRootRun but had a problem with this window and setting up the quick script window wp.setSelect (0, 0)}}; system.callbacks.startup (); //call user's startup scripts bundle { // build menu bar system.menus.buildMenuBar (); system.menus.buildSuitesSubmenu ()}; //5.0 Frontier.enableAgents (flEnableAgents); if flEnableHttpServer { //6.0, daemons don't start up until all the startup code has run new (tableType, @user.inetd.listens); inetd.start ()}; //start up all daemons with startup set true if flFirstRootRun { if defined (system.temp.installer.urlToOpen) { Çwindow.update ("About Frontier") webBrowser.openUrl (system.temp.installer.urlToOpen); webBrowser.bringToFront ()}; user.prefs.firstRootRun = false}; system.temp.Frontier.startingUp = false; //signal to all who care, let the hits begin! msg (""); fileMenu.save () \ No newline at end of file |
|
From: creedon <icr...@us...> - 2006-02-06 20:23:53
|
Update of /cvsroot/frontierkernel/Frontier/Common/source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28270 Modified Files: shellmenu.c Log Message: re-establish enabling Insert Date/Time menu item, code, went missing in sf repository revision 1.9 Index: shellmenu.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/shellmenu.c,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** shellmenu.c 5 Feb 2006 18:38:16 -0000 1.10 --- shellmenu.c 6 Feb 2006 20:23:45 -0000 1.11 *************** *** 1233,1236 **** --- 1233,1238 ---- setmenuitemenable (hmenu, selectallitem, flwindow); + setmenuitemenable (hmenu, insertdatetimeitem, flwindow); /* 2006-01-06 creedon: re-establish code, went missing in sf repository revision 1.9 */ + #ifdef PIKE #ifndef OPMLEDITOR |
|
From: Andre R. <and...@us...> - 2006-02-06 20:20:53
|
Update of /cvsroot/frontierkernel/Frontier/Common/resources/Win32/res In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26950 Modified Files: OPMLapp.bmp OPMLapp.ico OPMLdoc.ico Log Message: Replaced outdated icons for OPML Editor with current versions received from Frank Jonen. Index: OPMLdoc.ico =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/resources/Win32/res/OPMLdoc.ico,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 Binary files /tmp/cvs6CpyOq and /tmp/cvsLE7EVt differ Index: OPMLapp.ico =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/resources/Win32/res/OPMLapp.ico,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 Binary files /tmp/cvsjmvq7s and /tmp/cvsGlmUjw differ Index: OPMLapp.bmp =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/resources/Win32/res/OPMLapp.bmp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 Binary files /tmp/cvsZ0vhBv and /tmp/cvsTkXgTy differ |