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...> - 2005-12-22 19:30:38
|
Update of /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/subscriptions In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2008 Modified Files: server Log Message: support relative paths in user.rootUpdates.servers.x.f no longer need to pop the file off an address as what is now stored as a relative address Index: server =================================================================== RCS file: /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/subscriptions/server,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** server 26 Mar 2005 21:46:14 -0000 1.1.1.1 --- server 22 Dec 2005 19:30:30 -0000 1.2 *************** *** 1,3 **** FrontierVcsFile:1:scpt:mainResponder.subscriptions.server ! on server (dbname, ipaddress, lastupdate, username, mailaddress, serialnumber) { ÇReturn new and changed parts of a database since the last update. ÇChanges: Ç8/12/04; 3:12:31 AM by JES ÇAdditional logging: Errors are now logged. When an update is successful, ctPartsSent (in the log sub-table) is set to the number of parts sent to the client. Ç12/7/03; 11:52:32 PM by JES ÇAdd callback support. Callbacks are in config.mainResponder.callbacks.subscriptionsServer. They take the same parameters as this RPC handler. If any callback returns false, then an error is generated. Ç11/04/00; 5:55:40 PM by PBS ÇReturn the time on the server of the last update, so clients don't miss updates. local (adrtable = log.addToGuestDatabase ("subscriptions")); bundle { //add a record to the subscription log adrtable^.dbname = dbname; adrtable^.ipaddress = ipaddress; adrtable^.lastupdate = lastupdate; adrtable^.username = username; adrtable^.mailaddress = mailaddress; adrtable^.serialnumber = serialnumber}; bundle { //call callbacks local (adrcallbacks = @config.mainResponder.callbacks.subscriptionsServer); if not defined (adrcallbacks^) { new (tableType, adrcallbacks)}; local (adr, ct = sizeOf (adrcallbacks^), i, flSendUpdate = true); for i = 1 to ct { adr = @adrcallbacks^[i]; try { while typeOf (adr^) == addressType { adr = adr^}; if not adr^ (dbname, ipaddress, lastupdate, username, mailaddress, serialnumber) { flSendUpdate = false}}; if not flSendUpdate { scriptError ("Can't update because you are not authorized for updates to this database.")}}}; local (adrdb = @user.databases.[dbname]); if not defined (adrdb^) { adrtable^.error = "The sysop hasn't registered a database named \"" + dbname + "\"."; //02/04/07, 08:22:52 by DAB scriptError ("Can't send you an update because the sysop hasn't registered a database named \"" + dbname + "\".")}; if not (adrdb^.supportsSubscribe) { adrtable^.error = "The database \"" + dbname + "\" doesn't support subscriptions."; //02/04/07, 08:22:48 by DAB scriptError ("Can't send you an update because the database \"" + dbname + "\" doesn't support subscriptions.")}; local (adrguestdatabase = @[adrdb^.f]); table.sureDatabaseOpen (adrguestdatabase); lastupdate = date (lastupdate); //convert from a net-standard-string local (frontierVersion = Frontier.version ()); local (adrchanges = @adrguestdatabase^.["#changes"]); local (sizechanges = sizeof (adrchanges^)); local (parts); new (tabletype, @parts); parts.serialNum = sizechanges; //it's synthetic! parts.lastUpdateTime = date.netStandardString (clock.now ()); //PBS 11/4/00: save server time on client, to avoid missing updates new (tabletype, @parts.parts); local (i, addeditems = {}); for i = sizechanges downto 1 { local (adritem = @adrchanges^ [i]); if adritem^.when < lastupdate { break}; if addeditems contains adritem^.what { //we've already included this continue}; local (name = "part" + string.padwithzeros (i, 4)); local (adrnewpart = @parts.parts.[name]); new (tabletype, adrnewpart); bundle { //2/14/99; 9:01:26 AM by DW, customized error if object doesn't exist if not defined (adritem^.what^) { adrtable^.error = "The #changes table in \"" + dbname + "\" on the server says that \"" + adritem^.what + "\" has changed, but the object isn't in the database."; //02/04/07, 08:22:41 by DAB scriptError ("Can't do the update because the #changes table in \"" + dbname + "\" on the server says that \"" + adritem^.what + "\" has changed, but the object isn't in the database.")}; adrnewpart^.data = adritem^.what^}; adrnewpart^.timestamp = adritem^.when; adrnewpart^.userName = adritem^.who; bundle { //put the relative address into adr field local (s = string (adritem^.what)); local (ix = string.patternMatch ("].", s)); s = string.delete (s, 1, ix + 1); adrnewpart^.adr = s}; wp.newtextobject ("", @adrnewpart^.changes); adrnewpart^.platform = "both"; adrnewpart^.version = frontierVersion; local (bytes); pack (adrnewpart^, @bytes); bytes = base64.encode (bytes, infinity); delete (adrnewpart); adrnewpart^ = bytes; addeditems = addeditems + {adritem^.what}; sys.systemTask ()}; adrtable^.ctPartsSent = sizeof (addedItems); //02/04/07, 08:22:36 by DAB return (parts)}; Çbundle //test code Çserver ("prefs.root", tcp.dns.getMyDottedId (), clock.now (), "Jake", "ja...@us...", 10) \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:scpt:mainResponder.subscriptions.server ! on server (dbname, ipaddress, lastupdate, username, mailaddress, serialnumber) { ÇChanges Ç12/21/05; 10:11:19 PM by TAC Çsupport relative paths in user.rootUpdates.servers.x.f Çno longer need to pop the file off an address as what is now stored as a relative address Ç8/12/04; 3:12:31 AM by JES ÇAdditional logging: Errors are now logged. When an update is successful, ctPartsSent (in the log sub-table) is set to the number of parts sent to the client. Ç12/7/03; 11:52:32 PM by JES ÇAdd callback support. Callbacks are in config.mainResponder.callbacks.subscriptionsServer. They take the same parameters as this RPC handler. If any callback returns false, then an error is generated. Ç11/04/00; 5:55:40 PM by PBS ÇReturn the time on the server of the last update, so clients don't miss updates. ÇReturn new and changed parts of a database since the last update. local (adrtable = log.addToGuestDatabase ("subscriptions")); bundle { //add a record to the subscription log adrtable^.dbname = dbname; adrtable^.ipaddress = ipaddress; adrtable^.lastupdate = lastupdate; adrtable^.username = username; adrtable^.mailaddress = mailaddress; adrtable^.serialnumber = serialnumber}; bundle { //call callbacks local (adrcallbacks = @config.mainResponder.callbacks.subscriptionsServer); if not defined (adrcallbacks^) { new (tableType, adrcallbacks)}; local (adr, ct = sizeOf (adrcallbacks^), i, flSendUpdate = true); for i = 1 to ct { adr = @adrcallbacks^[i]; try { while typeOf (adr^) == addressType { adr = adr^}; if not adr^ (dbname, ipaddress, lastupdate, username, mailaddress, serialnumber) { flSendUpdate = false}}; if not flSendUpdate { scriptError ("Can't update because you are not authorized for updates to this database.")}}}; local (adrdb = @user.databases.[dbname]); if not defined (adrdb^) { adrtable^.error = "The sysop hasn't registered a database named \"" + dbname + "\"."; //02/04/07, 08:22:52 by DAB scriptError ("Can't send you an update because the sysop hasn't registered a database named \"" + dbname + "\".")}; if not (adrdb^.supportsSubscribe) { adrtable^.error = "The database \"" + dbname + "\" doesn't support subscriptions."; //02/04/07, 08:22:48 by DAB scriptError ("Can't send you an update because the database \"" + dbname + "\" doesn't support subscriptions.")}; local (adrGuestDatabase = @[fileSpec (adrdb^.f)]); table.sureDatabaseOpen (adrGuestDatabase); lastupdate = date (lastupdate); //convert from a net-standard-string local (frontierVersion = Frontier.version ()); local (adrchanges = @adrGuestDatabase^.["#changes"]); local (sizechanges = sizeof (adrchanges^)); local (parts); new (tabletype, @parts); parts.serialNum = sizechanges; //it's synthetic! parts.lastUpdateTime = date.netStandardString (clock.now ()); //PBS 11/4/00: save server time on client, to avoid missing updates new (tabletype, @parts.parts); local (i, addedItems = {}); for i = sizechanges downto 1 { local (adrItem = @adrchanges^ [i]); if adrItem^.when < lastupdate { break}; if addedItems contains adrItem^.what { //we've already included this continue}; local (name = "part" + string.padwithzeros (i, 4)); local (adrNewPart = @parts.parts.[name]); new (tabletype, adrNewPart); bundle { //2/14/99; 9:01:26 AM by DW, customized error if object doesn't exist if not defined (adrItem^.what^) { adrtable^.error = "The #changes table in \"" + dbname + "\" on the server says that \"" + adrItem^.what + "\" has changed, but the object isn't in the database."; //02/04/07, 08:22:41 by DAB scriptError ("Can't do the update because the #changes table in \"" + dbname + "\" on the server says that \"" + adrItem^.what + "\" has changed, but the object isn't in the database.")}; adrNewPart^.data = adrItem^.what^}; adrNewPart^.timestamp = adrItem^.when; adrNewPart^.userName = adrItem^.who; adrNewPart^.adr = adrItem^.what; Çbundle //put the relative address into adr field Çlocal (s = string (adrItem^.what)) Çlocal (ix = string.patternMatch ("].", s)) Çs = string.delete (s, 1, ix + 1) ÇadrNewPart^.adr = s wp.newtextobject ("", @adrNewPart^.changes); adrNewPart^.platform = "both"; adrNewPart^.version = frontierVersion; local (bytes); pack (adrNewPart^, @bytes); bytes = base64.encode (bytes, infinity); delete (adrNewPart); adrNewPart^ = bytes; addedItems = addedItems + {adrItem^.what}; sys.systemTask ()}; adrtable^.ctPartsSent = sizeof (addedItems); //02/04/07, 08:22:36 by DAB return (parts)}; Çbundle //test code Çserver ("prefs.root", tcp.dns.getMyDottedId (), clock.now (), "Jake", "ja...@us...", 10) \ No newline at end of file |
|
From: creedon <icr...@us...> - 2005-12-22 19:28:11
|
Update of /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/subscriptions In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1275 Modified Files: checkInCallback Log Message: for what don't store file Index: checkInCallback =================================================================== RCS file: /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/subscriptions/checkInCallback,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** checkInCallback 26 Mar 2005 21:46:14 -0000 1.1.1.1 --- checkInCallback 22 Dec 2005 19:28:03 -0000 1.2 *************** *** 1,3 **** FrontierVcsFile:1:scpt:mainResponder.subscriptions.checkInCallback ! on checkInCallback (adrobject, username, now, description) { //called after an object has been checked in local (nomad = adrobject, adrchanges); loop { nomad = parentof (nomad^); if nomad == "" { break}; adrchanges = @nomad^.["#changes"]; if defined (adrchanges^) { local (adrtable = xml.addtable (adrchanges, nameof (adrobject^))); adrtable^.what = adrobject; adrtable^.when = now; adrtable^.who = username; wp.newtextobject (description, @adrtable^.why); break}}}; bundle { //test code local (adr = table.getcursoraddress ()); checkincallback (adr, "Bull Mancuso", clock.now (), "No information available at this time.")} \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:scpt:mainResponder.subscriptions.checkInCallback ! on checkInCallback (adrObject, userName, now, description) { ÇChanges Ç12/21/05; 9:13:26 PM by TAC Çfor what don't store file Çcalled after an object has been checked in local (nomad = adrObject, adrChanges); loop { nomad = parentOf (nomad^); if nomad == "" { break}; adrChanges = @nomad^.["#changes"]; if defined (adrChanges^) { local (adrTable = xml.addTable (adrChanges, nameOf (adrObject^))); adrTable^.what = string.popFileFromAddress (adrObject); adrTable^.when = now; adrTable^.who = userName; wp.newTextObject (description, @adrTable^.why); break}}}; Çbundle // testing Çlocal (adr = table.getCursorAddress ()) ÇcheckInCallback (adr, "Bull Mancuso", clock.now (), "No information available at this time.") \ No newline at end of file |
|
From: creedon <icr...@us...> - 2005-12-22 19:25:35
|
Update of /cvsroot/frontierkernel/odbs/frontierRoot/system/verbs/builtins/date In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv561 Added Files: daysRemainingInYear Log Message: created --- NEW FILE: daysRemainingInYear --- (This appears to be a binary file; contents omitted.) |
|
From: creedon <icr...@us...> - 2005-12-22 19:14:30
|
Update of /cvsroot/frontierkernel/odbs/frontierRoot/system/verbs/builtins/date In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30019 Added Files: dayOfYear Log Message: created, saw this documented in Doc Server but the open source Frontier.root didn't contain verb, so I whipped one up --- NEW FILE: dayOfYear --- (This appears to be a binary file; contents omitted.) |
|
From: creedon <icr...@us...> - 2005-12-22 18:44:41
|
Update of /cvsroot/frontierkernel/odbs/frontierRoot/system/menus In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21216 Modified Files: menubar Log Message: updated load osax command to work with aeTerminology suite Index: menubar =================================================================== RCS file: /cvsroot/frontierkernel/odbs/frontierRoot/system/menus/menubar,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** menubar 30 Sep 2005 15:45:22 -0000 1.4 --- menubar 22 Dec 2005 18:44:32 -0000 1.5 *************** *** 1,3 **** FrontierVcsFile:1:mbar:system.menus.menubar ! AAEFAQAACeAAAQAAAAAAAAAAAAAAKwADA/0E/QAAAAAAAAZHZW5ldmEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgArAAMD/QT9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAN0AAAFhAAAAgAADwZHZW5ldmEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAApJOSS79fNwUAAPVEAAAAsQC2AS4ByUxBTkT///////8AAAAAAABtYWMgAAAAAAAAAAAAAAAARGF0YWJhc2UNCUp1bXAuLi4NCVNlYXJjaC4uLg0JLQ0JPSBzeXN0ZW0ubWVudXMuc2NyaXB0cy51cGRhdGVNZW51SXRlbSAoKQ0JLQ0JQWRkIHRvIHVzZXIuZGF0YWJhc2VzLi4uDQktDQk9ICJCYWNrdXAgIiArIGZpbGUuZmlsZUZyb21QYXRoIChGcm9udGllci5nZXRGaWxlcGF0aCAoKSkgKyAiLi4uIg0JRXhwb3J0Li4uDQlCYXRjaCBFeHBvcnQNCQlPcGVuIExpc3QNCQlPcGVuIFRhYmxlDQkJLQ0JCUV4cG9ydCBmcm9tIExpc3QuLi4NCQlJbXBvcnQgZnJvbSBGb2xkZXIuLi4NCQktDQkJTmlnaHRseSBFeHBvcnQuLi4NCS0NCUFwcGxlU2NyaXB0cw0JCUxvYWQgQXBwbGVTY3JpcHQuLi4NCQlMb2FkIGEgRm9sZGVyLi4uDQkJTG9hZCBhbiBPU0FYLi4uDQktDQlFZGl0IHdpdGggQXBwDU9wZXJhdGlvbnMNCVF1aWNrIFNjcmlwdA0JLQ0JV2ViDQkJV2ViIFNlcnZlcg0JCQk9IHN5c3RlbS5tZW51cy5zY3JpcHRzLnNlcnZlck1lbnVJdGVtICgpDQkJCVNldCBQb3J0Li4uDQkJLQ0JCVByZXZpZXcgUGFnZQ0JCS0NCQlQdWJsaXNoIFBhZ2UNCQlQdWJsaXNoIFRhYmxlLi4uDQkJLQ0JCU5ldyBXZWJzaXRlLi4uDQkJSW1wb3J0IFdlYnNpdGUuLi4NCQktDQkJTmV3IFBhZ2UuLi4NCQktDQkJTG9hZCBJbWFnZSBGaWxlLi4uDQkJQnVpbGQgR2xvc3NhcnkuLi4NCQlCdWlsZCBOZXh0UHJldiBMaXN0Li4uDQkJQ29weSBVUkwNCQlWaWV3IFBhZ2UgaW4gRmluZGVyDQkJLQ0JCUNoYW5nZWQgUGFnZXMNCQkJUHVibGlzaCBBbGwuLi4NCQkJQWRkIFNlbGVjdGVkIENlbGwuLi4NCQkJT3BlbiBMaXN0DQkJCUNsZWFyIExpc3QuLi4NCQkJLQ0JCQk9IHN5c3RlbS5tZW51cy5zY3JpcHRzLmFkZFRvQ2hhbmdlZFBhZ2VzTWVudUl0ZW0gKCkNCS0NCVRvb2xzDQlTdWl0ZXMNCVNjaGVkdWxlcg0JCUFkZCBhbiBFdmVyeSBNaW51dGUgVGFzay4uLg0JCUFkZCBhbiBIb3VybHkgVGFzay4uLg0JCUFkZCBhbiBPdmVybmlnaHQgVGFzay4uLg0JCS0NCQk9IGlmIHVzZXIuc2NoZWR1bGVyLnByZWZzLnJ1blRocmVhZHMgeyJEaXNhYmxlIFRocmVhZHMifSBlbHNlIHsiRW5hYmxlIFRocmVhZHMifQ0JCS0NCQlPcGVuIHVzZXIuc2NoZWR1bGVyIFRhYmxlDQk9IHN5c3RlbS5tZW51cy5zY3JpcHRzLmFnZW50c01lbnVJdGVtICgpDQlVbmxvY2sgU2VtYXBob3Jlcy4uLg0JLQ0JUnVuIFNlbGVjdGlvbg0JLQ0JPSBsb2NhbCAocyA9ICIgQ29tcGFjdCBNb2RhbCBNZW51cyIpOyBpZiB1c2VyLnByZWZzLmZsQ29tcGFjdE1vZGFsTWVudXMgeyJEaXNhYmxlIiArIHN9IGVsc2UgeyJFbmFibGUiICsgc30NCT0gbG9jYWwgKHMgPSAiIFJlcGxhY2UgRGlhbG9nIEV4cGVydCBNb2RlIik7IGlmIHVzZXIucHJlZnMuZmxSZXBsYWNlRGlhbG9nRXhwZXJ0TW9kZSB7IkRpc2FibGUiICsgc30gZWxzZSB7IkVuYWJsZSIgKyBzfQ2AAAAAAAAAAAAAAApKAAAAAAAFs1MkAAAAAAAKAAAAAAAABbNTKAAAAAAAAAAAAAAACgAAAAAAAAWzUywAAAAAAAAAAAAAAAoAAAAAAAABf9N0AAAAAAAAAAAAAAAKAAAAAAAAAX/TgAAAAAAACjMAAAAAAAF/04QAAAAAAAAAAAAAAAoAAAAAAAABf9OQAAAAAAAK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YWwgKGZvbGRlciA9IHVzZXIuYmF0Y2hFeHBvcnRlci5mb2xkZXIpDWlmIGZpbGUuZ2V0Rm9sZGVyRGlhbG9nICgiSW1wb3J0IG9iamVjdHMgZnJvbToiLCBAZm9sZGVyKQ0JYmF0Y2hFeHBvcnRlci5iYXRjaEltcG9ydCAoZm9sZGVyKQ2AAAAAAACAAAAAAACAAAAAAACAAAAAAAAAAgAAACQAAADnAAQCAAAPBkdlbmV2YQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAACvGiJwvdphxQAAAF4BAAEmAT8B7gLATEFORP///////wAAAAAAAG1hYyAAAAAAAAAAAAAAAABpZiBkaWFsb2cuY29uZmlybSAoIkRvIGEgQmF0Y2ggRXhwb3J0IGV2ZXJ5IG5pZ2h0PyIpDQlsb2NhbCAoYWRyc2NyaXB0ID0gQHVzZXIuc2NoZWR1bGVyLm92ZXJuaWdodC5iYXRjaEV4cG9ydCkNCW5ldyAoc2NyaXB0dHlwZSwgYWRyc2NyaXB0KQ0JdGFyZ2V0LnNldCAoYWRyc2NyaXB0KQ0Jb3Auc2V0TGluZVRleHQgKCJiYXRjaEV4cG9ydGVyLmJhdGNoRXhwb3J0ICgpIikNCXRhcmdldC5jbGVhciAoKQ2AAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAAAAAgAAACQAAAEEAAACAAAPBkdlbmV2YQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAACt2Zs1vc4NpgAAAFsAAAEmAT8B7gLATEFORP///////wAAAAAAAG1hYyAAAAAAAAAAAAAAAABhcHBsZXNjcmlwdHMuaW5pdCAoKQ1pZiBmaWxlLmdldEZpbGVEaWFsb2cgKCJDaG9vc2UgYSBTY3JpcHQgRWRpdG9yLWNvbXBhdGlibGUgZmlsZS4iLCBAdXNlci5hcHBsZXNjcmlwdHMucHJlZnMubGFzdEZpbGVMb2FkZWQsIDApDQlsb2NhbCAoYWRyKQ0JYWRyID0gYXBwbGVzY3JpcHRzLmxvYWRGaWxlICh1c2VyLmFwcGxlc2NyaXB0cy5wcmVmcy5sYXN0RmlsZUxvYWRlZCwgQHdvcmtzcGFjZSwgZmFsc2UpDQlp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DwZHZW5ldmEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAsXgRLb28/dwAAAA9AAABJgE/Ae4CwExBTkT///////8AAAAAAABtYWMgAAAAAAAAAAAAAAAAbG9jYWwgKGFkclRhYmxlID0gQHVzZXIuaW5ldGQuY29uZmlnLmh0dHApDWlmIGluZXRkLmlzRGFlbW9uUnVubmluZyAoYWRyVGFibGUpDQlpbmV0ZC5zdG9wT25lIChhZHJUYWJsZSkNCWFkclRhYmxlXi5zdGFydHVwID0gZmFsc2UNCXRyeQ0JCWluZXRkLnN0b3BPbmUgKEB1c2VyLmluZXRkLmNvbmZpZy5odHRwMikNCQl1c2VyLmluZXRkLmNvbmZpZy5odHRwMi5zdGFydHVwID0gZmFsc2UNZWxzZQ0JYWRyVGFibGVeLnN0YXJ0dXAgPSB0cnVlDQlpbmV0ZC5zdGFydE9uZSAoYWRyVGFibGUpDQl0cnkNCQl1c2VyLmluZXRkLmNvbmZpZy5odHRwMi5zdGFydHVwID0gdHJ1ZQ0JCWluZXRkLnN0YXJ0T25lIChAdXNlci5pbmV0ZC5jb25maWcuaHR0cDIpDYAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAAACAAAAPAAAAWkAAAIAAA8GR2VuZXZhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAMAAAAAAAAAALF4EMu+3O7BAAAAPAAAASYBPwHuAsBMQU5E////////AAAAAAAAbWFjIAAAAAAAAAAAAAAAAGxvY2FsIChvbGRwb3J0ID0gdXNlci5pbmV0ZC5jb25maWcuaHR0cC5wb3J0KQ1sb2NhbCAocG9ydCA9IG9sZHBvcnQpDWxvY2FsIChpc1J1bm5pbmcgPSBpbmV0ZC5pc0RhZW1vblJ1bm5pbmcgKEB1c2VyLmluZXRkLmNvbmZpZy5odHRwKSkNaWYgZGlhbG9nLmdldEludCAoIlBvcnQgZm9yIGh0dHAgc2VydmVyOiIsIEBwb3J0KQ0JaWYgcG9ydCAhPSBvbGRwb3J0DQkJaWYgaXNSdW5uaW5nDQkJCWlu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 \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:mbar:system.menus.menubar ! AAEFAQAACeAAAQAAAAAAAAAAAAAAKwADA/0E/QAAAAAAAAZHZW5ldmEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgArAAMD/QT9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAN0AAAFhAAAAgAADwZHZW5ldmEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAApJOSS7+jYkQAASaoAAAAsQC2AS4ByUxBTkT///////8AAAAAAABtYWMgAAAAAAAAAAAAAAAARGF0YWJhc2UNCUp1bXAuLi4NCVNlYXJjaC4uLg0JLQ0JPSBzeXN0ZW0ubWVudXMuc2NyaXB0cy51cGRhdGVNZW51SXRlbSAoKQ0JLQ0JQWRkIHRvIHVzZXIuZGF0YWJhc2VzLi4uDQktDQk9ICJCYWNrdXAgIiArIGZpbGUuZmlsZUZyb21QYXRoIChGcm9udGllci5nZXRGaWxlcGF0aCAoKSkgKyAiLi4uIg0JRXhwb3J0Li4uDQlCYXRjaCBFeHBvcnQNCQlPcGVuIExpc3QNCQlPcGVuIFRhYmxlDQkJLQ0JCUV4cG9ydCBmcm9tIExpc3QuLi4NCQlJbXBvcnQgZnJvbSBGb2xkZXIuLi4NCQktDQkJTmlnaHRseSBFeHBvcnQuLi4NCS0NCUFwcGxlU2NyaXB0cw0JCUxvYWQgQXBwbGVTY3JpcHQuLi4NCQlMb2FkIGEgRm9sZGVyLi4uDQkJTG9hZCBhbiBvc2F4Li4uDQktDQlFZGl0IHdpdGggQXBwDU9wZXJhdGlvbnMNCVF1aWNrIFNjcmlwdA0JLQ0JV2ViDQkJV2ViIFNlcnZlcg0JCQk9IHN5c3RlbS5tZW51cy5zY3JpcHRzLnNlcnZlck1lbnVJdGVtICgpDQkJCVNldCBQb3J0Li4uDQkJLQ0JCVByZXZpZXcgUGFnZQ0JCS0NCQlQdWJsaXNoIFBhZ2UNCQlQdWJsaXNoIFRhYmxlLi4uDQkJLQ0JCU5ldyBXZWJzaXRlLi4uDQkJSW1wb3J0IFdlYnNpdGUuLi4NCQktDQkJTmV3IFBhZ2UuLi4NCQktDQkJTG9hZCBJbWFnZSBGaWxlLi4uDQkJQnVpbGQgR2xvc3NhcnkuLi4NCQlCdWlsZCBOZXh0UHJldiBMaXN0Li4uDQkJQ29weSBVUkwNCQlWaWV3IFBhZ2UgaW4gRmluZGVyDQkJLQ0JCUNoYW5nZWQgUGFnZXMNCQkJUHVibGlzaCBBbGwuLi4NCQkJQWRkIFNlbGVjdGVkIENlbGwuLi4NCQkJT3BlbiBMaXN0DQkJCUNsZWFyIExpc3QuLi4NCQkJLQ0JCQk9IHN5c3RlbS5tZW51cy5zY3JpcHRzLmFkZFRvQ2hhbmdlZFBhZ2VzTWVudUl0ZW0gKCkNCS0NCVRvb2xzDQlTdWl0ZXMNCVNjaGVkdWxlcg0JCUFkZCBhbiBFdmVyeSBNaW51dGUgVGFzay4uLg0JCUFkZCBhbiBIb3VybHkgVGFzay4uLg0JCUFkZCBhbiBPdmVybmlnaHQgVGFzay4uLg0JCS0NCQk9IGlmIHVzZXIuc2NoZWR1bGVyLnByZWZzLnJ1blRocmVhZHMgeyJEaXNhYmxlIFRocmVhZHMifSBlbHNlIHsiRW5hYmxlIFRocmVhZHMifQ0JCS0NCQlPcGVuIHVzZXIuc2NoZWR1bGVyIFRhYmxlDQk9IHN5c3RlbS5tZW51cy5zY3JpcHRzLmFnZW50c01lbnVJdGVtICgpDQlVbmxvY2sgU2VtYXBob3Jlcy4uLg0JLQ0JUnVuIFNlbGVjdGlvbg0JLQ0JPSBsb2NhbCAocyA9ICIgQ29tcGFjdCBNb2RhbCBNZW51cyIpOyBpZiB1c2VyLnByZWZzLmZsQ29tcGFjdE1vZGFsTWVudXMgeyJEaXNhYmxlIiArIHN9IGVsc2UgeyJFbmFibGUiICsgc30NCT0gbG9jYWwgKHMgPSAiIFJlcGxhY2UgRGlhbG9nIEV4cGVydCBNb2RlIik7IGlmIHVzZXIucHJlZnMuZmxSZXBsYWNlRGlhbG9nRXhwZXJ0TW9kZSB7IkRpc2FibGUiICsgc30gZWxzZSB7IkVuYWJsZSIgKyBzfQ2AAAAAAAAAAAAAAApKAAAAAAABRlkYAAAAAAAKAAAAAAAAAUZZHAAAAAAAAAAAAAAACgAAAAAAAAFGWSAAAAAAAAAAAAAAAAoAAAAAAAABRlksAAAAAAAAAAAAAAAKAAAAAAAAAUZZOAAAAAAACjMAAAAAAAFGWUQAAAAAAAAAAAAAAAoAAAAAAAABRllQAAAAAAAKAAAAAAAAAUZZfAAAAAAAAAAAAAAACgAAAAAAAAFGWYgAAAAAAAoAAAAAAAABRlmcAAAAAAAAAAAAAAAKAAAAAAAAAUZZsAAAAAAAAAAAAAAAAAAAAAAACgAAAAAAAAFGWcwAAAAAAAoAAAAAAAABRlnwAAAAAAAKAAAAAAAAAUZaJAAAAAAAAAAAAAAACkUAAAAAAAFGWliAAAAAAAAAAAAAAAo7AAAAAAABRlqEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAAAAAUZbzAAAAAAACgAAAAAAAAFGXEAAAAAAAAAAAAAAAAoAAAAAAAABRlxMAAAAAAAAAAAAAAAKJwAAAAAAAUZcuAAAAAAACgAAAAAAAAFGXQwAAAAAAAAAAAAAAAoAAAAAAAABRl0YAAAAAAAKAAAAAAAAAUZdJAAAAAAAAAAAAAAACgAAAAAAAAFGXTAAAAAAAAAAAAAAAAoAAAAAAAABRl08AAAAAAAKAAAAAAAAAUZdSAAAAAAACgAAAAAAAAFGXVQAAAAAAAoAAAAAAAABRl1gAAAAAAAKAAAAAAAAAUZdbAAAAAAAAAAAAAAAAAAAAAAACgAAAAAAAAFGXbgAAAAAAAoAAAAAAAABRl3cAAAAAAAKAAAAAAAAAUZeSAAAAAAACgAAAAAAAAFGXoQAAAAAAAAAAAAAAAoAAAAAAAABRl8gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAAAAAUZfLAAAAAAACgAAAAAAAAEvKmwAAAAAAAoAAAAAAAABLywsAAAAAAAAAAAAAAAKAAAAAAAAAS8sMAAAAAAAAAAAAAAACgAAAAAAAAEvLHwAAAAAAAoAAAAAAAABLyzQAAAAAAAKAAAAAAAAAS8s5AAAAAAAAAAAAAAACi8AAAAAAAEvLPAAAAAAAAAAAAAAAAoAAAAAAAABLy00AAAAAAAKAAAAAAAAAS8tQAACAAAABgAAADoAAAIAAA8GR2VuZXZhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAKUNIyK9vRPOAAAAhwAAAJYAfwFeAgBMQU5E////////AAAAAAAAbWFjIAAAAAAAAAAAAAAAAHRocmVhZC5jYWxsU2NyaXB0IChAc3lzdGVtLm1lbnVzLnNjcmlwdHMuanVtcENvbW1hbmQsIHt9KQ2AAAAAAAAAAgAAAAYAAAAhAAAAAAAPBkdlbmV2YQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAACwnB/zvclI0gAAAG4AAADxARsBuQKcTEFORP///////wAAAAAAAG1hYyAAAAAAAAAAAAAAAABzeXN0ZW0ubWVudXMuc2NyaXB0cy5kYlNlYXJjaCAoKQ2AAAAAAAAAAgAAAAYAAAAjAAACAAAPBkdlbmV2YQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAACy9eUDvc4L8AAAADEAAAEmAT8B7gLATEFORP///////wAAAAAAAG1hYyAAAAAAAAAAAAAAAABzeXN0ZW0ubWVudXMuc2NyaXB0cy51cGRhdGVSb290ICgpDYAAAAAAAAACAAAABgAAACsAAAAAAA8GR2VuZXZhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAALNwF0i9yjPrAAAAOwAAATcBeAH/AvlMQU5E////////AAAAAAAAbWFjIAAAAAAAAAAAAAAAAHN5c3RlbS5tZW51cy5zY3JpcHRzLmFkZFRvVXNlckRhdGFiYXNlcyAoKQ2AAAAAAAAAAgAAAB4AAADbAAACAAAPBkdlbmV2YQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAACkPyu/vdpaBwAAAKEAAACxALYBLgHJTEFORP///////wAAAAAAAG1hYyAAAAAAAAAAAAAAAABpZiBkaWFsb2cuY29uZmlybSAoIkNyZWF0ZSBhIGJhY2t1cCBvZiAiICsgZmlsZS5maWxlRnJvbVBhdGggKEZyb250aWVyLmdldEZpbGVwYXRoICgpKSArICI/IikNCWxvY2FsIChmKQ0JZiA9IGJhY2t1cHMuYmFja3Vwcm9vdCAoKQ0JaWYgZiAhPSAiIg0JCWRpYWxvZy5hbGVydCAoIlwiIiArIGYgKyAiXCIgaXMgIiArIHN0cmluZy5rQnl0ZXMgKGZpbGUuc2l6ZSAoZikpICsgIi4iKQ2AAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAAAAAgAAAAYAAAAaAAACAAAPBkdlbmV2YQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAACuZGG2vclECAAAAIUBAAFZAX8CIQMATEFORP///////wAAAAAAAG1hYyAAAAAAAAAAAAAAAABleHBvcnQuY29tbWFuZHMuZXhwb3J0ICgpDYAAAAAAAAACAAAADAAAADYAAAAAAA8GR2VuZXZhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAALCp+Jm93IhFAAAAWwEAAPEBGwG5ApxMQU5E////////AAAAAAAAbWFjIAAAAAAAAAAAAAAAAGJhdGNoRXhwb3J0ZXIuaW5pdCAoKQ1lZGl0IChAdXNlci5iYXRjaEV4cG9ydGVyLmxpc3QpDYAAAAAAAIAAAAAAAAACAAAADAAAADEAAAAAAA8GR2VuZXZhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAALCAonC92mA0AAAAXAAAAPEBGwG5ApxMQU5E////////AAAAAAAAbWFjIAAAAAAAAAAAAAAAAGJhdGNoRXhwb3J0ZXIuaW5pdCAoKQ1lZGl0IChAdXNlci5iYXRjaEV4cG9ydGVyKQ2AAAAAAACAAAAAAAAAAgAAABIAAAB4AAACAAAPBkdlbmV2YQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAACvGfNavd5HWgAAAGEAAAEmAT8B7gLATEFORP///////wAAAAAAAG1hYyAAAAAAAAAAAAAAAABpZiBkaWFsb2cuY29uZmlybSAoIkV4cG9ydCB0aGUgaXRlbXMgaW4gdGhlIEJhdGNoIEV4cG9ydGVyIGxpc3Q/IikNCWJhdGNoRXhwb3J0ZXIuaW5pdCAoKQ0JYmF0Y2hFeHBvcnRlci5iYXRjaEV4cG9ydCAoKQ2AAAAAAACAAAAAAACAAAAAAAAAAgAAABgAAACfAAMCAAAPBkdlbmV2YQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAACvGhaQvdpg6QAAAGUBAAEmAT8B7gLATEFORP///////wAAAAAAAG1hYyAAAAAAAAAAAAAAAABiYXRjaEV4cG9ydGVyLmluaXQgKCkNbG9jYWwgKGZvbGRlciA9IHVzZXIuYmF0Y2hFeHBvcnRlci5mb2xkZXIpDWlmIGZpbGUuZ2V0Rm9sZGVyRGlhbG9nICgiSW1wb3J0IG9iamVjdHMgZnJvbToiLCBAZm9sZGVyKQ0JYmF0Y2hFeHBvcnRlci5iYXRjaEltcG9ydCAoZm9sZGVyKQ2AAAAAAACAAAAAAACAAAAAAACAAAAAAAAAAgAAACQAAADnAAQCAAAPBkdlbmV2YQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAACvGiJwvdphxQAAAF4BAAEmAT8B7gLATEFORP///////wAAAAAAAG1hYyAAAAAAAAAAAAAAAABpZiBkaWFsb2cuY29uZmlybSAoIkRvIGEgQmF0Y2ggRXhwb3J0IGV2ZXJ5IG5pZ2h0PyIpDQlsb2NhbCAoYWRyc2NyaXB0ID0gQHVzZXIuc2NoZWR1bGVyLm92ZXJuaWdodC5iYXRjaEV4cG9ydCkNCW5ldyAoc2NyaXB0dHlwZSwgYWRyc2NyaXB0KQ0JdGFyZ2V0LnNldCAoYWRyc2NyaXB0KQ0Jb3Auc2V0TGluZVRleHQgKCJiYXRjaEV4cG9ydGVyLmJhdGNoRXhwb3J0ICgpIikNCXRhcmdldC5jbGVhciAoKQ2AAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAAAAAgAAACQAAAEEAAACAAAPBkdlbmV2YQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAACt2Zs1vc4NpgAAAFsAAAEmAT8B7gLATEFORP///////wAAAAAAAG1hYyAAAAAAAAAAAAAAAABhcHBsZXNjcmlwdHMuaW5pdCAoKQ1pZiBmaWxlLmdldEZpbGVEaWFsb2cgKCJDaG9vc2UgYSBTY3JpcHQgRWRpdG9yLWNvbXBhdGlibGUgZmlsZS4iLCBAdXNlci5hcHBsZXNjcmlwdHMucHJlZnMubGFzdEZpbGVMb2FkZWQsIDApDQlsb2NhbCAoYWRyKQ0JYWRyID0gYXBwbGVzY3JpcHRzLmxvYWRGaWxlICh1c2VyLmFwcGxlc2NyaXB0cy5wcmVmcy5sYXN0RmlsZUxvYWRlZCwgQHdvcmtzcGFjZSwgZmFsc2UpDQlp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b250aWVyJ3MgbWFpbiB3aW5kb3cuIikNCWFkcm9iamVjdCA9IGFkZHJlc3MgKHdmcm9udCkNCWlmIHR5cGVPZiAoYWRyb2JqZWN0XikgPT0gdGFibGV0eXBlDQkJYWRyb2JqZWN0ID0gdGFibGUuZ2V0Y3Vyc29yICgpDWVsc2UNCXNjcmlwdEVycm9yICgiQ2FuJ3QgZWRpdCB0aGUgY3VycmVudCBvYmplY3QgZXh0ZXJuYWxseS4iKQ0Nb2RiRWRpdG9yLmVkaXQgKGFkcm9iamVjdCkNgAAAAAAAgAAAAAAAhAAAAAAAAAAAAAAAgAAAAAAAhAAAAAAAAAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAAAIAAAAGAAAAFgAAAgAADwZHZW5ldmEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAo8nKk73OEFEAAACAAQAAsQC2AS4ByUxBTkT///////8AAAAAAABtYWMgAAAAAAAAAAAAAAAAd2luZG93LnF1aWNrU2NyaXB0ICgpDYAAAAAAAAACAAAATgAAAXIAAAIAAA8GR2VuZXZhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAALF4ES29vP3cAAAAPQAAASYBPwHuAsBMQU5E////////AAAAAAAAbWFjIAAAAAAAAAAAAAAAAGxvY2FsIChhZHJUYWJsZSA9IEB1c2VyLmluZXRkLmNvbmZpZy5odHRwKQ1pZiBpbmV0ZC5pc0RhZW1vblJ1bm5pbmcgKGFkclRhYmxlKQ0JaW5ldGQuc3RvcE9uZSAoYWRyVGFibGUpDQlhZHJUYWJsZV4uc3RhcnR1cCA9IGZhbHNlDQl0cnkNCQlpbmV0ZC5zdG9wT25lIChAdXNlci5pbmV0ZC5jb25maWcuaHR0cDIpDQkJdXNlci5pbmV0ZC5jb25maWcuaHR0cDIuc3RhcnR1cCA9IGZhbHNlDWVsc2UNCWFkclRhYmxlXi5zdGFydHVwID0gdHJ1ZQ0JaW5ldGQuc3RhcnRPbmUgKGFkclRhYmxlKQ0JdHJ5DQkJdXNlci5pbmV0ZC5jb25maWcuaHR0cDIuc3RhcnR1cCA9IHRydWUNCQlpbmV0ZC5zdGFydE9uZSAoQHVzZXIuaW5ldGQuY29uZmlnLmh0dHAyKQ2AAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAAAAAgAAADwAAAFpAAACAAAPBkdlbmV2YQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAADAAAAAAAAAACxeBDLvtzuwQAAADwAAAEmAT8B7gLATEFORP///////wAAAAAAAG1hYyAAAAAAAAAAAAAAAABsb2NhbCAob2xkcG9ydCA9IHVzZXIuaW5ldGQuY29uZmlnLmh0dHAucG9ydCkNbG9jYWwgKHBvcnQgPSBvbGRwb3J0KQ1sb2NhbCAoaXNSdW5uaW5nID0gaW5ldGQuaXNEYWVtb25SdW5uaW5nIChAdXNlci5pbmV0ZC5jb25maWcuaHR0cCkpDWlmIGRpYWxvZy5nZXRJbnQgKCJQb3J0IGZvciBodHRwIHNlcnZlcjoiLCBAcG9ydCkNCWlmIHBvcnQgIT0gb2xkcG9ydA0JCWlmIGlzUnVubmluZw0JCQlpbmV0ZC5zdG9wT25lIChAdXNlci5pbmV0ZC5jb25maWcuaHR0cCkNCQl1c2VyLmluZXRkLmNvbmZpZy5odHRwLnBvcnQgPSBwb3J0DQkJaWYgaXNSdW5uaW5nDQkJCWluZXRkLnN0YXJ0T25lIChAdXNlci5pbmV0ZC5jb25maWcuaHR0cCkNgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAAAIAAAAGAAAAHQAAAAAADwZHZW5ldmEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAsKV7ML3ZD1QAAABlAQAA8QEbAbkCnExBTkT///////8AAAAAAABtYWMgAAAAAAAAAAAAAAAAaHRtbC5jb21tYW5kcy5wcmV2aWV3UGFnZSAoKQ2AAAAAAAAAAgAAAAYAAAAlAAACAAAPBkdlbmV2YQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAACtftLtv2cwtwAAAKYBAAEmAT8B7gLATEFORP///////wAAAAAAAG1hYyAAAAAAAAAAAAAAAABodG1sLmNvbW1hbmRzLnJlbGVhc2VSZW5kZXJlZFBhZ2UgKCkNgAAAAAAAAAIAAAAGAAAAHgAAAgAADwVBcmlhbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAGwAAArnV0drCQr0oAAACAAAAA3gDfAaYCYExBTkT///////8AAAAAAABtYWMgAAAAAAAAAAAAAAAAaHRtbC5jb21tYW5kcy5yZWxlYXNlVGFibGUgKCkNgAAAAAAAAAIAAAAGAAAAGQAAAgAADwZHZW5ldmEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAArsLmy73XYAQAAAB/AAABJgE/Ae4CwExBTkT///////8AAAAAAABtYWMgAAAAAAAAAAAAAAAAaHRtbC5jb21tYW5kcy5uZXdTaXRlICgpDYAAAAAAAAACAAAABgAAAB8AAAIAAA8GR2VuZXZhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAK7q7ca92UBaAAAAewAAASYBPwHuAsBMQU5E////////AAAAAAAAbWFjIAAAAAAAAAAAAAAAAGh0bWwuY29tbWFuZHMuaW1wb3J0V2Vic2l0ZSAoKQ2AAAAAAAAAAgAAAAYAAAAZAAACAAAPBkdlbmV2YQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAZUAACxf5CDsYH2CgAAADgAAAEmAT8B7gLATEFORP///////wAAAAAAAG1hYyAAAAAAAAAAAAAAAABodG1sLmNvbW1hbmRzLm5ld1BhZ2UgKCkNgAAAAAAAAAIAAAAGAAAAHwAAAgAADwZHZW5ldmEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAArtH78r3KSpgAAAB+AAABJgE/Ae4CwExBTkT///////8AAAAAAABtYWMgAAAAAAAAAAAAAAAAaHRtbC5jb21tYW5kcy5sb2FkSW1hZ2VGaWxlICgpDYAAAAAAAAACAAAABgAAACUAAAAAAA8GR2VuZXZhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAALCXU2C92UYnAAAAcQEAAPEBGwG5ApxMQU5E////////AAAAAAAAbWFjIAAAAAAAAAAAAAAAAGh0bWwuYnVpbGRHbG9zc2FyeSAoZmxpbnRlcmFjdDp0cnVlKQ2AAAAAAAAAAgAAADYAAAHPAAACAAAPBkdlbmV2YQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAACu2qRKvdlGrwAAAHoAAAEmAT8B7gLATEFORP///////wAAAAAAAG1hYyAAAAAAAAAAAAAAAABpZiBkaWFsb2cuYXNrICgiQnVpbGQgaW5pdGlhbCBvdXRsaW5lIGZvciB3aGljaCBzaXRlPyIsIEB1c2VyLmh0bWwucHJlZnMubGFzdHdlYnNpdGUpDQlsb2NhbCAoYWRyc2l0ZSA9IHVzZXIuaHRtbC5wcmVmcy5sYXN0d2Vic2l0ZSkNCWlmIG5vdCBkZWZpbmVkIChhZHJzaXRlXikNCQlpZiBub3QgZGVmaW5lZCAoKCJ3ZWJzaXRlcy4iICsgYWRyc2l0ZSleKQ0JCQlyZXR1cm4gKGRpYWxvZy5hbGVydCAoIkNhbid0IGJ1aWxkIHRoZSBOZXh0UHJldiBsaXN0IGJlY2F1c2UgXCIiICsgYWRyc2l0ZSArICJcIiBpc24ndCBkZWZpbmVkLiIpKQ0JCWFkcnNpdGUgPSAid2Vic2l0ZXMuIiArIGFkcnNpdGUNCWxvY2FsIChhZHJvdXRsaW5lID0gQGFkcnNpdGVeLlsiI25leHRQcmV2cyJdKQ0JaHRtbC5uZXh0UHJldi5idWlsZE91dGxpbmUgKGFkcnNpdGUsIGFkcm91dGxpbmUpDQl3aW5kb3cuem9vbSAoYWRyb3V0bGluZSkNgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAAAIAAAAYAAAAeQACAgAADwVBcmlhbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAGwAAArtLyGrDR6c0AAAB5AAABJgE/Ae4CwExBTkT///////8AAAAAAABtYWMgAAAAAAAAAAAAAAAAbG9jYWwgKGluZm8pDW5ldyAodGFibGV0eXBlLCBAaW5mbykNaHRtbC5idWlsZFBhZ2VUYWJsZSAodGFibGUuZ2V0Q3Vyc29yQWRkcmVzcyAoKSwgQGluZm8pDWNsaXBib2FyZC5wdXR2YWx1ZSAoaW5mby51cmwpDYAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAAACAAAATgAAAf8AAAIAAA8GR2VuZXZhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAK6zKAm92UesAAAARwAAASYBPwHuAsBMQU5E////////AAAAAAAAbWFjIAAAAAAAAAAAAAAAAGxvY2FsIChhZHJvYmplY3QgPSB0YWJsZS5nZXRjdXJzb3JhZGRyZXNzICgpKQ1sb2NhbCAobm9tYWQgPSBwYXJlbnRPZiAoYWRyb2JqZWN0XiksIHN1YmRpcnBhdGggPSAiIiwgcGF0aCkNbG9vcA0JbG9jYWwgKGFkcmZ0cHNpdGUgPSBAbm9tYWReLlsiI2Z0cHNpdGUiXSkNCWlmIGRlZmluZWQgKGFkcmZ0cHNpdGVeKQ0JCWlmIG5vdCBhZHJmdHBzaXRlXi5pc2xvY2FsDQkJCXNjcmlwdGVycm9yICgiVGhpcyBjb21tYW5kIHdvcmtzIG9ubHkgb24gbG9jYWwgd2Vic2l0ZXMuIikNCQlwYXRoID0gYWRyZnRwc2l0ZV4uZm9sZGVyICsgc3ViZGlycGF0aCArIG5hbWVvZiAoYWRyb2JqZWN0XikgKyBodG1sLmdldFBhZ2VQcmVmICgiZmlsZUV4dGVuc2lvbiIsIGFkcm9iamVjdCkNCQlicmVhaw0Jc3ViZGlycGF0aCA9IG5hbWVvZiAobm9tYWReKSArICI6IiArIHN1YmRpcnBhdGgNCW5vbWFkID0gcGFyZW50T2YgKG5vbWFkXikNZmluZGVyLnJldmVhbCAocGF0aCkNZmluZGVyLmJyaW5ndG9mcm9udCAoKQ2AAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAAAAAgAAACoAAAD5AAYCAAAPBkdlbmV2YQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAAAAAAAAAAbAAACu3+uEsNHvnQAAAH4AAAEmAT8B7gLATEFORP///////wAAAAAAAG1hYyAAAAAAAAAAAAAAAABlZGl0IChAdXNlci5odG1sLmNoYW5nZWRQYWdlcykNaWYgZGlhbG9nLmNvbmZpcm0gKCJQdWJsaXNoIGFsbCBpdGVtcyBpbiBDaGFuZ2VkIFBhZ2VzIGxpc3Q/IikNCWN0ID0gaHRtbC5idWlsZEZyb21PdXRsaW5lIChAdXNlci5odG1sLmNoYW5nZWRQYWdlcykNCWlmIGN0ID09IDANCQlkaWFsb2cubm90aWZ5ICgiTm8gcGFnZXMgd2VyZSBwdWJsaXNoZWQuIikNCWVsc2UNCQltc2cgKGN0ICsgIiBwYWdlcyB3ZXJlIHB1Ymxpc2hlZC4iKQ2AAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAAAAAgAAAHIAAAKlAAgAAAAPBUFyaWFsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAABAAEAAAbAAACwquUUsKrmGgAAAFwAAADxARsBuQKcTEFORP///////wAAAAAAAG1hYyAAAAAAAAAAAAAAAABsb2NhbCAoYWRyKQ1idW5kbGUgx2RldGVybWluZSB0aGUgb2JqZWN0IGFkciBvZiB0aGUgdGhpbmcgdG8gYmUgYWRkZWQNCW9uIGVycm9yICgpDQkJc2NyaXB0RXJyb3IgKCJDYW4ndCBhZGQgdG8gdGhlIENoYW5nZWQgUGFnZXMgbGlzdCBiZWNhdXNlIHRoZSBmcm9udCB3aW5kb3cgZG9lc24ndCBjb250YWluIGFuIGFkZHJlc3NhYmxlIG9iamVjdC4iKQ0JYWRyID0gd2luZG93LmZyb250bW9zdCAoKQ0JaWYgYWRyID09ICIiIMdubyB3aW5kb3cgb3Blbg0JCWVycm9yICgpDQlpZiBub3QgZGVmaW5lZCAoYWRyXikgx3dpbmRvdyBkb2Vzbid0IGNvbnRhaW4gYW4gYWRkcmVzc2FibGUgb2JqZWN0DQkJZXJyb3IgKCkNCWlmIHR5cGVPZiAoYWRyXikgPT0gdGFibGV0eXBlIMdmb3IgdGFibGVzLCBhZGQgdGhlIHNlbGVjdGVkIGl0ZW0NCQlhZHIgPSB0YWJsZS5nZXRDdXJzb3IgKCkNaWYgZGlhbG9nLmNvbmZpcm0gKCJBZGQgXCIiICsgYWRyICsgIlwiIHRvIHRoZSBDaGFuZ2VkIFBhZ2VzIGxpc3Q/IikNCXRhcmdldC5zZXQgKEB1c2VyLmh0bWwuY2hhbmdlZFBhZ2VzKQ0Jb3AuZmlyc3RTdW1taXQgKCkNCWlmIG5vdCBvcC5GaW5kTmV4dCAoYWRyKQ0JCWlmIG9wLmdldExpbmVUZXh0ICgpID09ICIiDQkJCW9wLnNldExpbmVUZXh0IChhZHIpDQkJZWxzZQ0JCQlvcC5pbnNlcnQgKGFkciwgdXApDYAAAAAAAIAAAAAAAIAAAAAAAAAAAAAAAIAAAAAAAIAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAAACAAAABgAAAB8AAAIAAA8FQXJpYWwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAABsAAAK7geDmwquS/AAAAegAAASYBPwHuAsBMQU5E////////AAAAAAAAbWFjIAAAAAAAAAAAAAAAAGVkaXQgKEB1c2VyLmh0bWwuY2hhbmdlZFBhZ2VzKQ2AAAAAAAAAAgAAAB4AAACZAAACAAAPBUFyaWFsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAbAAACu7Q4ssJw7fAAAAHkAAAEmAT8B7gLATEFORP///////wAAAAAAAG1hYyAAAAAAAAAAAAAAAABlZGl0IChAdXNlci5odG1sLmNoYW5nZWRQYWdlcykNaWYgZGlhbG9nLmNvbmZpcm0gKCJFbXB0eSB0aGUgbGlzdCBvZiBjaGFuZ2VkIHBhZ2VzPyIpDQl0YXJnZXQuc2V0IChAdXNlci5odG1sLmNoYW5nZWRQYWdlcykNCW9wLndpcGUgKCkNCXRhcmdldC5jbGVhciAoKQ2AAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAAAAAgAAACQAAAC9AAACAAAPBkdlbmV2YQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAZUAAC92ms7vdprsgAAAAkAAAEnAT8B7wLATEFORP///////wAAAAAAAG1hYyAAAAAAAAAAAAAAAABDaGFuZ2VzDQkxMi82LzA0OyA4OjAzOjU4IFBNIGJ5IFRBQw0JCWNyZWF0ZWQNaWYgbm90IChkZWZpbmVkICh1c2VyLmh0bWwucHJlZnMuYWRkVG9DaGFuZ2VkUGFnZXMpKQ0JaHRtbC5pbml0ICgpDXVzZXIuaHRtbC5wcmVmcy5hZGRUb0NoYW5nZWRQYWdlcyA9IG5vdCAodXNlci5odG1sLnByZWZzLmFkZFRvQ2hhbmdlZFBhZ2VzKQ2EAAAAAAAAAAAAAAAAAAAAAACAAAAAAACAAAAAAACAAAAAAAAAAgAAADYAAAFMAAMAAAAPBUFyaWFsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAAABAAAAAAZUAACy/6Swsv+kvwAAAC0AAAFbAUsCIwLMTEFORP///////wAAAAAAAG1hYyAAAAAAAAAAAAAAAABzY2hlZHVsZXIuaW5pdCAoKQ1sb2NhbCAoc2NyaXB0U3RyaW5nID0gInNwZWFrZXIuYmVlcCAoKSIsIGFkcnNjcmlwdCkNaWYgZGlhbG9nLmFzayAoIkVudGVyIHNjcmlwdCB0byBiZSBydW4gZXZlcnkgbWludXRlOiIsIEBzY3JpcHRTdHJpbmcpDQlhZHJzY3JpcHQgPSB0YWJsZS51bmlxdWVOYW1lICgic2NyaXB0IiwgQHVzZXIuc2NoZWR1bGVyLmV2ZXJ5TWludXRlLCAzKQ0JbmV3IChzY3JpcHRUeXBlLCBhZHJzY3JpcHQpDQl0YXJnZXQuc2V0IChhZHJzY3JpcHQpDQlvcC5zZXRMaW5lVGV4dCAoc2NyaXB0U3RyaW5nKQ0JdGFyZ2V0LmNsZWFyICgpDQllZGl0IChhZHJzY3JpcHQpDYAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAAACAAAANgAAAVEAAgIAAA8FQXJpYWwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAAAAAAAABlQAAKXqHPey/6SUAAAA2QAAAVkBfwIhAwBMQU5E////////AAAAAAAAbWFjIAAAAAAAAAAAAAAAAHNjaGVkdWxlci5pbml0ICgpDWxvY2FsIChzY3JpcHRTdHJpbmcgPSAic3BlYWtlci5iZWVwICgpIiwgYWRyc2NyaXB0KQ1pZiBkaWFsb2cuYXNrICgiRW50ZXIgc2NyaXB0IHRvIGJlIHJ1biBldmVyeSBob3VyIG9uIHRoZSBob3VyOiIsIEBzY3JpcHRTdHJpbmcpDQlhZHJzY3JpcHQgPSB0YWJsZS51bmlxdWVOYW1lICgic2NyaXB0IiwgQHVzZXIuc2NoZWR1bGVyLmhvdXJseSwgMykNCW5ldyAoc2NyaXB0VHlwZSwgYWRyc2NyaXB0KQ0JdGFyZ2V0LnNldCAoYWRyc2NyaXB0KQ0Jb3Auc2V0TGluZVRleHQgKHNjcmlwdFN0cmluZykNCXRhcmdldC5jbGVhciAoKQ0JZWRpdCAoYWRyc2NyaXB0KQ2AAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAAAAAgAAADYAAAFVAAACAAAPBUFyaWFsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAAABAAAAAAZUAACl6hz3sv+knwAAANsAAAFZAX8CIQMATEFORP///////wAAAAAAAG1hYyAAAAAAAAAAAAAAAABzY2hlZHVsZXIuaW5pdCAoKQ1sb2NhbCAoc2NyaXB0U3RyaW5nID0gInNwZWFrZXIuYmVlcCAoKSIsIGFkcnNjcmlwdCkNaWYgZGlhbG9nLmFzayAoIkVudGVyIHNjcmlwdCB0byBiZSBydW4gYXQgbWlkbmlnaHQgZXZlcnkgbmlnaHQ6IiwgQHNjcmlwdFN0cmluZykNCWFkcnNjcmlwdCA9IHRhYmxlLnVuaXF1ZU5hbWUgKCJzY3JpcHQiLCBAdXNlci5zY2hlZHVsZXIub3Zlcm5pZ2h0LCAzKQ0JbmV3IChzY3JpcHRUeXBlLCBhZHJzY3JpcHQpDQl0YXJnZXQuc2V0IChhZHJzY3JpcHQpDQlvcC5zZXRMaW5lVGV4dCAoc2NyaXB0U3RyaW5nKQ0JdGFyZ2V0LmNsZWFyICgpDQllZGl0IChhZHJzY3JpcHQpDYAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAAACAAAADAAAAGIAAAAAAA8GR2Vu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 \ No newline at end of file |
|
From: creedon <icr...@us...> - 2005-12-22 18:36:23
|
Update of /cvsroot/frontierkernel/odbs/frontierRoot/suites/webEditServer/rpcHandlers/webEdit In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18746 Modified Files: modernCheckIn checkIn Log Message: pop file from adrObject for user display Index: checkIn =================================================================== RCS file: /cvsroot/frontierkernel/odbs/frontierRoot/suites/webEditServer/rpcHandlers/webEdit/checkIn,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** checkIn 26 Mar 2005 19:41:17 -0000 1.1.1.1 --- checkIn 22 Dec 2005 18:36:12 -0000 1.2 *************** *** 1,3 **** FrontierVcsFile:1:scpt:suites.webEditServer.rpcHandlers.webEdit.checkIn ! on checkIn (userName, password, adrObject, data, objectType, note="") { Ç10/17/98; 11:55:19 AM by DW Çafter the object is stored, loop over the scripts in user.webEditServer.callbacks.checkIn Çthe scripts receive four parameters: Çadrobject -- the address of the object that was checked in Çusername -- the name of the user who checked it in Çnow -- the date/time of the change, every script gets exactly the same time Çdescription -- currently webedit doesn't have support for a description, so I left room for it local (adrPreCallback = @user.webEditServer.callbacks.preCheckIn); local (adrCallback = @user.webEditServer.callbacks.checkIn); local (now = clock.now ()); if not (people.authenticateUser (userName, password, "WebEdit")) { scriptError ("Can't check in " + adrObject + " because an invalid username or password was supplied.")}; adrObject = webEditServer.fixGuestDbAdr (adrObject); ÇMake sure the object is checked out by this user, if the object already exists. if defined (adrObject^) { if not (custody.isCheckedOutByUser (adrObject, userName)) { return ("Can't check in " + adrObject + " because " + userName + " has not checked it out.")}}; data = fatPages.decode (@data); setBinaryType (@data, string4 (objectType)); unpack (@data, @data); webEditServer.callbackLoop (adrPreCallback, adrObject, userName, now, ""); custody.checkIn (userName, password, string (address (adrObject))); table.assign (address (adrObject), data); webEditServer.callbackLoop (adrCallback, adrObject, userName, now, note); ÇAdd to the imported objects log. export.addToLog (adrObject, notes:"From " + username); filemenu.saveMyRoot (adrobject); return (adrObject + " has been checked in.")} \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:scpt:suites.webEditServer.rpcHandlers.webEdit.checkIn ! on checkIn (userName, password, adrObject, data, objectType, note="") { ÇChanges Ç12/22/05; 9:23:26 AM by TAC Çpop file from adrObject for user display Ç10/17/98; 11:55:19 AM by DW Çafter the object is stored, loop over the scripts in user.webEditServer.callbacks.checkIn Çthe scripts receive four parameters: ÇadrObject -- the address of the object that was checked in Çusername -- the name of the user who checked it in Çnow -- the date/time of the change, every script gets exactly the same time Çdescription -- currently webedit doesn't have support for a description, so I left room for it local (adrPreCallback = @user.webEditServer.callbacks.preCheckIn); local (adrCallback = @user.webEditServer.callbacks.checkIn); local (now = clock.now ()); if not (people.authenticateUser (userName, password, "WebEdit")) { scriptError ("Can't check in " + string.popFileFromAddress (adrObject) + " because an invalid username or password was supplied.")}; adrObject = webEditServer.fixGuestDbAdr (adrObject); ÇMake sure the object is checked out by this user, if the object already exists. if defined (adrObject^) { if not (custody.isCheckedOutByUser (adrObject, userName)) { return ("Can't check in " + string.popFileFromAddress (adrObject) + " because " + userName + " has not checked it out.")}}; data = fatPages.decode (@data); setBinaryType (@data, string4 (objectType)); unpack (@data, @data); webEditServer.callbackLoop (adrPreCallback, adrObject, userName, now, ""); custody.checkIn (userName, password, string (address (adrObject))); table.assign (address (adrObject), data); webEditServer.callbackLoop (adrCallback, adrObject, userName, now, note); ÇAdd to the imported objects log. export.addToLog (adrObject, notes: "From " + username); filemenu.saveMyRoot (adrObject); return (string.popFileFromAddress (adrObject) + " has been checked in.")} \ No newline at end of file Index: modernCheckIn =================================================================== RCS file: /cvsroot/frontierkernel/odbs/frontierRoot/suites/webEditServer/rpcHandlers/webEdit/modernCheckIn,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** modernCheckIn 26 Mar 2005 19:41:18 -0000 1.1.1.1 --- modernCheckIn 22 Dec 2005 18:36:12 -0000 1.2 *************** *** 1,3 **** FrontierVcsFile:1:scpt:suites.webEditServer.rpcHandlers.webEdit.modernCheckIn ! on modernCheckIn (userName, password, adrObject, data, objectType, note="") { ÇThis is a new check-in interface. It's modern in that it's cleaner: rather than returning a string indicating success or failure, it returns a struct with information. This check-in interface takes the same arguments as the original check-in interface, which still exists and is still supported. What this interface allows you to do is write your own client-side code for checking in objects. ÇContents of the struct: ÇresultCode -- a number. Ç1 -- successful check-in. Ç2 -- bad username or password. Failure. Ç3 -- checked out by another user. Failure. Ç4 -- parent or grandparent (etc.) is checked out by another user. Failure. Ç5 -- child or grandchild (etc.) is checked out by another user. Failure. Ç6 -- item not checked out. Failure. ÇerrorString -- if successful, it's empty. Otherwise it's a human-friendly error message. ÇresultString -- if successful, a human-friendly success message. ÇcheckedOutBy -- if the object, or ancestor or descendant of the object, is currently checked out (see resultCodes #3, 4, and 5), this is the username of the person who has custody. ÇflCheckedIn -- a simple boolean that indicates success or failure. If resultCode #1, then this is true, otherwise it's false. ÇcheckedOutAncestor -- if resultCode #4, this is the address of the ancestor that's already checked out. ÇcheckedOutDescendant -- if result #5, this is the address of the descendant that's already checked out. ÇIt calls the same callbacks as the older check-in interface. Ç9/24/99; 11:28:35 AM by PBS local (adrPreCallback = @user.webEditServer.callbacks.preCheckIn); local (adrCallback = @user.webEditServer.callbacks.checkIn); local (now = clock.now ()); local (resultTable); //this is the struct that will be returned bundle { //initialize the returned struct new (tableType, @resultTable); resultTable.resultCode = 0; resultTable.errorString = ""; resultTable.resultString = ""; resultTable.checkedOutBy = ""; resultTable.flCheckedIn = false; resultTable.checkedOutAncestor = ""; resultTable.checkedOutDescendant = ""}; if not (people.authenticateUser (userName, password, "WebEdit")) { resultTable.resultCode = 2; resultTable.errorString = "Can't check in " + adrObject + " because an invalid username or password was supplied."; return (resultTable)}; if not (people.authenticateUser (userName, password, "Custody")) { resultTable.resultCode = 2; resultTable.errorString = "Can't check in " + adrObject + " because an invalid username or password was supplied."; return (resultTable)}; adrObject = webEditServer.fixGuestDbAdr (adrObject); on checkForAncestor () { local (adrTable = @user.custody.objects); for i = 1 to sizeOf (adrTable^) { local (adrItem = nameOf (adrTable^ [i])); if defined (adrItem^) { if table.tableContains (adrItem, adrObject) { //found an ancestor resultTable.checkedOutAncestor = adrItem; resultTable.checkedOutBy = adrTable^ [i].user; return (true)}}}; //an ancestor was found return (false)}; on checkForDescendant () { if typeOf (adrObject^) != tableType { return (false)}; local (adrTable = @user.custody.objects); for i = 1 to sizeOf (adrTable^) { local (adrItem = nameOf (adrTable^ [i])); if defined (adrItem^) { if typeOf (adrObject^) == tableType { if table.tableContains (adrObject, adrItem) { //found a descendant resultTable.checkedOutDescendant = adrItem; resultTable.checkedOutBy = adrTable^ [i].user; return (true)}}}}; return (false)}; ÇMake sure the object is checked out by this user, if the object already exists. if defined (adrObject^) { if not (custody.isCheckedOutByUser (adrObject, userName)) { if defined (user.custody.objects.[adrObject]) { //is it checked out by another user? resultTable.resultCode = 3; resultTable.errorString = "Can't check in " + adrObject + " because it's been checked out by another user."; resultTable.checkedOutBy = user.custody.objects.[adrObject].user; return (resultTable)} else { //it hasn't been checked out at all if checkForAncestor () { resultTable.errorString = "Can't check out \"" + adrObject + "\" because a table containing this item is already checked out."; resultTable.resultCode = 4; return (resultTable)}; if checkForDescendant () { resultTable.resultCode = 5; resultTable.errorString = "Can't check out \"" + adrObject + "\" because it contains objects that are already checked out."; return (resultTable)}; resultTable.resultCode = 6; resultTable.errorString = "Can't check in " + adrObject + " because " + userName + " has not checked it out."; return (resultTable)}}} else { //make sure a parent or grandparent (etc.) isn't already checked out if checkForAncestor () { resultTable.errorString = "Can't check out \"" + adrObject + "\" because a table containing this item is already checked out."; resultTable.resultCode = 4; return (resultTable)}}; data = fatPages.decode (@data); setBinaryType (@data, string4 (objectType)); unpack (@data, @data); webEditServer.callbackLoop (adrPreCallback, adrObject, userName, now, ""); custody.checkIn (userName, password, string (address (adrObject))); table.assign (address (adrObject), data); webEditServer.callbackLoop (adrCallback, adrObject, userName, now, note); ÇAdd to the imported objects log. export.addToLog (adrObject, notes:"From " + username); filemenu.saveMyRoot (adrobject); ÇThe check-in was successful. resultTable.resultCode = 1; resultTable.flCheckedIn = true; resultTable.resultString = adrObject + " has been checked in."; return (resultTable)} \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:scpt:suites.webEditServer.rpcHandlers.webEdit.modernCheckIn ! on modernCheckIn (userName, password, adrObject, data, objectType, note="") { ÇChanges Ç12/22/05; 10:01:12 AM by TAC Çpop file from adrObject for user display Ç9/24/99; 11:28:35 AM by PBS Çcreated ÇThis is a new check-in interface. It's modern in that it's cleaner: rather than returning a string indicating success or failure, it returns a struct with information. This check-in interface takes the same arguments as the original check-in interface, which still exists and is still supported. What this interface allows you to do is write your own client-side code for checking in objects. ÇContents of the struct: ÇresultCode -- a number. Ç1 -- successful check-in. Ç2 -- bad username or password. Failure. Ç3 -- checked out by another user. Failure. Ç4 -- parent or grandparent (etc.) is checked out by another user. Failure. Ç5 -- child or grandchild (etc.) is checked out by another user. Failure. Ç6 -- item not checked out. Failure. ÇerrorString -- if successful, it's empty. Otherwise it's a human-friendly error message. ÇresultString -- if successful, a human-friendly success message. ÇcheckedOutBy -- if the object, or ancestor or descendant of the object, is currently checked out (see resultCodes #3, 4, and 5), this is the username of the person who has custody. ÇflCheckedIn -- a simple boolean that indicates success or failure. If resultCode #1, then this is true, otherwise it's false. ÇcheckedOutAncestor -- if resultCode #4, this is the address of the ancestor that's already checked out. ÇcheckedOutDescendant -- if result #5, this is the address of the descendant that's already checked out. ÇIt calls the same callbacks as the older check-in interface. local (adrPreCallback = @user.webEditServer.callbacks.preCheckIn); local (adrCallback = @user.webEditServer.callbacks.checkIn); local (now = clock.now ()); local (resultTable); //this is the struct that will be returned bundle { //initialize the returned struct new (tableType, @resultTable); resultTable.resultCode = 0; resultTable.errorString = ""; resultTable.resultString = ""; resultTable.checkedOutBy = ""; resultTable.flCheckedIn = false; resultTable.checkedOutAncestor = ""; resultTable.checkedOutDescendant = ""}; if not (people.authenticateUser (userName, password, "WebEdit")) { resultTable.resultCode = 2; resultTable.errorString = "Can't check in " + string.popFileFromAddress (adrObject) + " because an invalid username or password was supplied."; return (resultTable)}; if not (people.authenticateUser (userName, password, "Custody")) { resultTable.resultCode = 2; resultTable.errorString = "Can't check in " + string.popFileFromAddress (adrObject) + " because an invalid username or password was supplied."; return (resultTable)}; adrObject = webEditServer.fixGuestDbAdr (adrObject); on checkForAncestor () { local (adrTable = @user.custody.objects); for i = 1 to sizeOf (adrTable^) { local (adrItem = nameOf (adrTable^ [i])); if defined (adrItem^) { if table.tableContains (adrItem, adrObject) { //found an ancestor resultTable.checkedOutAncestor = adrItem; resultTable.checkedOutBy = adrTable^ [i].user; return (true)}}}; //an ancestor was found return (false)}; on checkForDescendant () { if typeOf (adrObject^) != tableType { return (false)}; local (adrTable = @user.custody.objects); for i = 1 to sizeOf (adrTable^) { local (adrItem = nameOf (adrTable^ [i])); if defined (adrItem^) { if typeOf (adrObject^) == tableType { if table.tableContains (adrObject, adrItem) { //found a descendant resultTable.checkedOutDescendant = adrItem; resultTable.checkedOutBy = adrTable^ [i].user; return (true)}}}}; return (false)}; ÇMake sure the object is checked out by this user, if the object already exists. if defined (adrObject^) { if not (custody.isCheckedOutByUser (adrObject, userName)) { if defined (user.custody.objects.[adrObject]) { //is it checked out by another user? resultTable.resultCode = 3; resultTable.errorString = "Can't check in " + string.popFileFromAddress (adrObject) + " because it's been checked out by another user."; resultTable.checkedOutBy = user.custody.objects.[adrObject].user; return (resultTable)} else { //it hasn't been checked out at all if checkForAncestor () { resultTable.errorString = "Can't check out \"" + string.popFileFromAddress (adrObject) + "\" because a table containing this item is already checked out."; resultTable.resultCode = 4; return (resultTable)}; if checkForDescendant () { resultTable.resultCode = 5; resultTable.errorString = "Can't check out \"" + string.popFileFromAddress (adrObject) + "\" because it contains objects that are already checked out."; return (resultTable)}; resultTable.resultCode = 6; resultTable.errorString = "Can't check in " + string.popFileFromAddress (adrObject) + " because " + userName + " has not checked it out."; return (resultTable)}}} else { //make sure a parent or grandparent (etc.) isn't already checked out if checkForAncestor () { resultTable.errorString = "Can't check out \"" + string.popFileFromAddress (adrObject) + "\" because a table containing this item is already checked out."; resultTable.resultCode = 4; return (resultTable)}}; data = fatPages.decode (@data); setBinaryType (@data, string4 (objectType)); unpack (@data, @data); webEditServer.callbackLoop (adrPreCallback, adrObject, userName, now, ""); custody.checkIn (userName, password, string (address (adrObject))); table.assign (address (adrObject), data); webEditServer.callbackLoop (adrCallback, adrObject, userName, now, note); ÇAdd to the imported objects log. export.addToLog (adrObject, notes: "From " + username); filemenu.saveMyRoot (adrObject); ÇThe check-in was successful. resultTable.resultCode = 1; resultTable.flCheckedIn = true; resultTable.resultString = string.popFileFromAddress (adrObject) + " has been checked in."; return (resultTable)} \ No newline at end of file |
|
From: creedon <icr...@us...> - 2005-12-21 23:23:46
|
Update of /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5579 Modified Files: init Log Message: added init for config.mainresponder.sites Index: init =================================================================== RCS file: /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/init,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** init 8 Sep 2005 06:00:51 -0000 1.7 --- init 21 Dec 2005 23:23:37 -0000 1.8 *************** *** 1,3 **** FrontierVcsFile:1:scpt:mainResponder.init ! on init () { ÇInitialize mainResponder ÇChanges Ç9/7/05; 10:53:18 PM by TAC Çchanged userlandIcons to frontierIcons Çchanged /mainResponderResources/ to /resources/ Ç8/6/05; 10:30:54 AM by TAC Çpartial path support for config.mainresponder.prefs.logFolder; config.mainresponder.prefs.discussArchiveFolder; config.mainresponder.prefs.backupFolder, more portable Ç6/19/05; 10:47:10 AM by TAC Çchanged localhost value to 127.0.0.1 Çadded config.mainResponder.callbacks.subscriptionsServer Çadded config.mainresponder.prefs.legalMacros Çadded config.mainresponder.prefs.baseUrl for adminSite setupFrontier Ç3/10/03; 5:53:51 PM by JES ÇMake sure that system.environment.isRadio is defined (and false). Ç3/4/03; 3:19:15 PM by JES ÇReturn @config.mainResponder. Ç9/3/02; 1:26:05 AM by JES ÇFixed a bonehead bug -- we were calling user.rootUpdates.init to initialize the user.rootUpdates.callbacks table. We should have called rootUpdates.init instead. Ç8/28/02; 11:18:11 PM by JES ÇRegister admin site callbacks, and config.mainResponder.prefs.flLogRootUpdates. Ç8/20/02; 12:38:52 AM by JES ÇIf the port 5335 listen configured at user.inetd.config.http2 is not installed, install it, based on the default http listen. Ç8/18/02; 5:21:19 PM by JES ÇInstall the admin site pathEvaluation callback at config.mainresponder.callbacks.pathEvaluation.frontierAdminSite. Ç8/1/02; 6:59:56 PM by JES ÇInitialize new search engine prefs at config.mainResponder.search.prefs. No longer create config.mainresponder.data.searchQueue. Ç06/22/00; 3:57:55 PM by PBS ÇSet hashed cookies to true by default. Ç06/17/00; 5:29:29 PM by PBS ÇNow false by default: flKeepParamTable, flLog, flDiscussStatsNightly Ç12/11/1999 at 5:29:32 AM by AR ÇCommented out the code for hooking into the scheduler. This is now handled in mainResponder.startup. Ç11/23/99; 4:10:06 PM by PBS ÇBackups and discuss archiving now false by default. Ç11/20/99; 4:29:29 PM by PBS ÇChanged some defaults. Discuss archiving is true by default. Nightly updates are on by default; the default nightly update list contains Frontier, mainResponder, manila, and prefs.root. Save databases every minute is true by default. Logging database opens to the temp table is now false by default. Ç11/16/99; 11:48:17 PM by PBS ÇSet up prefs for flUpdateNightly, updateNightlyList, and securityLevel. The first two are prefs for automated nightly updates, the third is the security level for the Control Panel. Ç10/25/99; 4:04:59 PM by PBS Çconfig.mainResponder.prefs.flControlPanel: if true, then the /controlPanel/ system website can be accessed. It's true by default. Ç8/15/99; 9:53:42 AM by DW Çconfig.mainresponder.prefs.flLogReopenHourly, if true, we close the log file every hour. It will be re-opened by the next log.add call. In our work with the 6.1 kernel, we've determined that for busy servers this helps Frontier's memory utilization significantly, and the cost of re-opening the file once an hour is relatively small. Ç8/15/99; 9:34:07 AM by DW ÇMake sure that scheduler tasks are installed. This is also handled in mainResponder.install, but I don't want to ask people to run this script to go to 6.1, so we check to see if they're defined and if they're not we link them in. Ç8/15/99; 8:26:14 AM by DW Çinitialize config.mainresponder.prefs.flArchiveDiscuss and discussArchiveFolder. ÇWed, Mar 10, 1999 at 2:34:19 PM by PBS ÇInitialize config.mainResponder.data. ÇInitialize config.mainResponder.data.searchQueue. ÇWed, Mar 10, 1999 at 2:19:48 PM by PBS ÇInitialize the config.mainresponder.search table. ÇSet config.mainResponder.prefs.flSearchEngine to false by default. ÇThis means that this machine is not, by default, a search engine server. ÇSet config.mainResponder.prefs.flLogMemAvail to false by default. ÇTue, Mar 9, 1999 at 4:12:13 PM by PBS ÇUse Frontier.getSubFolder rather than mainResponder.getFolder. ÇSat, Mar 20, 1999 at 4:48:37 PM by PBS ÇAdded flConvertToMacText pref. ÇOn Macs, convert incoming latin text to Mac. ÇOn Windows the pref has no effect. local (ps = string.popTrailing (system.verbs.builtins.Frontier.pathstring, file.getPathChar ())); // path string minus the trailing path character on suretable (adrtable) { if not defined (adrtable^) { new (tabletype, adrtable)}}; suretable (@config.mainresponder); bundle { //config.mainresponder.prefs suretable (@config.mainresponder.prefs); if not defined (config.mainresponder.prefs.baseUrl) { config.mainresponder.prefs.baseUrl = "http://127.0.0.1/"}; if not defined (config.mainresponder.prefs.backupFolder) { config.mainresponder.prefs.backupFolder = Frontier.getSubFolder ("/ops/backups/") - ps}; // 8/6/05; 10:30:54 AM by TAC if not defined (config.mainresponder.prefs.defaultDiscussRoot) { config.mainresponder.prefs.defaultDiscussRoot = "discuss"}; if not defined (config.mainresponder.prefs.defaultNewsRoot) { config.mainresponder.prefs.defaultNewsRoot = "default"}; if not defined (config.mainresponder.prefs.flAllowPublicSearchSubmissions) { //PBS 3/9/99 config.mainresponder.prefs.flAllowPublicSearchSubmissions = false}; if not defined (config.mainresponder.prefs.flBackupNightly) { config.mainresponder.prefs.flBackupNightly = false}; //PBS 11/23/99: now false by default if not defined (config.mainresponder.prefs.flDiscussStatsNightly) { Çconfig.mainresponder.prefs.flDiscussStatsNightly = true config.mainresponder.prefs.flDiscussStatsNightly = false}; //PBS 06/17/00: Now false by default for 6.2. if not defined (config.mainresponder.prefs.flArchiveDiscuss) { config.mainresponder.prefs.flArchiveDiscuss = false}; //PBS 11/23/99: now false by default if not defined (config.mainresponder.prefs.discussArchiveFolder) { config.mainresponder.prefs.discussArchiveFolder = Frontier.getSubFolder ("/ops/discussArchive/") - ps}; // 8/6/05; 10:30:54 AM by TAC if not defined (config.mainresponder.prefs.flControlPanel) { //PBS 10/25/99: pref for the /controlPanel/ site config.mainresponder.prefs.flControlPanel = true}; if not defined (config.mainresponder.prefs.flDebug) { config.mainresponder.prefs.flDebug = false}; if not defined (config.mainresponder.prefs.flKeepParamTable) { Çconfig.mainresponder.prefs.flKeepParamTable = true config.mainresponder.prefs.flKeepParamTable = false}; //PBS 06/17/00: Now false by default in 6.2. if not defined (config.mainresponder.prefs.flLog) { Çconfig.mainresponder.prefs.flLog = true config.mainresponder.prefs.flLog = false}; //PBS 06/17/00: HTTP logging now off by default in 6.2. if not defined (config.mainresponder.prefs.flLogMemavail) { config.mainresponder.prefs.flLogMemavail = false}; if not defined (config.mainresponder.prefs.flLogDatabaseOpens) { config.mainresponder.prefs.flLogDatabaseOpens = false}; //PBS 11/20/99: now false by default, no to logging database opens to the temp table if not defined (config.mainresponder.prefs.flLogReopenHourly) { config.mainresponder.prefs.flLogReopenHourly = false}; if not defined (config.mainresponder.prefs.flOpenAboutWindow) { config.mainresponder.prefs.flOpenAboutWindow = true}; if not defined (config.mainresponder.prefs.flBuildPagesInBackground) { config.mainresponder.prefs.flBuildPagesInBackground = false}; //PBS 11/20/99: now false by default, no to building pages in the background if not defined (config.mainresponder.prefs.flProfiling) { config.mainresponder.prefs.flProfiling = false}; if not defined (config.mainresponder.prefs.flSaveDatabasesEveryMinute) { config.mainresponder.prefs.flSaveDatabasesEveryMinute = true}; //PBS 11/20/99: save databases every minute is now true by default if not defined (config.mainResponder.prefs.flMembershipHashedCookies) { //PBS 06/22/00: true by default config.mainResponder.prefs.flMembershipHashedCookies = true}; if not defined (config.mainresponder.prefs.flSearchEngine) { config.mainresponder.prefs.flSearchEngine = false}; if not defined (config.mainresponder.prefs.flStats) { config.mainresponder.prefs.flStats = true}; if not defined (config.mainresponder.prefs.flSubscriptions) { config.mainresponder.prefs.flSubscriptions = false}; if not defined (config.mainresponder.prefs.hitsBetweenLogSaves) { config.mainresponder.prefs.hitsBetweenLogSaves = 100}; if not defined (config.mainresponder.prefs.flConvertToMacText) { //PBS 3/20/99 config.mainresponder.prefs.flConvertToMacText = true}; if not defined (config.mainresponder.prefs.logFolder) { config.mainresponder.prefs.logFolder = Frontier.getSubFolder ("/ops/logs/") - ps}; // 8/6/05; 10:30:54 AM by TAC if not defined (config.mainresponder.prefs.legalMacros) { new (tabletype, @config.mainresponder.prefs.legalMacros)}; if not defined (config.mainresponder.prefs.legalTags) { new (tabletype, @config.mainresponder.prefs.legalTags); config.mainresponder.prefs.legalTags.i = true; config.mainresponder.prefs.legalTags.pre = true}; if not defined (config.mainresponder.prefs.flAllowByIpOnly) { //AR 11/04/1999 config.mainresponder.prefs.flAllowByIpOnly = false}; if not defined (config.mainresponder.prefs.allowedIpAddresses) { //AR 11/04/1999 config.mainresponder.prefs.allowedIpAddresses = "127.0.0.1"}; if not defined (config.mainResponder.prefs.flUpdateNightly) { //PBS 11/16/99: update various gdbs every night config.mainResponder.prefs.flUpdateNightly = true}; //PBS 11/20/99: nightly updates now true by default if not defined (config.mainResponder.prefs.updateNightlyList) { //PBS 11/16/99: list of gdbs to update nightly config.mainResponder.prefs.updateNightlyList = {"Frontier.root", "mainResponder.root", "prefs.root"}}; // 6/16/05; 1:52:08 PM by TAC - removed manila.root if not defined (config.mainResponder.prefs.securityLevel) { //PBS 11/16/99: set up security level pref config.mainResponder.prefs.securityLevel = 0}; if not defined (config.mainResponder.prefs.flLogRootUpdates) { config.mainResponder.prefs.flLogRootUpdates = true}}; bundle { //config.mainresponder.urls local (localhost = "127.0.0.1"); suretable (@config.mainresponder.urls); bundle { //discuss urls local (basediscussurl = "http://" + localhost + "/htmlInterfaces/discussionGroup/"); if not defined (config.mainResponder.urls.discussEditInBrowser) { config.mainResponder.urls.discussEditInBrowser = basediscussurl + "edit/editInBrowser$"}; if not defined (config.mainResponder.urls.discussEditInFrontier) { config.mainResponder.urls.discussEditInFrontier = basediscussurl + "edit/editInFrontier$"}; if not defined (config.mainResponder.urls.discussEnclosureDownloader) { config.mainResponder.urls.discussEnclosureDownloader = basediscussurl + "enclosureDownloader$"}; if not defined (config.mainResponder.urls.discussEnclosureRPCer) { config.mainResponder.urls.discussEnclosureRPCer = basediscussurl + "enclosureRPCer$"}; if not defined (config.mainResponder.urls.discussEnclosureViewer) { config.mainResponder.urls.discussEnclosureViewer = basediscussurl + "raw/messages/"}; if not defined (config.mainResponder.urls.discussGetChangesFromWorkstation) { config.mainResponder.urls.discussGetChangesFromWorkstation = basediscussurl + "edit/getChangesFromWorkstation"}; if not defined (config.mainResponder.urls.discussHomePage) { config.mainResponder.urls.discussHomePage = basediscussurl}; if not defined (config.mainResponder.urls.discussMsgReader) { config.mainResponder.urls.discussMsgReader = basediscussurl + "msgReader$"}; if not defined (config.mainResponder.urls.discussNewThread) { config.mainResponder.urls.discussNewThread = basediscussurl + "edit/newThread$"}; if not defined (config.mainResponder.urls.discussPostEditedMessage) { config.mainResponder.urls.discussPostEditedMessage = basediscussurl + "edit/postEditedMsg"}; if not defined (config.mainResponder.urls.discussPostMessage) { config.mainResponder.urls.discussPostMessage = basediscussurl + "edit/postMsg"}; if not defined (config.mainResponder.urls.discussTopics) { config.mainResponder.urls.discussTopics = basediscussurl + "topics"}}; bundle { //resources urls local (baseresourcesurl = "http://" + localhost + "/resources/"); if not defined (config.mainresponder.urls.frontierLogo) { config.mainresponder.urls.frontierLogo = baseresourcesurl + "logos/logoWinNT.gif"}; if not defined (config.mainresponder.urls.icons) { config.mainresponder.urls.icons = baseresourcesurl + "icons/"}; if not defined (config.mainresponder.urls.imageCowSkull) { config.mainresponder.urls.imageCowSkull = baseresourcesurl + "frontierIcons/skull"}}; bundle { //member urls local (basememberurl = "http://" + localhost + "/htmlInterfaces/logon/"); if not defined (config.mainResponder.urls.memberCheckMail) { config.mainResponder.urls.memberCheckMail = basememberurl + "checkYourMail"}; if not defined (config.mainResponder.urls.memberHome) { config.mainResponder.urls.memberHome = basememberurl + "welcome"}; if not defined (config.mainResponder.urls.memberLogoff) { config.mainResponder.urls.memberLogoff = basememberurl + "logoffConfirm"}; if not defined (config.mainResponder.urls.memberLogon) { config.mainResponder.urls.memberLogon = basememberurl}}; bundle { //misc urls if not defined (config.mainResponder.urls.newsHome) { config.mainResponder.urls.newsHome = "http://" + localhost + "/"}; if not defined (config.mainResponder.urls.searchHome) { config.mainResponder.urls.searchHome = "http://" + localhost + "/search/"}; local (basepeopleurl = "http://" + localhost + "/htmlInterfaces/people/"); if not defined (config.mainResponder.urls.prefsHome) { config.mainResponder.urls.prefsHome = basepeopleurl + "prefs/"}; if not defined (config.mainResponder.urls.profilesHome) { config.mainResponder.urls.profilesHome = basepeopleurl + "profiles/"}}}; bundle { //config.mainresponder.callbacks suretable (@config.mainresponder.callbacks); suretable (@config.mainresponder.callbacks.addMessage); suretable (@config.mainresponder.callbacks.controlAccess); suretable (@config.mainresponder.callbacks.editMessage); suretable (@config.mainresponder.callbacks.lightweightMacros); suretable (@config.mainresponder.callbacks.nightlyBackup); suretable (@config.mainResponder.callbacks.searchEngineSecurity); //PBS 3/9/99 suretable (@config.mainResponder.callbacks.subscriptionsServer); ÇAdd search engine callbacks. if not defined (config.mainResponder.callbacks.addMessage.index) { script.newScriptObject ("mainResponder.search.client.addMessageCallback (adrNewMsg)", @config.mainResponder.callbacks.addMessage.index); script.compile (@config.mainResponder.callbacks.addMessage.index)}; if not defined (config.mainResponder.callbacks.editMessage.index) { script.newScriptObject ("mainResponder.search.client.addMessageCallback (adrEditedMsg)", @config.mainResponder.callbacks.editMessage.index); script.compile (@config.mainResponder.callbacks.editMessage.index)}; ÇAdd security callback if not defined (config.mainResponder.callbacks.controlAccess.blockByIP) { //AR 11/04/1999 script.newScriptObject ("mainResponder.security.blockHttpByIP ()", @config.mainResponder.callbacks.controlAccess.blockByIP)}; ÇAdd pathEvaluation callback for the Admin site if not defined (config.mainresponder.callbacks.pathEvaluation) { //JES 8/18/02 new (tableType, @config.mainresponder.callbacks.pathEvaluation)}; if not defined (config.mainresponder.callbacks.pathEvaluation.frontierAdminSite) { //JES 8/18/02 config.mainresponder.callbacks.pathEvaluation.frontierAdminSite = @mainResponder.adminSite.callbacks.pathEvaluation}}; bundle { //config.mainresponder.data suretable (@config.mainresponder.data); };Çsuretable (@config.mainresponder.data.searchQueue) bundle { //config.mainresponder.domains suretable (@config.mainresponder.domains); if sizeof (config.mainresponder.domains) == 0 { config.mainresponder.domains.default = Frontier.getSubFolder ("/www/")}}; bundle { //config.mainresponder.globals suretable (@config.mainresponder.globals); if not defined (config.mainresponder.globals.allowDirectoryListings) { //PBS 11/19/99: default is now false config.mainresponder.globals.allowDirectoryListings = false}; if not defined (config.mainresponder.globals.allowScriptListings) { config.mainresponder.globals.allowScriptListings = false}; if not defined (config.mainresponder.globals.allowScriptsToRun) { config.mainresponder.globals.allowScriptsToRun = false}; if not defined (config.mainresponder.globals.defaultDirectoryItems) { config.mainresponder.globals.defaultDirectoryItems = {"default.html", "default", "index.html", "index"}}; if not defined (config.mainresponder.globals.defaultMembershipGroup) { config.mainresponder.globals.defaultMembershipGroup = "default"}; if not defined (config.mainresponder.globals.flRender) { config.mainresponder.globals.flRender = false}; if not defined (config.mainresponder.globals.flRenderingCache) { config.mainresponder.globals.flRenderingCache = false}}; bundle { //config.mainresponder.search suretable (@config.mainresponder.search); if not defined (config.mainresponder.search.domain) { config.mainresponder.search.domain = "127.0.0.1"}; if not defined (config.mainresponder.search.port) { config.mainresponder.search.port = 80}; if not defined (config.mainresponder.search.addToIndex) { config.mainresponder.search.addToIndex = "mainResponder.search.index"}; if not defined (config.mainresponder.search.restartIndex) { config.mainresponder.search.restartIndex = "mainResponder.search.restartIndex"}; if not defined (config.mainresponder.search.sites) { suretable (@config.mainresponder.search.sites)}; if not defined (config.mainResponder.search.prefs) { new (tableType, @config.mainResponder.search.prefs)}; if not defined (config.mainResponder.search.prefs.flLogEnabled) { config.mainResponder.search.prefs.flLogEnabled = false}; if not defined (config.mainResponder.search.prefs.flLogSearches) { config.mainResponder.search.prefs.flLogSearches = true}; if not defined (config.mainResponder.search.prefs.flLogIndex) { config.mainResponder.search.prefs.flLogIndex = true}; if not defined (config.mainResponder.search.prefs.flLogNoIndex) { config.mainResponder.search.prefs.flLogNoIndex = true}; if not defined (config.mainResponder.search.prefs.flStoreFullText) { config.mainResponder.search.prefs.flStoreFullText = false}; if not defined (config.mainResponder.search.prefs.minutesBetweenIndexes) { config.mainResponder.search.prefs.minutesBetweenIndexes = 60}; if not defined (config.mainResponder.search.prefs.hoursToCacheSearchResults) { config.mainResponder.search.prefs.hoursToCacheSearchResults = 24}}; bundle { //config.mainresponder.stats if not defined (config.mainResponder.stats) { new (tabletype, @config.mainResponder.stats)}; if not defined (config.mainResponder.stats.ctDiscussionGroupReads) { config.mainResponder.stats.ctDiscussionGroupReads = 0}}; bundle { //port 5335 listener if not defined (user.inetd.config.http2) { user.inetd.config.http2 = user.inetd.config.http; user.inetd.config.http2.port = 5336; if user.inetd.config.http2.startup { try { inetd.startOne (@user.inetd.config.http2)}}}}; try { //register admin site callbacks if not defined (user.rootUpdates.callbacks) { rootUpdates.init ()}; if not defined (user.rootUpdates.callbacks.afterInstallPart.mainResponder) { user.rootUpdates.callbacks.afterInstallPart.mainResponder = @mainResponder.adminSite.callbacks.logRootUpdate}}; bundle { //miscellaneous clean-up if not defined (system.environment.isRadio) { system.environment.isRadio = false}}; Çbundle //hook in to user.scheduler Çif not defined (user.scheduler.everyMinute.nirvanaServer) Çuser.scheduler.everyMinute.nirvanaServer = @mainresponder.background.everyminute Çif not defined (user.scheduler.hourly.nirvanaServer) Çuser.scheduler.hourly.nirvanaServer = @mainresponder.background.everyHour Çif not defined (user.scheduler.overnight.nirvanaServer) Çuser.scheduler.overnight.nirvanaServer = @mainresponder.background.everynight return (@config.mainResponder)}; Çbundle //test code Çlocal (ticks = clock.ticks ()) Çfor i = 1 to 100 Çinit () Çdialog.notify ((double (clock.ticks ()) - ticks) / 60 + " secs.") \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:scpt:mainResponder.init ! on init () { ÇChanges Ç12/21/05; 1:43:35 PM by TAC Çadded init for config.mainresponder.sites Ç9/7/05; 10:53:18 PM by TAC Çchanged userlandIcons to frontierIcons Çchanged /mainResponderResources/ to /resources/ Ç8/6/05; 10:30:54 AM by TAC Çpartial path support for config.mainresponder.prefs.logFolder; config.mainresponder.prefs.discussArchiveFolder; config.mainresponder.prefs.backupFolder, more portable Ç6/19/05; 10:47:10 AM by TAC Çchanged localhost value to 127.0.0.1 Çadded config.mainResponder.callbacks.subscriptionsServer Çadded config.mainresponder.prefs.legalMacros Çadded config.mainresponder.prefs.baseUrl for adminSite setupFrontier Ç3/10/03; 5:53:51 PM by JES ÇMake sure that system.environment.isRadio is defined (and false). Ç3/4/03; 3:19:15 PM by JES ÇReturn @config.mainResponder. Ç9/3/02; 1:26:05 AM by JES ÇFixed a bonehead bug -- we were calling user.rootUpdates.init to initialize the user.rootUpdates.callbacks table. We should have called rootUpdates.init instead. Ç8/28/02; 11:18:11 PM by JES ÇRegister admin site callbacks, and config.mainResponder.prefs.flLogRootUpdates. Ç8/20/02; 12:38:52 AM by JES ÇIf the port 5335 listen configured at user.inetd.config.http2 is not installed, install it, based on the default http listen. Ç8/18/02; 5:21:19 PM by JES ÇInstall the admin site pathEvaluation callback at config.mainresponder.callbacks.pathEvaluation.frontierAdminSite. Ç8/1/02; 6:59:56 PM by JES ÇInitialize new search engine prefs at config.mainResponder.search.prefs. No longer create config.mainresponder.data.searchQueue. Ç06/22/00; 3:57:55 PM by PBS ÇSet hashed cookies to true by default. Ç06/17/00; 5:29:29 PM by PBS ÇNow false by default: flKeepParamTable, flLog, flDiscussStatsNightly Ç12/11/1999 at 5:29:32 AM by AR ÇCommented out the code for hooking into the scheduler. This is now handled in mainResponder.startup. Ç11/23/99; 4:10:06 PM by PBS ÇBackups and discuss archiving now false by default. Ç11/20/99; 4:29:29 PM by PBS ÇChanged some defaults. Discuss archiving is true by default. Nightly updates are on by default; the default nightly update list contains Frontier, mainResponder, manila, and prefs.root. Save databases every minute is true by default. Logging database opens to the temp table is now false by default. Ç11/16/99; 11:48:17 PM by PBS ÇSet up prefs for flUpdateNightly, updateNightlyList, and securityLevel. The first two are prefs for automated nightly updates, the third is the security level for the Control Panel. Ç10/25/99; 4:04:59 PM by PBS Çconfig.mainResponder.prefs.flControlPanel: if true, then the /controlPanel/ system website can be accessed. It's true by default. Ç8/15/99; 9:53:42 AM by DW Çconfig.mainresponder.prefs.flLogReopenHourly, if true, we close the log file every hour. It will be re-opened by the next log.add call. In our work with the 6.1 kernel, we've determined that for busy servers this helps Frontier's memory utilization significantly, and the cost of re-opening the file once an hour is relatively small. Ç8/15/99; 9:34:07 AM by DW ÇMake sure that scheduler tasks are installed. This is also handled in mainResponder.install, but I don't want to ask people to run this script to go to 6.1, so we check to see if they're defined and if they're not we link them in. Ç8/15/99; 8:26:14 AM by DW Çinitialize config.mainresponder.prefs.flArchiveDiscuss and discussArchiveFolder. ÇWed, Mar 10, 1999 at 2:34:19 PM by PBS ÇInitialize config.mainResponder.data. ÇInitialize config.mainResponder.data.searchQueue. ÇWed, Mar 10, 1999 at 2:19:48 PM by PBS ÇInitialize the config.mainresponder.search table. ÇSet config.mainResponder.prefs.flSearchEngine to false by default. ÇThis means that this machine is not, by default, a search engine server. ÇSet config.mainResponder.prefs.flLogMemAvail to false by default. ÇTue, Mar 9, 1999 at 4:12:13 PM by PBS ÇUse Frontier.getSubFolder rather than mainResponder.getFolder. ÇSat, Mar 20, 1999 at 4:48:37 PM by PBS ÇAdded flConvertToMacText pref. ÇOn Macs, convert incoming latin text to Mac. ÇOn Windows the pref has no effect. ÇInitialize mainResponder local (ps = string.popTrailing (system.verbs.builtins.Frontier.pathstring, file.getPathChar ())); // path string minus the trailing path character on suretable (adrtable) { if not defined (adrtable^) { new (tabletype, adrtable)}}; suretable (@config.mainresponder); bundle { //config.mainresponder.prefs suretable (@config.mainresponder.prefs); if not defined (config.mainresponder.prefs.baseUrl) { config.mainresponder.prefs.baseUrl = "http://127.0.0.1/"}; if not defined (config.mainresponder.prefs.backupFolder) { config.mainresponder.prefs.backupFolder = Frontier.getSubFolder ("/ops/backups/") - ps}; // 8/6/05; 10:30:54 AM by TAC if not defined (config.mainresponder.prefs.defaultDiscussRoot) { config.mainresponder.prefs.defaultDiscussRoot = "discuss"}; if not defined (config.mainresponder.prefs.defaultNewsRoot) { config.mainresponder.prefs.defaultNewsRoot = "default"}; if not defined (config.mainresponder.prefs.flAllowPublicSearchSubmissions) { //PBS 3/9/99 config.mainresponder.prefs.flAllowPublicSearchSubmissions = false}; if not defined (config.mainresponder.prefs.flBackupNightly) { config.mainresponder.prefs.flBackupNightly = false}; //PBS 11/23/99: now false by default if not defined (config.mainresponder.prefs.flDiscussStatsNightly) { Çconfig.mainresponder.prefs.flDiscussStatsNightly = true config.mainresponder.prefs.flDiscussStatsNightly = false}; //PBS 06/17/00: Now false by default for 6.2. if not defined (config.mainresponder.prefs.flArchiveDiscuss) { config.mainresponder.prefs.flArchiveDiscuss = false}; //PBS 11/23/99: now false by default if not defined (config.mainresponder.prefs.discussArchiveFolder) { config.mainresponder.prefs.discussArchiveFolder = Frontier.getSubFolder ("/ops/discussArchive/") - ps}; // 8/6/05; 10:30:54 AM by TAC if not defined (config.mainresponder.prefs.flControlPanel) { //PBS 10/25/99: pref for the /controlPanel/ site config.mainresponder.prefs.flControlPanel = true}; if not defined (config.mainresponder.prefs.flDebug) { config.mainresponder.prefs.flDebug = false}; if not defined (config.mainresponder.prefs.flKeepParamTable) { Çconfig.mainresponder.prefs.flKeepParamTable = true config.mainresponder.prefs.flKeepParamTable = false}; //PBS 06/17/00: Now false by default in 6.2. if not defined (config.mainresponder.prefs.flLog) { Çconfig.mainresponder.prefs.flLog = true config.mainresponder.prefs.flLog = false}; //PBS 06/17/00: HTTP logging now off by default in 6.2. if not defined (config.mainresponder.prefs.flLogMemavail) { config.mainresponder.prefs.flLogMemavail = false}; if not defined (config.mainresponder.prefs.flLogDatabaseOpens) { config.mainresponder.prefs.flLogDatabaseOpens = false}; //PBS 11/20/99: now false by default, no to logging database opens to the temp table if not defined (config.mainresponder.prefs.flLogReopenHourly) { config.mainresponder.prefs.flLogReopenHourly = false}; if not defined (config.mainresponder.prefs.flOpenAboutWindow) { config.mainresponder.prefs.flOpenAboutWindow = true}; if not defined (config.mainresponder.prefs.flBuildPagesInBackground) { config.mainresponder.prefs.flBuildPagesInBackground = false}; //PBS 11/20/99: now false by default, no to building pages in the background if not defined (config.mainresponder.prefs.flProfiling) { config.mainresponder.prefs.flProfiling = false}; if not defined (config.mainresponder.prefs.flSaveDatabasesEveryMinute) { config.mainresponder.prefs.flSaveDatabasesEveryMinute = true}; //PBS 11/20/99: save databases every minute is now true by default if not defined (config.mainResponder.prefs.flMembershipHashedCookies) { //PBS 06/22/00: true by default config.mainResponder.prefs.flMembershipHashedCookies = true}; if not defined (config.mainresponder.prefs.flSearchEngine) { config.mainresponder.prefs.flSearchEngine = false}; if not defined (config.mainresponder.prefs.flStats) { config.mainresponder.prefs.flStats = true}; if not defined (config.mainresponder.prefs.flSubscriptions) { config.mainresponder.prefs.flSubscriptions = false}; if not defined (config.mainresponder.prefs.hitsBetweenLogSaves) { config.mainresponder.prefs.hitsBetweenLogSaves = 100}; if not defined (config.mainresponder.prefs.flConvertToMacText) { //PBS 3/20/99 config.mainresponder.prefs.flConvertToMacText = true}; if not defined (config.mainresponder.prefs.logFolder) { config.mainresponder.prefs.logFolder = Frontier.getSubFolder ("/ops/logs/") - ps}; // 8/6/05; 10:30:54 AM by TAC if not defined (config.mainresponder.prefs.legalMacros) { new (tabletype, @config.mainresponder.prefs.legalMacros)}; if not defined (config.mainresponder.prefs.legalTags) { new (tabletype, @config.mainresponder.prefs.legalTags); config.mainresponder.prefs.legalTags.i = true; config.mainresponder.prefs.legalTags.pre = true}; if not defined (config.mainresponder.prefs.flAllowByIpOnly) { //AR 11/04/1999 config.mainresponder.prefs.flAllowByIpOnly = false}; if not defined (config.mainresponder.prefs.allowedIpAddresses) { //AR 11/04/1999 config.mainresponder.prefs.allowedIpAddresses = "127.0.0.1"}; if not defined (config.mainResponder.prefs.flUpdateNightly) { //PBS 11/16/99: update various gdbs every night config.mainResponder.prefs.flUpdateNightly = true}; //PBS 11/20/99: nightly updates now true by default if not defined (config.mainResponder.prefs.updateNightlyList) { //PBS 11/16/99: list of gdbs to update nightly config.mainResponder.prefs.updateNightlyList = {"Frontier.root", "mainResponder.root", "prefs.root"}}; // 6/16/05; 1:52:08 PM by TAC - removed manila.root if not defined (config.mainResponder.prefs.securityLevel) { //PBS 11/16/99: set up security level pref config.mainResponder.prefs.securityLevel = 0}; if not defined (config.mainResponder.prefs.flLogRootUpdates) { config.mainResponder.prefs.flLogRootUpdates = true}}; bundle { //config.mainresponder.urls local (localhost = "127.0.0.1"); suretable (@config.mainresponder.urls); bundle { //discuss urls local (basediscussurl = "http://" + localhost + "/htmlInterfaces/discussionGroup/"); if not defined (config.mainResponder.urls.discussEditInBrowser) { config.mainResponder.urls.discussEditInBrowser = basediscussurl + "edit/editInBrowser$"}; if not defined (config.mainResponder.urls.discussEditInFrontier) { config.mainResponder.urls.discussEditInFrontier = basediscussurl + "edit/editInFrontier$"}; if not defined (config.mainResponder.urls.discussEnclosureDownloader) { config.mainResponder.urls.discussEnclosureDownloader = basediscussurl + "enclosureDownloader$"}; if not defined (config.mainResponder.urls.discussEnclosureRPCer) { config.mainResponder.urls.discussEnclosureRPCer = basediscussurl + "enclosureRPCer$"}; if not defined (config.mainResponder.urls.discussEnclosureViewer) { config.mainResponder.urls.discussEnclosureViewer = basediscussurl + "raw/messages/"}; if not defined (config.mainResponder.urls.discussGetChangesFromWorkstation) { config.mainResponder.urls.discussGetChangesFromWorkstation = basediscussurl + "edit/getChangesFromWorkstation"}; if not defined (config.mainResponder.urls.discussHomePage) { config.mainResponder.urls.discussHomePage = basediscussurl}; if not defined (config.mainResponder.urls.discussMsgReader) { config.mainResponder.urls.discussMsgReader = basediscussurl + "msgReader$"}; if not defined (config.mainResponder.urls.discussNewThread) { config.mainResponder.urls.discussNewThread = basediscussurl + "edit/newThread$"}; if not defined (config.mainResponder.urls.discussPostEditedMessage) { config.mainResponder.urls.discussPostEditedMessage = basediscussurl + "edit/postEditedMsg"}; if not defined (config.mainResponder.urls.discussPostMessage) { config.mainResponder.urls.discussPostMessage = basediscussurl + "edit/postMsg"}; if not defined (config.mainResponder.urls.discussTopics) { config.mainResponder.urls.discussTopics = basediscussurl + "topics"}}; bundle { //resources urls local (baseresourcesurl = "http://" + localhost + "/resources/"); if not defined (config.mainresponder.urls.frontierLogo) { config.mainresponder.urls.frontierLogo = baseresourcesurl + "logos/logoWinNT.gif"}; if not defined (config.mainresponder.urls.icons) { config.mainresponder.urls.icons = baseresourcesurl + "icons/"}; if not defined (config.mainresponder.urls.imageCowSkull) { config.mainresponder.urls.imageCowSkull = baseresourcesurl + "frontierIcons/skull"}}; bundle { //member urls local (basememberurl = "http://" + localhost + "/htmlInterfaces/logon/"); if not defined (config.mainResponder.urls.memberCheckMail) { config.mainResponder.urls.memberCheckMail = basememberurl + "checkYourMail"}; if not defined (config.mainResponder.urls.memberHome) { config.mainResponder.urls.memberHome = basememberurl + "welcome"}; if not defined (config.mainResponder.urls.memberLogoff) { config.mainResponder.urls.memberLogoff = basememberurl + "logoffConfirm"}; if not defined (config.mainResponder.urls.memberLogon) { config.mainResponder.urls.memberLogon = basememberurl}}; bundle { //misc urls if not defined (config.mainResponder.urls.newsHome) { config.mainResponder.urls.newsHome = "http://" + localhost + "/"}; if not defined (config.mainResponder.urls.searchHome) { config.mainResponder.urls.searchHome = "http://" + localhost + "/search/"}; local (basepeopleurl = "http://" + localhost + "/htmlInterfaces/people/"); if not defined (config.mainResponder.urls.prefsHome) { config.mainResponder.urls.prefsHome = basepeopleurl + "prefs/"}; if not defined (config.mainResponder.urls.profilesHome) { config.mainResponder.urls.profilesHome = basepeopleurl + "profiles/"}}}; bundle { //config.mainresponder.callbacks suretable (@config.mainresponder.callbacks); suretable (@config.mainresponder.callbacks.addMessage); suretable (@config.mainresponder.callbacks.controlAccess); suretable (@config.mainresponder.callbacks.editMessage); suretable (@config.mainresponder.callbacks.lightweightMacros); suretable (@config.mainresponder.callbacks.nightlyBackup); suretable (@config.mainResponder.callbacks.searchEngineSecurity); //PBS 3/9/99 suretable (@config.mainResponder.callbacks.subscriptionsServer); ÇAdd search engine callbacks. if not defined (config.mainResponder.callbacks.addMessage.index) { script.newScriptObject ("mainResponder.search.client.addMessageCallback (adrNewMsg)", @config.mainResponder.callbacks.addMessage.index); script.compile (@config.mainResponder.callbacks.addMessage.index)}; if not defined (config.mainResponder.callbacks.editMessage.index) { script.newScriptObject ("mainResponder.search.client.addMessageCallback (adrEditedMsg)", @config.mainResponder.callbacks.editMessage.index); script.compile (@config.mainResponder.callbacks.editMessage.index)}; ÇAdd security callback if not defined (config.mainResponder.callbacks.controlAccess.blockByIP) { //AR 11/04/1999 script.newScriptObject ("mainResponder.security.blockHttpByIP ()", @config.mainResponder.callbacks.controlAccess.blockByIP)}; ÇAdd pathEvaluation callback for the Admin site if not defined (config.mainresponder.callbacks.pathEvaluation) { //JES 8/18/02 new (tableType, @config.mainresponder.callbacks.pathEvaluation)}; if not defined (config.mainresponder.callbacks.pathEvaluation.frontierAdminSite) { //JES 8/18/02 config.mainresponder.callbacks.pathEvaluation.frontierAdminSite = @mainResponder.adminSite.callbacks.pathEvaluation}}; bundle { //config.mainresponder.data suretable (@config.mainresponder.data); };Çsuretable (@config.mainresponder.data.searchQueue) bundle { //config.mainresponder.domains suretable (@config.mainresponder.domains); if sizeof (config.mainresponder.domains) == 0 { config.mainresponder.domains.default = Frontier.getSubFolder ("/www/")}}; bundle { //config.mainresponder.globals suretable (@config.mainresponder.globals); if not defined (config.mainresponder.globals.allowDirectoryListings) { //PBS 11/19/99: default is now false config.mainresponder.globals.allowDirectoryListings = false}; if not defined (config.mainresponder.globals.allowScriptListings) { config.mainresponder.globals.allowScriptListings = false}; if not defined (config.mainresponder.globals.allowScriptsToRun) { config.mainresponder.globals.allowScriptsToRun = false}; if not defined (config.mainresponder.globals.defaultDirectoryItems) { config.mainresponder.globals.defaultDirectoryItems = {"default.html", "default", "index.html", "index"}}; if not defined (config.mainresponder.globals.defaultMembershipGroup) { config.mainresponder.globals.defaultMembershipGroup = "default"}; if not defined (config.mainresponder.globals.flRender) { config.mainresponder.globals.flRender = false}; if not defined (config.mainresponder.globals.flRenderingCache) { config.mainresponder.globals.flRenderingCache = false}}; bundle { //config.mainresponder.search suretable (@config.mainresponder.search); if not defined (config.mainresponder.search.domain) { config.mainresponder.search.domain = "127.0.0.1"}; if not defined (config.mainresponder.search.port) { config.mainresponder.search.port = 80}; if not defined (config.mainresponder.search.addToIndex) { config.mainresponder.search.addToIndex = "mainResponder.search.index"}; if not defined (config.mainresponder.search.restartIndex) { config.mainresponder.search.restartIndex = "mainResponder.search.restartIndex"}; if not defined (config.mainresponder.search.sites) { suretable (@config.mainresponder.search.sites)}; if not defined (config.mainResponder.search.prefs) { new (tableType, @config.mainResponder.search.prefs)}; if not defined (config.mainResponder.search.prefs.flLogEnabled) { config.mainResponder.search.prefs.flLogEnabled = false}; if not defined (config.mainResponder.search.prefs.flLogSearches) { config.mainResponder.search.prefs.flLogSearches = true}; if not defined (config.mainResponder.search.prefs.flLogIndex) { config.mainResponder.search.prefs.flLogIndex = true}; if not defined (config.mainResponder.search.prefs.flLogNoIndex) { config.mainResponder.search.prefs.flLogNoIndex = true}; if not defined (config.mainResponder.search.prefs.flStoreFullText) { config.mainResponder.search.prefs.flStoreFullText = false}; if not defined (config.mainResponder.search.prefs.minutesBetweenIndexes) { config.mainResponder.search.prefs.minutesBetweenIndexes = 60}; if not defined (config.mainResponder.search.prefs.hoursToCacheSearchResults) { config.mainResponder.search.prefs.hoursToCacheSearchResults = 24}}; bundle { //config.mainresponder.stats if not defined (config.mainResponder.stats) { new (tabletype, @config.mainResponder.stats)}; if not defined (config.mainResponder.stats.ctDiscussionGroupReads) { config.mainResponder.stats.ctDiscussionGroupReads = 0}}; bundle { // config.mainresponder.sites suretable (@config.mainresponder.sites); if not (defined (config.mainresponder.sites.resources)) { config.mainresponder.sites.resources = @mainResponder.resources}}; bundle { //port 5335 listener if not defined (user.inetd.config.http2) { user.inetd.config.http2 = user.inetd.config.http; user.inetd.config.http2.port = 5336; if user.inetd.config.http2.startup { try { inetd.startOne (@user.inetd.config.http2)}}}}; try { //register admin site callbacks if not defined (user.rootUpdates.callbacks) { rootUpdates.init ()}; if not defined (user.rootUpdates.callbacks.afterInstallPart.mainResponder) { user.rootUpdates.callbacks.afterInstallPart.mainResponder = @mainResponder.adminSite.callbacks.logRootUpdate}}; bundle { //miscellaneous clean-up if not defined (system.environment.isRadio) { system.environment.isRadio = false}}; Çbundle //hook in to user.scheduler Çif not defined (user.scheduler.everyMinute.nirvanaServer) Çuser.scheduler.everyMinute.nirvanaServer = @mainresponder.background.everyminute Çif not defined (user.scheduler.hourly.nirvanaServer) Çuser.scheduler.hourly.nirvanaServer = @mainresponder.background.everyHour Çif not defined (user.scheduler.overnight.nirvanaServer) Çuser.scheduler.overnight.nirvanaServer = @mainresponder.background.everynight return (@config.mainResponder)}; Çbundle //test code Çlocal (ticks = clock.ticks ()) Çfor i = 1 to 100 Çinit () Çdialog.notify ((double (clock.ticks ()) - ticks) / 60 + " secs.") \ No newline at end of file |
|
From: creedon <icr...@us...> - 2005-12-21 19:19:14
|
Update of /cvsroot/frontierkernel/Frontier/Common/source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13895 Modified Files: filedialog.c Log Message: minor tweak in the sfdialog function in regards to the getafile function, sfgetfileverb case follows style of sfgetfolderverb case just below Index: filedialog.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/filedialog.c,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** filedialog.c 20 Dec 2005 22:24:44 -0000 1.8 --- filedialog.c 21 Dec 2005 19:19:04 -0000 1.9 *************** *** 570,586 **** case sfgetfileverb: ! #if TARGET_API_MAC_CARBON == 1 ! anErr = getafile (bsprompt, filetypes, &sfdata.sfreply, filecreator); ! #else ! CustomGetFile ( ! knowntypesfilterUPP, ! cttypes, ! types, ! &sfdata.sfreply, ! sfgetfileid, ! pt, ! sfprompthookUPP, ! nil, nil, nil, ! &sfdata); #endif break; --- 570,587 ---- case sfgetfileverb: ! if (gCanUseNavServ) ! anErr = getafile (bsprompt, filetypes, &sfdata.sfreply, filecreator); ! #if !TARGET_API_MAC_CARBON ! else ! CustomGetFile ( ! knowntypesfilterUPP, ! cttypes, ! types, ! &sfdata.sfreply, ! sfgetfileid, ! pt, ! sfprompthookUPP, ! nil, nil, nil, ! &sfdata); #endif break; |
|
From: Karsten W. <kar...@us...> - 2005-12-20 22:34:38
|
Update of /cvsroot/frontierkernel/Frontier/Common/source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21380 Modified Files: zoom.c Log Message: disabling zoomrects on os9 Index: zoom.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/zoom.c,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** zoom.c 11 Jan 2005 22:48:12 -0000 1.4 --- zoom.c 20 Dec 2005 22:34:29 -0000 1.5 *************** *** 116,124 **** //This stuff isn't called in the PPC OT version CGrafPtr deskport; ! #if ACCESSOR_CALLS_ARE_FUNCTIONS == 1 deskport = CreateNewPort(); ! #else deskport = NewPtr(sizeof(CGrafPort)); ! #endif --- 116,127 ---- //This stuff isn't called in the PPC OT version CGrafPtr deskport; ! ! ! return; // kw - 2005-12-20 - killing zoomrects ! #if ACCESSOR_CALLS_ARE_FUNCTIONS == 1 deskport = CreateNewPort(); ! #else deskport = NewPtr(sizeof(CGrafPort)); ! #endif |
|
From: Karsten W. <kar...@us...> - 2005-12-20 22:33:16
|
Update of /cvsroot/frontierkernel/Frontier/Common/source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21121 Modified Files: shellmouse.c Log Message: reenabling os9 compilation Index: shellmouse.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/shellmouse.c,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** shellmouse.c 1 Oct 2005 17:36:35 -0000 1.5 --- shellmouse.c 20 Dec 2005 22:33:02 -0000 1.6 *************** *** 405,410 **** case inMenuBar: shellupdateopenrecentmenu (); /* 2005-09-25 creedon */ ! shellupdatemenus (); /*be sure the menus are properly checked and highlighted*/ --- 405,414 ---- case inMenuBar: + #if TARGET_API_MAC_CARBON == 1 + shellupdateopenrecentmenu (); /* 2005-09-25 creedon */ ! ! #endif ! shellupdatemenus (); /*be sure the menus are properly checked and highlighted*/ |
|
From: Karsten W. <kar...@us...> - 2005-12-20 22:31:59
|
Update of /cvsroot/frontierkernel/Frontier/Common/source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20912 Modified Files: resources.c Log Message: reenabling os9 compilation Index: resources.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/resources.c,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** resources.c 7 Sep 2005 17:45:53 -0000 1.5 --- resources.c 20 Dec 2005 22:31:51 -0000 1.6 *************** *** 141,145 **** boolean openresourcefile (const tyfilespec *fs, short *rnum, short forktype) { #ifdef MACVERSION - /* 2005-09-02 creedon: added support for fork parameter, see resources.c: openresourcefile and pushresourcefile --- 141,144 ---- *************** *** 147,155 **** short resourcerefnum = -1; HFSUniStr255 fork; FSRef myRef; ! SetResLoad (false); FSpMakeFSRef (fs, &myRef); --- 146,158 ---- short resourcerefnum = -1; + #if TARGET_API_MAC_CARBON == 1 HFSUniStr255 fork; FSRef myRef; ! #endif ! SetResLoad (false); + #if TARGET_API_MAC_CARBON == 1 + FSpMakeFSRef (fs, &myRef); *************** *** 165,178 **** /* ! 2005-09-01 creedon - in my reading about the FSOpenResourceFile function someone mentioned that it might not deal well with corrupted resources ! and that dropping back to FSpOpenResFile seemed to do the trick. i've not done that here but could be tried if the problem is real and manifests. */ FSOpenResourceFile (&myRef, fork.length, fork.unicode, fsRdWrPerm, &resourcerefnum); ! SetResLoad (true); ! if (ResError () == -39) { /*eof error, file has no resource fork, create one*/ OSErr errcode = FSCreateResourceFork (&myRef, fork.length, fork.unicode, 0); --- 168,191 ---- /* ! 2005-09-01 creedon - in my reading about the FSOpenResourceFile function someone mentioned ! that it might not deal well with corrupted resources and that dropping back to FSpOpenResFile ! seemed to do the trick. i've not done that here but could be tried if the problem is real ! and manifests. */ FSOpenResourceFile (&myRef, fork.length, fork.unicode, fsRdWrPerm, &resourcerefnum); ! ! #else ! ! resourcerefnum = FSpOpenResFile (fs, fsRdWrPerm); ! ! #endif ! SetResLoad (true); ! if (ResError () == -39) { /*eof error, file has no resource fork, create one*/ + #if ((TARGET_API_MAC_CARBON == 1) && !defined(__MWERKS__)) + OSErr errcode = FSCreateResourceFork (&myRef, fork.length, fork.unicode, 0); *************** *** 181,186 **** FSOpenResourceFile (&myRef, fork.length, fork.unicode, fsRdWrPerm, &resourcerefnum); } ! if (resourcerefnum != -1) /*it's open*/ { --- 194,208 ---- FSOpenResourceFile (&myRef, fork.length, fork.unicode, fsRdWrPerm, &resourcerefnum); + #else + HCreateResFile ((*fs).vRefNum, (*fs).parID, (StringPtr) (*fs).name); + + if (ResError () != noErr) /*failed to create resource fork*/ + goto error; + + resourcerefnum = FSpOpenResFile (fs, fsRdWrPerm); + + #endif } ! if (resourcerefnum != -1) /*it's open*/ { *************** *** 192,205 **** } ! error: ! setoserrorparam ((ptrstring) (*fs).name); /*in case error message takes a filename parameter*/ ! oserror (ResError ()); ! closeresourcefile (resourcerefnum); /*checks for -1*/ ! *rnum = -1; ! #endif return (false); } /*openresourcefile*/ --- 214,228 ---- } ! error: ! setoserrorparam ((ptrstring) (*fs).name); /*in case error message takes a filename parameter*/ ! oserror (ResError ()); ! closeresourcefile (resourcerefnum); /*checks for -1*/ ! *rnum = -1; ! ! #endif // MACVERSION return (false); } /*openresourcefile*/ *************** *** 590,595 **** register OSErr errcode; FSRef myRef; ! errcode = FSpMakeFSRef (fs, &myRef); --- 613,622 ---- register OSErr errcode; + #if TARGET_API_MAC_CARBON == 1 FSRef myRef; ! #endif ! ! #if TARGET_API_MAC_CARBON == 1 ! errcode = FSpMakeFSRef (fs, &myRef); *************** *** 607,611 **** break; } ! oldrnum = CurResFile (); --- 634,638 ---- break; } ! #endif oldrnum = CurResFile (); *************** *** 613,630 **** /* ! 2005-08-31 creedon - in my reading about the FSOpenResourceFile function someone mentioned that it might not deal well with corrupted resources ! and that dropping back to FSpOpenResFile seemed to do the trick. i've not done that here but could be tried if the problem is real and manifests. */ ! errcode = FSOpenResourceFile (&myRef, fork.length, fork.unicode, permission, &newrnum); ! SetResLoad (true); ! if (errcode != -1) /*opened OK*/ return (true); ! errcode = ResError (); } if (errcode != eofErr) { /*don't want an alert if there isn't a resource fork*/ --- 640,671 ---- /* ! 2005-08-31 creedon - in my reading about the FSOpenResourceFile function someone mentioned ! that it might not deal well with corrupted resources and that dropping back to FSpOpenResFile ! seemed to do the trick. i've not done that here but could be tried if the problem is real ! and manifests. */ ! ! #if TARGET_API_MAC_CARBON == 1 ! errcode = FSOpenResourceFile (&myRef, fork.length, fork.unicode, permission, &newrnum); ! #else ! // kw 2005-12-17 - OS9 compliance ! newrnum = FSpOpenResFile (fs, permission); ! ! #endif SetResLoad (true); ! ! #if TARGET_API_MAC_CARBON == 1 if (errcode != -1) /*opened OK*/ return (true); ! #else ! if (newrnum != -1) /*opened OK*/ ! return (true); ! #endif errcode = ResError (); + #if TARGET_API_MAC_CARBON == 1 } + #endif if (errcode != eofErr) { /*don't want an alert if there isn't a resource fork*/ *************** *** 976,980 **** Handle h; register boolean fl = false; ! #define validattrs (resSysHeap | resPurgeable | resLocked | resProtected | resPreload) if (!pushresourcefilereadwrite (fs, forktype)) --- 1017,1022 ---- Handle h; register boolean fl = false; ! short validattrs = (resSysHeap | resPurgeable | resLocked | resProtected | resPreload); ! // #define validattrs (resSysHeap | resPurgeable | resLocked | resProtected | resPreload) if (!pushresourcefilereadwrite (fs, forktype)) |
|
From: Karsten W. <kar...@us...> - 2005-12-20 22:30:45
|
Update of /cvsroot/frontierkernel/Frontier/Common/source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20660 Modified Files: menu.c Log Message: reenabling os9 compilation Index: menu.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/menu.c,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** menu.c 2 Oct 2005 18:19:29 -0000 1.5 --- menu.c 20 Dec 2005 22:30:35 -0000 1.6 *************** *** 1679,1685 **** boolean fl = true; ! #ifdef MACVERSION ! fl = DeleteMenuItems (hmenu, firstitem, itemcount) == noErr; ! #endif #ifdef WIN95VERSION --- 1679,1685 ---- boolean fl = true; ! #ifdef MACVERSION ! fl = DeleteMenuItems (hmenu, firstitem, itemcount) == noErr; ! #endif #ifdef WIN95VERSION *************** *** 1708,1723 **** */ ! #ifdef MACVERSION ! DisableAllMenuItems (hmenu); ! #endif ! #ifdef WIN95VERSION ! register short ct = countmenuitems (hmenu); ! register short i; ! ! for (i = ct; i > 0; i--) ! disablemenuitem (hmenu, i); ! ! #endif } /* disableallmenuitems */ --- 1708,1723 ---- */ ! #ifdef MACVERSION ! DisableAllMenuItems (hmenu); ! #endif ! #ifdef WIN95VERSION ! register short ct = countmenuitems (hmenu); ! register short i; ! ! for (i = ct; i > 0; i--) ! disablemenuitem (hmenu, i); ! ! #endif } /* disableallmenuitems */ |
|
From: Karsten W. <kar...@us...> - 2005-12-20 22:26:50
|
Update of /cvsroot/frontierkernel/Frontier/Common/source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19803 Modified Files: findinfile.c Log Message: compiler warning rename Index: findinfile.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/findinfile.c,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** findinfile.c 11 Jan 2005 22:48:05 -0000 1.4 --- findinfile.c 20 Dec 2005 22:26:41 -0000 1.5 *************** *** 252,256 **** ! boolean fiffindinfile (const tyfilespec *fs, bigstring pattern, long *index) { /* --- 252,256 ---- ! boolean fiffindinfile (const tyfilespec *fs, bigstring pattern, long *idx) { /* *************** *** 274,278 **** hdlopenfile hfile = nil; ! *index = -1; /*indicate an error*/ lenpattern = stringlength (pattern); --- 274,278 ---- hdlopenfile hfile = nil; ! *idx = -1; /*indicate an error*/ lenpattern = stringlength (pattern); *************** *** 340,344 **** } /*for*/ ! *index = fpos + (pbuffer - *hbuffer - 1); flreturned = true; --- 340,344 ---- } /*for*/ ! *idx = fpos + (pbuffer - *hbuffer - 1); flreturned = true; |
|
From: Karsten W. <kar...@us...> - 2005-12-20 22:25:58
|
Update of /cvsroot/frontierkernel/Frontier/Common/source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19613 Modified Files: fileverbs.c Log Message: compiler warning rename Index: fileverbs.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/fileverbs.c,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** fileverbs.c 7 Oct 2005 04:07:42 -0000 1.7 --- fileverbs.c 20 Dec 2005 22:25:50 -0000 1.8 *************** *** 645,649 **** static boolean gettypelistvalue (hdltreenode hparam1, short pnum, tysftypelist *filetypes, ptrsftypelist *x) { ! /* 2.1b4 dmb: new feature: accept a list of filetype for sfgetfile --- 645,649 ---- static boolean gettypelistvalue (hdltreenode hparam1, short pnum, tysftypelist *filetypes, ptrsftypelist *x) { ! #pragma unused(pnum) /* 2.1b4 dmb: new feature: accept a list of filetype for sfgetfile *************** *** 2122,2126 **** tyfilespec fs; bigstring pattern; ! long index; if (!getpathvalue (hparam1, 1, &fs)) --- 2122,2126 ---- tyfilespec fs; bigstring pattern; ! long idx; if (!getpathvalue (hparam1, 1, &fs)) *************** *** 2132,2142 **** return (false); ! fiffindinfile (&fs, pattern, &index); /* ! setlongvalue (index, v); */ ! setbooleanvalue ((boolean) (index >= 0), v); return (true); --- 2132,2142 ---- return (false); ! fiffindinfile (&fs, pattern, &idx); /* ! setlongvalue (idx, v); */ ! setbooleanvalue ((boolean) (idx >= 0), v); return (true); |
|
From: Karsten W. <kar...@us...> - 2005-12-20 22:24:56
|
Update of /cvsroot/frontierkernel/Frontier/Common/source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19437 Modified Files: filedialog.c Log Message: reenabling os9 compilation Index: filedialog.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/filedialog.c,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** filedialog.c 7 Oct 2005 04:07:42 -0000 1.7 --- filedialog.c 20 Dec 2005 22:24:44 -0000 1.8 *************** *** 30,34 **** #ifdef MACVERSION ! #include "mac.h" #endif --- 30,34 ---- #ifdef MACVERSION ! # include "mac.h" #endif *************** *** 84,98 **** 6/11/93 dmb: added for System 7 Standard File */ ! #ifdef flcomponent long curA5; ! #endif if (GetWRefCon (pdialog) != sfMainDialogRefCon) return (item); ! #ifdef flcomponent curA5 = SetUpAppA5 (); ! #endif if (item == sfHookFirstCall) { --- 84,98 ---- 6/11/93 dmb: added for System 7 Standard File */ ! #ifdef flcomponent long curA5; ! #endif if (GetWRefCon (pdialog) != sfMainDialogRefCon) return (item); ! #ifdef flcomponent curA5 = SetUpAppA5 (); ! #endif if (item == sfHookFirstCall) { *************** *** 102,110 **** } ! #ifdef flcomponent RestoreA5 (curA5); ! #endif return (item); --- 102,110 ---- } ! #ifdef flcomponent RestoreA5 (curA5); ! #endif return (item); *************** *** 117,131 **** 6/11/93 dmb: recoded to System 7 Standard File */ ! #ifdef flcomponent long curA5; ! #endif if (GetWRefCon (pdialog) != sfMainDialogRefCon) return (item); ! #ifdef flcomponent curA5 = SetUpAppA5 (); ! #endif if (item == sfHookFirstCall) { --- 117,132 ---- 6/11/93 dmb: recoded to System 7 Standard File */ ! #ifdef flcomponent long curA5; ! #endif ! if (GetWRefCon (pdialog) != sfMainDialogRefCon) return (item); ! #ifdef flcomponent curA5 = SetUpAppA5 (); ! #endif if (item == sfHookFirstCall) { *************** *** 136,147 **** //Code change by Timothy Paustian Sunday, April 30, 2000 9:20:45 PM //Changed to Opaque call for Carbon ! #if ACCESSOR_CALLS_ARE_FUNCTIONS == 1 dialogPort = GetDialogPort(pdialog); GetPortBounds(dialogPort, &rdialog); ! #else //old code ! #pragma unused(dialogPort) rdialog = (*pdialog).portRect; ! #endif if (isemptystring ((*pdata).sfprompt)) { --- 137,148 ---- //Code change by Timothy Paustian Sunday, April 30, 2000 9:20:45 PM //Changed to Opaque call for Carbon ! #if ACCESSOR_CALLS_ARE_FUNCTIONS == 1 dialogPort = GetDialogPort(pdialog); GetPortBounds(dialogPort, &rdialog); ! #else //old code ! #pragma unused(dialogPort) rdialog = (*pdialog).portRect; ! #endif if (isemptystring ((*pdata).sfprompt)) { *************** *** 165,173 **** } ! #ifdef flcomponent RestoreA5 (curA5); ! #endif return (item); --- 166,174 ---- } ! #ifdef flcomponent RestoreA5 (curA5); ! #endif return (item); *************** *** 190,205 **** bigstring bs; ! #ifdef flcomponent long curA5; ! #endif if (GetWRefCon (pdialog) != sfMainDialogRefCon) return (item); ! #ifdef flcomponent curA5 = SetUpAppA5 (); ! #endif item = sfprompthook (item, pdialog, pdata); --- 191,206 ---- bigstring bs; ! #ifdef flcomponent long curA5; ! #endif if (GetWRefCon (pdialog) != sfMainDialogRefCon) return (item); ! #ifdef flcomponent curA5 = SetUpAppA5 (); ! #endif item = sfprompthook (item, pdialog, pdata); *************** *** 297,311 **** button like Frontier 1.0. */ ! #ifdef flcomponent long curA5; ! #endif if (GetWRefCon (pdialog) != sfMainDialogRefCon) return (item); ! #ifdef flcomponent curA5 = SetUpAppA5 (); ! #endif item = sfprompthook (item, pdialog, pdata); --- 298,313 ---- button like Frontier 1.0. */ ! #ifdef flcomponent long curA5; ! #endif ! if (GetWRefCon (pdialog) != sfMainDialogRefCon) return (item); ! #ifdef flcomponent curA5 = SetUpAppA5 (); ! #endif item = sfprompthook (item, pdialog, pdata); *************** *** 356,364 **** } ! #ifdef flcomponent RestoreA5 (curA5); ! #endif return (item); --- 358,366 ---- } ! #ifdef flcomponent RestoreA5 (curA5); ! #endif return (item); *************** *** 367,372 **** static pascal Boolean onlyfoldersfilter (ParmBlkPtr pb, tysfdata *pdata) { ! ! #pragma unused (pdata) /* --- 369,373 ---- static pascal Boolean onlyfoldersfilter (ParmBlkPtr pb, tysfdata *pdata) { ! #pragma unused (pdata) /* *************** *** 500,511 **** FSSpec *fs = &sfdata.sfreply.sfFile; OSErr anErr = noErr; ! #if !TARGET_API_MAC_CARBON ! Point pt = {-1, -1}; ! short cttypes = -1; ! OSType *types = nil; ! #endif ! #ifdef flcomponent long appA5; ! #endif //move the switch statement to below because it's smarter to call it there when using --- 501,514 ---- FSSpec *fs = &sfdata.sfreply.sfFile; OSErr anErr = noErr; ! ! #if !TARGET_API_MAC_CARBON ! Point pt = {-1, -1}; ! short cttypes = -1; ! OSType *types = nil; ! #endif ! ! #ifdef flcomponent long appA5; ! #endif //move the switch statement to below because it's smarter to call it there when using *************** *** 538,546 **** shellactivate (); ! #ifdef flcomponent appA5 = SetUpCurA5 (); /*for system*/ ! #endif switch (sfverb) { --- 541,549 ---- shellactivate (); ! #ifdef flcomponent appA5 = SetUpCurA5 (); /*for system*/ ! #endif switch (sfverb) { *************** *** 550,570 **** anErr = TimsPutFile(bsprompt, (*fs).name, &sfdata.sfreply); } ! #if TARGET_API_MAC_CARBON != 1 //we can get away with this because nav services is always there in OSX. else ! CustomPutFile (bsprompt, (*fs).name, &sfdata.sfreply, sfputfileid, pt, ! sfputfilehookUPP, nil, nil, nil, &sfdata); ! #endif break; case sfgetfileverb: ! if(gCanUseNavServ) ! anErr = getafile (bsprompt, filetypes, &sfdata.sfreply, filecreator); ! #if !TARGET_API_MAC_CARBON ! else ! CustomGetFile (knowntypesfilterUPP, cttypes, types, &sfdata.sfreply, sfgetfileid, pt, ! sfprompthookUPP, nil, nil, nil, &sfdata); ! #endif break; --- 553,587 ---- anErr = TimsPutFile(bsprompt, (*fs).name, &sfdata.sfreply); } ! #if TARGET_API_MAC_CARBON != 1 //we can get away with this because nav services is always there in OSX. else ! CustomPutFile ( ! bsprompt, ! (*fs).name, ! &sfdata.sfreply, ! sfputfileid, ! pt, ! sfputfilehookUPP, ! nil, nil, nil, ! &sfdata); ! #endif break; case sfgetfileverb: ! #if TARGET_API_MAC_CARBON == 1 ! anErr = getafile (bsprompt, filetypes, &sfdata.sfreply, filecreator); ! #else ! CustomGetFile ( ! knowntypesfilterUPP, ! cttypes, ! types, ! &sfdata.sfreply, ! sfgetfileid, ! pt, ! sfprompthookUPP, ! nil, nil, nil, ! &sfdata); ! #endif break; *************** *** 572,580 **** if(gCanUseNavServ) anErr = TimsGetFolderOrVolume(bsprompt, sfgetfolderid, &sfdata.sfreply); ! #if !TARGET_API_MAC_CARBON else CustomGetFile (onlyfoldersfilterUPP, cttypes, types, &sfdata.sfreply, sfgetfolderid, pt, sffolderhookUPP, nil, nil, nil, &sfdata); ! #endif break; --- 589,597 ---- if(gCanUseNavServ) anErr = TimsGetFolderOrVolume(bsprompt, sfgetfolderid, &sfdata.sfreply); ! #if !TARGET_API_MAC_CARBON else CustomGetFile (onlyfoldersfilterUPP, cttypes, types, &sfdata.sfreply, sfgetfolderid, pt, sffolderhookUPP, nil, nil, nil, &sfdata); ! #endif break; *************** *** 582,590 **** if(gCanUseNavServ) anErr = TimsGetFolderOrVolume(bsprompt, sfgetdiskid, &sfdata.sfreply); ! #if !TARGET_API_MAC_CARBON else CustomGetFile (nil, cttypes, types, &sfdata.sfreply, sfgetdiskid, pt, sfdiskhookUPP, nil, nil, nil, &sfdata); ! #endif break; --- 599,607 ---- if(gCanUseNavServ) anErr = TimsGetFolderOrVolume(bsprompt, sfgetdiskid, &sfdata.sfreply); ! #if !TARGET_API_MAC_CARBON else CustomGetFile (nil, cttypes, types, &sfdata.sfreply, sfgetdiskid, pt, sfdiskhookUPP, nil, nil, nil, &sfdata); ! #endif break; *************** *** 605,613 **** // sfhook, nil, nil, nil, &sfdata); ! #ifdef flcomponent RestoreA5 (appA5); ! #endif //if the user canceled return false //I know that oserror can handle this, but lets make it --- 622,630 ---- // sfhook, nil, nil, nil, &sfdata); ! #ifdef flcomponent RestoreA5 (appA5); ! #endif //if the user canceled return false //I know that oserror can handle this, but lets make it *************** *** 654,659 **** boolean sfdialog (tysfverb sfverb, bigstring bsprompt, ptrsftypelist filetypes, tyfilespec *fspec, OSType filecreator) { ! ! #pragma unused (filecreator) /* --- 671,675 ---- boolean sfdialog (tysfverb sfverb, bigstring bsprompt, ptrsftypelist filetypes, tyfilespec *fspec, OSType filecreator) { ! #pragma unused (filecreator) /* *************** *** 684,687 **** --- 700,704 ---- static LPMALLOC pMalloc = NULL; + OpenFileName.lStructSize = sizeof(OPENFILENAME); OpenFileName.hwndOwner = shellframewindow; *************** *** 1207,1223 **** NavCallBackUserData callBackUD) { ! #pragma unused(callBackUD) ! if (callBackSelector == kNavCBEvent) ! { ! if(((callBackParms->eventData) ! .eventDataParms).event->what == updateEvt) ! { ! //I was having a crash due to getting the window ptr outside the switch statement. ! // This now works. ! //10/30/00 Timothy Paustian ! WindowPtr window = (WindowPtr)(((callBackParms->eventData).eventDataParms).event)->message; ! shellupdatenow(window); ! } ! } } --- 1224,1239 ---- NavCallBackUserData callBackUD) { ! #pragma unused(callBackUD) ! if (callBackSelector == kNavCBEvent) ! { ! if( ((callBackParms->eventData).eventDataParms).event->what == updateEvt) ! { ! //I was having a crash due to getting the window ptr outside the switch statement. ! // This now works. ! //10/30/00 Timothy Paustian ! WindowPtr window = (WindowPtr)(((callBackParms->eventData).eventDataParms).event)->message; ! shellupdatenow(window); ! } ! } } |
|
From: Karsten W. <kar...@us...> - 2005-12-20 22:24:07
|
Update of /cvsroot/frontierkernel/Frontier/Common/source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19331 Modified Files: fileops.c Log Message: compiler warning rename Index: fileops.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/fileops.c,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** fileops.c 24 Jan 2005 22:52:21 -0000 1.6 --- fileops.c 20 Dec 2005 22:23:54 -0000 1.7 *************** *** 417,433 **** /*DW 9/7/93: determine if it's a network volume*/ { ! HParamBlockRec pb; GetVolParmsInfoBuffer buffer; OSErr ec; ! clearbytes (&pb, sizeof (pb)); /*init all fields to zero*/ ! pb.ioParam.ioVRefNum = (*info).vnum; ! pb.ioParam.ioBuffer = (Ptr) &buffer; ! pb.ioParam.ioReqCount = sizeof (buffer); ! ec = PBHGetVolParmsSync (&pb); if (ec == noErr) --- 417,433 ---- /*DW 9/7/93: determine if it's a network volume*/ { ! HParamBlockRec lpb; GetVolParmsInfoBuffer buffer; OSErr ec; ! clearbytes (&lpb, sizeof (lpb)); /*init all fields to zero*/ ! lpb.ioParam.ioVRefNum = (*info).vnum; ! lpb.ioParam.ioBuffer = (Ptr) &buffer; ! lpb.ioParam.ioReqCount = sizeof (buffer); ! ec = PBHGetVolParmsSync (&lpb); if (ec == noErr) *************** *** 1977,1988 **** #ifdef MACVERSION boolean ejectvol (const tyfilespec *fs) { ! /* 6/x/91 mao */ - #if TARGET_API_MAC_CARBON - return false; - #else tyvolinfo volinfo; --- 1977,1989 ---- #ifdef MACVERSION boolean ejectvol (const tyfilespec *fs) { ! #if TARGET_API_MAC_CARBON ! #pragma unused (fs) ! return false; ! #else ! /* 6/x/91 mao */ tyvolinfo volinfo; *************** *** 2242,2252 **** boolean lockvolume (const tyfilespec *fs, boolean fllock) { ! #ifdef MACVERSION //Code change by Timothy Paustian Sunday, June 25, 2000 9:19:49 PM //can't lock volumes in carbon. - #if TARGET_API_MAC_CARBON == 1 return false; ! #else ! short vnum; QHdrPtr vqtop; --- 2243,2253 ---- boolean lockvolume (const tyfilespec *fs, boolean fllock) { ! #if TARGET_API_MAC_CARBON ! #pragma unused (fs, fllock) //Code change by Timothy Paustian Sunday, June 25, 2000 9:19:49 PM //can't lock volumes in carbon. return false; ! #endif ! #if (defined(MACVERSION) && TARGET_API_MAC_CARBON != 1) short vnum; QHdrPtr vqtop; *************** *** 2281,2285 **** } - #endif//end non-carbon code #endif #ifdef WIN95VERSION --- 2282,2285 ---- |
|
From: Karsten W. <kar...@us...> - 2005-12-20 22:17:22
|
Update of /cvsroot/frontierkernel/Frontier/Common/source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17520 Modified Files: filemp3.c Log Message: compiler warning fix Index: filemp3.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/filemp3.c,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** filemp3.c 11 Jan 2005 22:48:05 -0000 1.3 --- filemp3.c 20 Dec 2005 22:17:15 -0000 1.4 *************** *** 347,351 **** static boolean getxingheader (tympeginfostruct *info, Handle h, long ix, long *ctframes, long *ctbytes) { ! long flags; --- 347,352 ---- static boolean getxingheader (tympeginfostruct *info, Handle h, long ix, long *ctframes, long *ctbytes) { ! #pragma unused (info) ! long flags; |
|
From: Karsten W. <kar...@us...> - 2005-12-20 22:12:17
|
Update of /cvsroot/frontierkernel/Frontier/Common/source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16301 Modified Files: appletglue.c Log Message: compiler warning rename Index: appletglue.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/appletglue.c,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** appletglue.c 11 Jan 2005 22:48:04 -0000 1.3 --- appletglue.c 20 Dec 2005 22:12:08 -0000 1.4 *************** *** 41,45 **** boolean rectlessthan (Rect r1, Rect r2); boolean unicaseequalstrings (void *pvoid1, void *pvoid2); ! boolean oldclutconverter (short index, RGBColor *rgb); boolean emptyrect (Rect r); boolean pushhandleonhandle (Handle hsource, Handle hdest); --- 41,47 ---- boolean rectlessthan (Rect r1, Rect r2); boolean unicaseequalstrings (void *pvoid1, void *pvoid2); ! ! // kw - 2005-12-15 - compiler warning rename ! boolean oldclutconverter (short idx, RGBColor *rgb); boolean emptyrect (Rect r); boolean pushhandleonhandle (Handle hsource, Handle hdest); *************** *** 163,167 **** } /*getclut*/ ! boolean oldclutconverter (short index, RGBColor *rgb) { CTabHandle hdlctab; --- 165,169 ---- } /*getclut*/ ! boolean oldclutconverter (short idx, RGBColor *rgb) { CTabHandle hdlctab; *************** *** 169,173 **** getclut (128, &hdlctab); ! *rgb = (**hdlctab).ctTable [index].rgb; return (true); --- 171,175 ---- getclut (128, &hdlctab); ! *rgb = (**hdlctab).ctTable [idx].rgb; return (true); *************** *** 230,234 **** boolean findrunningapp (OSType id, void *info) { ! return (findrunningapplication (&id, nil, nil)); } /*findrunningapp*/ --- 232,236 ---- boolean findrunningapp (OSType id, void *info) { ! #pragma unused(info) return (findrunningapplication (&id, nil, nil)); } /*findrunningapp*/ |
|
From: Karsten W. <kar...@us...> - 2005-12-20 22:10:20
|
Update of /cvsroot/frontierkernel/Frontier/Common/headers In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15965 Modified Files: process.h Log Message: warning parameter rename Index: process.h =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/headers/process.h,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** process.h 11 Jan 2005 22:48:02 -0000 1.3 --- process.h 20 Dec 2005 22:10:12 -0000 1.4 *************** *** 258,262 **** extern unsigned long processstackspace (void); ! extern boolean scheduleprocess (hdlprocessrecord hprocess, hdlprocessthread *newthread); extern void processscheduler (void); --- 258,262 ---- extern unsigned long processstackspace (void); ! extern boolean scheduleprocess (hdlprocessrecord hprocess, hdlprocessthread *pnewthread); extern void processscheduler (void); |
|
From: Karsten W. <kar...@us...> - 2005-12-20 22:04:14
|
Update of /cvsroot/frontierkernel/Frontier/build_GNU In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14622 Modified Files: Makefile Log Message: rename kernvelverbs Index: Makefile =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/build_GNU/Makefile,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Makefile 24 Jan 2005 04:20:03 -0000 1.3 --- Makefile 20 Dec 2005 22:04:06 -0000 1.4 *************** *** 1165,1169 **** $(SRCDIR)/Common/resources/Mac/ioaapp.r \ $(SRCDIR)/Common/resources/Mac/iowaruntime.r \ ! $(SRCDIR)/Common/resources/Mac/kernvelverbs.r \ $(SRCDIR)/Common/resources/Mac/lang.r \ $(SRCDIR)/Common/resources/Mac/opicons.r \ --- 1165,1169 ---- $(SRCDIR)/Common/resources/Mac/ioaapp.r \ $(SRCDIR)/Common/resources/Mac/iowaruntime.r \ ! $(SRCDIR)/Common/resources/Mac/kernelverbs.r \ $(SRCDIR)/Common/resources/Mac/lang.r \ $(SRCDIR)/Common/resources/Mac/opicons.r \ |
|
From: creedon <icr...@us...> - 2005-12-19 01:56:55
|
Update of /cvsroot/frontierkernel/Frontier/Common/source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9418 Modified Files: langhtml.c Log Message: end hr tag with space slash for compatibility with post HTML 4.01 standards Index: langhtml.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/langhtml.c,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** langhtml.c 1 Nov 2005 18:13:10 -0000 1.7 --- langhtml.c 19 Dec 2005 01:56:43 -0000 1.8 *************** *** 74,82 **** #define fldebugwebsite false ! #define str_separatorline "\x17<hr size=2 width=100%>\r" #define str_macroerror "\x20<b>[</b>Macro error: ^0<b>]</b>\r" #define str_mailto "\x1A<a href=\"mailto:^0\">^0</a>" #define str_hotlink "\x13<a href=\"^0\">^1</a>" ! #define str_pagebreak "\x05<p />" /* 2005-10-29 creedon - changed from <p> to <p /> compatibility with post HTML 4.01 standards */ #define str_startbold "\x03<b>" #define str_endbold "\x04</b>" --- 74,82 ---- #define fldebugwebsite false ! #define str_separatorline "\x17<hr size=2 width=100% />\r"/* 2005-12-18 creedon - end tag with space slash for compatibility with post HTML 4.01 standards */ #define str_macroerror "\x20<b>[</b>Macro error: ^0<b>]</b>\r" #define str_mailto "\x1A<a href=\"mailto:^0\">^0</a>" #define str_hotlink "\x13<a href=\"^0\">^1</a>" ! #define str_pagebreak "\x05<p />" /* 2005-10-29 creedon - changed from <p> to <p /> for compatibility with post HTML 4.01 standards */ #define str_startbold "\x03<b>" #define str_endbold "\x04</b>" |
|
From: Karsten W. <kar...@us...> - 2005-12-15 21:44:18
|
Update of /cvsroot/frontierkernel/Frontier/Common/source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23032 Modified Files: aeutils.c Log Message: empty binary string fix Index: aeutils.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/aeutils.c,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** aeutils.c 11 Jan 2005 22:48:04 -0000 1.4 --- aeutils.c 15 Dec 2005 21:44:05 -0000 1.5 *************** *** 47,50 **** --- 47,51 ---- len = AEGetDescDataSize (desc); + /* kw - 2005-12-12 - we should return at least a zero sized handle if (len < 1) { *************** *** 53,57 **** return (false); } ! if (!newclearhandle (len, h)) { --- 54,58 ---- return (false); } ! */ if (!newclearhandle (len, h)) { *************** *** 155,159 **** boolean datahandletostring (AEDesc *desc, bigstring bs) { ! /* PBS 03/14/02: get data from AEDesc's data handle as --- 156,160 ---- boolean datahandletostring (AEDesc *desc, bigstring bs) { ! /* PBS 03/14/02: get data from AEDesc's data handle as |
|
From: Karsten W. <kar...@us...> - 2005-12-15 21:43:03
|
Update of /cvsroot/frontierkernel/Frontier/Common/source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22823 Modified Files: langvalue.c Log Message: empty binary string fix Index: langvalue.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/langvalue.c,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** langvalue.c 13 Jan 2005 23:58:04 -0000 1.7 --- langvalue.c 15 Dec 2005 21:42:52 -0000 1.8 *************** *** 119,123 **** static boolean gettokenvisit (bigstring bsname, hdlhashnode hnode, tyvaluerecord val, ptrvoid refcon) { ! if (val.valuetype != tokenvaluetype) return (false); --- 119,123 ---- static boolean gettokenvisit (bigstring bsname, hdlhashnode hnode, tyvaluerecord val, ptrvoid refcon) { ! #pragma unused(bsname, hnode, refcon) if (val.valuetype != tokenvaluetype) return (false); *************** *** 594,597 **** --- 594,602 ---- memtodisklong (typeid); + // kw - 2005-12-12 filemaker empty string fix + // we need to be able to handle empty strings that arrive as a binary['utxt'] + if (x == nil) + newhandle(0, &x); + if (!insertinhandle (x, 0L, &typeid, sizeof (typeid))) { *************** *** 7654,7658 **** static boolean kernelerrorroutine (long scripterrorrefcon, long lnum, short charnum, hdlhashtable *htable, bigstring bsname) { ! /* display an error for a system script -- a handler, agent or startup script. --- 7659,7663 ---- static boolean kernelerrorroutine (long scripterrorrefcon, long lnum, short charnum, hdlhashtable *htable, bigstring bsname) { ! #pragma unused(lnum, charnum) /* display an error for a system script -- a handler, agent or startup script. *************** *** 8517,8521 **** static boolean langgethandlervisit (hdlhashtable intable, bigstring bs, hdlhashtable *htable) { ! return (langgethandlercode (intable, handlercode.htree, &handlercode.hcode, htable, &handlercode.hnode)); } /*langgethandlervisit*/ --- 8522,8526 ---- static boolean langgethandlervisit (hdlhashtable intable, bigstring bs, hdlhashtable *htable) { ! #pragma unused(bs) return (langgethandlercode (intable, handlercode.htree, &handlercode.hcode, htable, &handlercode.hnode)); } /*langgethandlervisit*/ |
|
From: Karsten W. <kar...@us...> - 2005-12-15 21:40:22
|
Update of /cvsroot/frontierkernel/Frontier/Common/source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22308 Modified Files: shellprint.c Log Message: reenabling OS9 compilation Index: shellprint.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/shellprint.c,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** shellprint.c 5 Dec 2005 20:33:56 -0000 1.5 --- shellprint.c 15 Dec 2005 21:40:10 -0000 1.6 *************** *** 178,182 **** { OSStatus theErr; ! if (nil == shellprintinfo.printhandle) { --- 178,183 ---- { OSStatus theErr; ! #if TARGET_API_MAC_CARBON == 1 ! if (nil == shellprintinfo.printhandle) { *************** *** 189,193 **** } } ! return(true); } --- 190,194 ---- } } ! #endif return(true); } *************** *** 199,203 **** OSStatus theErr; Boolean f; ! theErr = PMSessionDefaultPageFormat( shellprintinfo.printhandle, --- 200,206 ---- OSStatus theErr; Boolean f; ! ! #if TARGET_API_MAC_CARBON == 1 ! theErr = PMSessionDefaultPageFormat( shellprintinfo.printhandle, *************** *** 223,226 **** --- 226,231 ---- if(theErr != noErr) goto error; + + #endif return (true); *************** *** 238,242 **** { OSStatus theErr; ! theErr = PMCreatePageFormat(&shellprintinfo.pageformat); if(theErr != noErr || (shellprintinfo.pageformat == kPMNoPageFormat)) --- 243,248 ---- { OSStatus theErr; ! #if TARGET_API_MAC_CARBON == 1 ! theErr = PMCreatePageFormat(&shellprintinfo.pageformat); if(theErr != noErr || (shellprintinfo.pageformat == kPMNoPageFormat)) *************** *** 246,250 **** if(theErr != noErr) goto error; ! return (true); --- 252,257 ---- if(theErr != noErr) goto error; ! ! #endif return (true); |
|
From: creedon <icr...@us...> - 2005-12-12 02:05:35
|
Update of /cvsroot/frontierkernel/odbs/frontierRoot/system/verbs/apps/metaWeblog In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11176 Added Files: getCategories Log Message: This is specified by the RFC, but until now we didn't have a glue script for it. http://www.xmlrpc.com/metaWeblogApi --- NEW FILE: getCategories --- (This appears to be a binary file; contents omitted.) |