Compare commits

..

1718 Commits

Author SHA1 Message Date
fur%netscape.com
1c43d4984f This is a copy of regalloc_code2_BRANCH from Netscape's private repository,
as it existed in January of 1998.


git-svn-id: svn://10.0.0.236/branches/regalloc_code2_BRANCH@22571 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 16:12:08 +00:00
(no author)
cfe021ff88 This commit was manufactured by cvs2svn to create branch
'regalloc_code2_BRANCH'.

git-svn-id: svn://10.0.0.236/branches/regalloc_code2_BRANCH@22567 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 15:57:58 +00:00
fur%netscape.com
9789a62ec6 Change c-basic-offset in header to 4, instead of 2
git-svn-id: svn://10.0.0.236/trunk@22565 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 15:57:56 +00:00
brade%netscape.com
96fb4a86c6 add prototype for NS_NewRDFInMemoryDataSource to reduce Macintosh compiler warnings
git-svn-id: svn://10.0.0.236/trunk@22564 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 15:30:28 +00:00
brade%netscape.com
b77aa3b2d1 add static to reduce compiiler warnings on Macintosh
git-svn-id: svn://10.0.0.236/trunk@22563 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 15:28:46 +00:00
brade%netscape.com
8a821da6c1 add dtd; cleanup
git-svn-id: svn://10.0.0.236/trunk@22562 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 15:26:37 +00:00
brade%netscape.com
e6fbc4c382 add dtd, buttons; cleanup
git-svn-id: svn://10.0.0.236/trunk@22561 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 15:23:57 +00:00
brade%netscape.com
2829351851 add dtd, cleanup
git-svn-id: svn://10.0.0.236/trunk@22560 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 15:23:28 +00:00
brade%netscape.com
b61777731a add dtd
git-svn-id: svn://10.0.0.236/trunk@22559 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 15:20:35 +00:00
brade%netscape.com
3dd995e0ea add dtd, convert to entities, cleanup
git-svn-id: svn://10.0.0.236/trunk@22558 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 15:20:16 +00:00
brade%netscape.com
932a848fb0 add dtd; cleanup
git-svn-id: svn://10.0.0.236/trunk@22557 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 15:19:23 +00:00
brade%netscape.com
79a7510984 *** empty log message ***
git-svn-id: svn://10.0.0.236/trunk@22556 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 15:18:54 +00:00
brade%netscape.com
dc6b22194c add static to LegendHack() to reduce compiler warnings on Macintosh
git-svn-id: svn://10.0.0.236/trunk@22555 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 15:17:35 +00:00
brade%netscape.com
aeb3fcb6d7 add static to reduce compiler warnings on Macintosh
git-svn-id: svn://10.0.0.236/trunk@22554 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 15:17:14 +00:00
brade%netscape.com
90c1429745 reduce Macintosh compiler warnings by making function static
git-svn-id: svn://10.0.0.236/trunk@22553 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 15:15:46 +00:00
brade%netscape.com
de15c96e7b add "static" to reduce compiler warnings on Macintosh
git-svn-id: svn://10.0.0.236/trunk@22552 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 15:13:29 +00:00
cls%seawood.org
043cab15f3 Fixed problem with ondblclick being released w/o being allocated. Appeared to be a copy-n-paste oversight.
git-svn-id: svn://10.0.0.236/trunk@22551 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 10:20:52 +00:00
jband%netscape.com
e8d76f613d added some XPConnect dirs to the list
git-svn-id: svn://10.0.0.236/trunk@22547 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 08:19:10 +00:00
jband%netscape.com
9da670ea9b makefile fixups to get xptinfo working on Win32. Added xptinfo.h for public dll declarations
git-svn-id: svn://10.0.0.236/trunk@22545 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 07:59:53 +00:00
jband%netscape.com
3a268a8dc6 fixed some makefile flags
git-svn-id: svn://10.0.0.236/trunk@22544 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 07:55:42 +00:00
buster%netscape.com
19e607046b implemented GetTextProperty -- only works for bold and italic now,
trivial to add more properties
finished first cut at SetTextProperty.  This triggers lots of crashes in
range/selection code where we're holding onto a stale frame pointer (at
least, that's my best guess.)
synched with Charlie's change-o-rama
added an assert in DeleteTextTxn::Init() checking aNumCharsToDelete vs.
0
  NS_ASSERTION(0!=aNumCharsToDelete, "bad arg, numCharsToDelete");
if the number of chars to delete is 0, we shouldn't be creating a
transaction at all.  I had never seen this condition arise before
Charlie's checkin, I don't know if he introduced it or if it was a
latent bug I just never tripped over before.


git-svn-id: svn://10.0.0.236/trunk@22543 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 07:52:41 +00:00
mcafee%netscape.com
11b75bfd7c cdefs.h and mcom_db.h also exist in mozilla/include, merging some changes over to these versions in anticipation of retiring the mozilla/include versions of these files.
git-svn-id: svn://10.0.0.236/trunk@22542 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 07:47:29 +00:00
waterson%netscape.com
e4c96b1a9c Added code to spy on the xul:open attribute; we now force content construction when a node is opened and release the children when it is closed.
git-svn-id: svn://10.0.0.236/trunk@22541 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 07:34:32 +00:00
waterson%netscape.com
2ea932b826 Create cell children _before_ adding the tree row to the tree. Removed unnecessary calls to FindTreeElement() where just using mRoot would do.
git-svn-id: svn://10.0.0.236/trunk@22540 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 07:33:45 +00:00
cmanske%netscape.com
746fe83415 Fixed mismatched declarations/implementations
git-svn-id: svn://10.0.0.236/trunk@22539 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 07:13:45 +00:00
mccabe%netscape.com
ddf198d345 Not yet part of Seamonkey.
Changed from using malloc to (much less, but still slightly) hacked
nsIAllocator service.


git-svn-id: svn://10.0.0.236/trunk@22538 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 05:38:27 +00:00
cmanske%netscape.com
eafa393b89 added files: mozilla/editor/base/InsertTableTxn.cpp, mozilla/editor/base/InsertTableCellTxn.cpp, mozilla/editor/base/InsertTableColumnTxn.cpp, mozilla/editor/base/InsertTableRowTxn.cpp, mozilla/editor/base/DeleteTableTxn.cpp, mozilla/editor/base/DeleteTableCellTxn.cpp, mozilla/editor/base/DeleteTableColumnTxn.cpp, mozilla/editor/base/DeleteTableRowTxn.cpp, mozilla/editor/base/JoinTableCellsTxn.cpp, mozilla/editor/base/nsHTMLEditor.cpp, mozilla/editor/base/EditTable.cpp, mozilla/editor/base/nsHTMLEditFactory.cpp
git-svn-id: svn://10.0.0.236/trunk@22537 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 05:32:29 +00:00
cmanske%netscape.com
e91953e14c Changed editor AppCore to use nsHTMLEditor instead of nsTextEditor
git-svn-id: svn://10.0.0.236/trunk@22536 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 05:32:25 +00:00
cmanske%netscape.com
1fc7d6718f Changed viewer to use nsHTMLEditor instead of nsTextEditor
git-svn-id: svn://10.0.0.236/trunk@22535 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 05:31:41 +00:00
cmanske%netscape.com
202c5b89dc Implemented nsHTMLEditor. Changed prototypes to be use NS_IMETHOD and NS_IMETHODIMP. Started table editing transactions
git-svn-id: svn://10.0.0.236/trunk@22534 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 05:30:53 +00:00
mccabe%netscape.com
0217662ca2 Not yet part of the seamonkey build.
Moved nsInterfaceInfoManager files from the libxpt directory (where
they would have precipitated an unpleasant circular dependency between
xpidl and nsISupports.h) into a new subdirectory.

Added corresponding entries to allmakefiles.sh.

nsInterfaceInfoManager is intended to abstract the loading and
management of typelib information generated by xpidl, for use by
xpconnect.


git-svn-id: svn://10.0.0.236/trunk@22533 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 05:21:31 +00:00
evaughan%netscape.com
e361d199bf Made the image accessible from CSS via list-style-image.
git-svn-id: svn://10.0.0.236/trunk@22532 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 05:00:51 +00:00
beard%netscape.com
9f8f8bbc42 Added Release to peer's destructor, delaying release of stream until NPP_URLNotify.
git-svn-id: svn://10.0.0.236/trunk@22531 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 04:46:05 +00:00
beard%netscape.com
875193d236 First Checked In.
git-svn-id: svn://10.0.0.236/trunk@22530 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 04:43:30 +00:00
beard%netscape.com
4fb64bc2c7 added async parameter to send().
git-svn-id: svn://10.0.0.236/trunk@22529 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 04:42:38 +00:00
beard%netscape.com
3fa226c57e implements nsIPluginStreamListener, to handle javascript: URLs.
git-svn-id: svn://10.0.0.236/trunk@22528 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 04:42:35 +00:00
beard%netscape.com
0b7b11b462 added setCodeBase().
git-svn-id: svn://10.0.0.236/trunk@22527 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 04:42:31 +00:00
beard%netscape.com
97dca30b56 added setCodeBase(), running showDocument() in Java thread.
git-svn-id: svn://10.0.0.236/trunk@22526 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 04:42:30 +00:00
beard%netscape.com
777eadcf18 turned on C++ compiler for syntax checking header files.
git-svn-id: svn://10.0.0.236/trunk@22525 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 04:42:28 +00:00
beard%netscape.com
813c2f226b Resizes correctly, took out call to codebase(), plugin now computes codebase with JavaScript.
git-svn-id: svn://10.0.0.236/trunk@22524 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 04:38:45 +00:00
sfraser%netscape.com
8eb1658e33 Fix the caret so that it draws on Windows (and UNIX, hopefully), and turn on the #define so that the caret gets created in the pres shell. It gets shown in editor mode.
git-svn-id: svn://10.0.0.236/trunk@22523 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 04:26:49 +00:00
sfraser%netscape.com
2248f68b22 Make the caret width a twips value, instead of pixels.
git-svn-id: svn://10.0.0.236/trunk@22522 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 04:25:11 +00:00
rjc%netscape.com
5d133ee642 ChildAt(0) can return NULL, so check for it!
git-svn-id: svn://10.0.0.236/trunk@22521 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 04:07:10 +00:00
rjc%netscape.com
863a2fb603 Fix array offset.
git-svn-id: svn://10.0.0.236/trunk@22520 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 04:05:10 +00:00
nisheeth%netscape.com
5b60582d89 - Changed the way the expat parser is encapsulated. Now, the expat DTD creates and destroys the expat parser and registers callbacks with the expat parser. The expat tokenizer simply gets the entire buffer contents from the scanner and passes it to ParseXMLBuffer() on the expat DTD. Earlier, the expat tokenizer was encapsulating the expat parser behind its interfaces. This change gets rid of nsIExpatTokenizer because the expat tokenizer no longer needs to expose methods for registering callbacks with the expat parser.
git-svn-id: svn://10.0.0.236/trunk@22519 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 04:02:23 +00:00
jband%netscape.com
b2603c0b11 some fixes pointed out by purify. Tests better verify that wrappers are not leaking
git-svn-id: svn://10.0.0.236/trunk@22518 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 03:32:42 +00:00
pollmann%netscape.com
2aa51a7e02 Cleanup: Use the GetPrimary Frame in nsGenericHTMLElement. Enable fetching selectedIndex before frame creation (using DefaultSelected instead of Selected) Bug #3340
git-svn-id: svn://10.0.0.236/trunk@22517 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 03:31:17 +00:00
pollmann%netscape.com
af6fe42eb6 Enable GetSelected for options inside of option groups. (Fix GetPrimaryFrame)
git-svn-id: svn://10.0.0.236/trunk@22516 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 03:26:29 +00:00
pollmann%netscape.com
95b65d4e20 Cleanup: return NS_NOINTERFACE not NS_OK if getting the primary frame fails.
git-svn-id: svn://10.0.0.236/trunk@22515 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 03:22:45 +00:00
pollmann%netscape.com
4b77b70cb2 Fix change notifications for combo boxes.
git-svn-id: svn://10.0.0.236/trunk@22514 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 03:19:25 +00:00
nisheeth%netscape.com
b045982ba5 nsParser.cpp would not compile if the EXPAT compiler define was set because I had
not included nsExpatDTD.h.  Now, nsExpatDTD.h gets included if EXPAT is set.


git-svn-id: svn://10.0.0.236/trunk@22513 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 03:03:52 +00:00
brendan%netscape.com
da11cc260c Deal with wstring in .idl files correctly, or at least better.
git-svn-id: svn://10.0.0.236/trunk@22512 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 03:01:39 +00:00
nisheeth%netscape.com
a2d8875807 We no longer call RegisterDTD() on nsParser when initiating parsing of XML
documents.


git-svn-id: svn://10.0.0.236/trunk@22511 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 02:58:25 +00:00
brendan%netscape.com
6a4bb56bf2 Use new 'W' format with JS_ConvertArguments to get PRUnichar* out.
git-svn-id: svn://10.0.0.236/trunk@22510 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 02:51:33 +00:00
brendan%netscape.com
e77361e332 - Added 'W' format to JS_ConvertArguments, for conversion to string and return
via a jschar* out parameter.
- Fused common string conversion and argv[i] GC-rooting code in JS_ConvertArgs.
- Added to cvtargs test command, which really needs to stop using a hardwired
  format string!
- Fixed char-typed fgetc-receiving variable to be of int type for correct EOF
  comparison on machines with unsigned chars.


git-svn-id: svn://10.0.0.236/trunk@22509 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 02:38:45 +00:00
mcmullen%netscape.com
340fc37aa3 Took another one for nsIRandomAccessData.
git-svn-id: svn://10.0.0.236/trunk@22508 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 02:24:46 +00:00
rjc%netscape.com
4426076367 Bug fix: Sort on all child nodes.
git-svn-id: svn://10.0.0.236/trunk@22507 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 02:17:16 +00:00
hyatt%netscape.com
f853b0251d Changing the GetAttribute and SetAttribute calls to properly use the namespace
of NONE (instead of XUL).


git-svn-id: svn://10.0.0.236/trunk@22506 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 02:04:45 +00:00
terry%netscape.com
0834acefe2 Got rid of the "bonsai-hook@warp" nonsense. Added an optional "cchookmail"
entry in the config file, to allow us to set people who always get
CC'd on mail to the hook.


git-svn-id: svn://10.0.0.236/trunk@22505 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 01:55:49 +00:00
waterson%netscape.com
9ed6ac1dab Fixed sloppiness with nsCOMPtr's that Win32 compiler didn't pick up.
git-svn-id: svn://10.0.0.236/trunk@22504 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 01:47:18 +00:00
briano%netscape.com
0363f883d4 Automated update
git-svn-id: svn://10.0.0.236/trunk@22503 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 01:45:38 +00:00
alecf%netscape.com
1640345a6b fix AIX bustage - explicitly refer to parent constructor even though it's within
the scope of this constructor..


git-svn-id: svn://10.0.0.236/trunk@22502 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 01:44:07 +00:00
waterson%netscape.com
19d034434e Modified so that resource implementation registers _self_, rather than relying on the RDF service to do it. Also, added global static reference to RDF service.
git-svn-id: svn://10.0.0.236/trunk@22501 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 01:44:01 +00:00
ftang%netscape.com
b6b33c230f check in prototype code for orderid formater
git-svn-id: svn://10.0.0.236/trunk@22500 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 01:43:00 +00:00
alecf%netscape.com
2a1e455f1f fix linux -pedantic build - compiler confused by too much casting
git-svn-id: svn://10.0.0.236/trunk@22499 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 01:41:45 +00:00
alecf%netscape.com
dc213e6802 fix AIX bustage - compiler confused by too much casting
git-svn-id: svn://10.0.0.236/trunk@22498 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 01:40:52 +00:00
waterson%netscape.com
92c5a832b4 Whoops. Fixed a misnamed header file that Unix case-sensitiveness busts on.
git-svn-id: svn://10.0.0.236/trunk@22497 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 01:40:41 +00:00
alecf%netscape.com
f1139651d9 fix const-ness problem that was plaguing AIX and Linux -pedantic
git-svn-id: svn://10.0.0.236/trunk@22496 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 01:39:23 +00:00
waterson%netscape.com
ac51e62513 General clean-up. Use RDF containers instead of multi-attributes.
git-svn-id: svn://10.0.0.236/trunk@22495 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 01:38:34 +00:00
waterson%netscape.com
08eb228c3d Added DOM observer stubs. Modified tree property lookup (now called 'containment') to look up the tree for a special tag. Modified generation code to only produce children for 'open' nodes.
git-svn-id: svn://10.0.0.236/trunk@22494 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 01:37:10 +00:00
briano%netscape.com
576290b04d Fixes for the SunOS 4 build.
git-svn-id: svn://10.0.0.236/trunk@22493 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 01:36:48 +00:00
waterson%netscape.com
77dee61cf8 Removed spurious comment.
git-svn-id: svn://10.0.0.236/trunk@22492 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 01:33:49 +00:00
slamm%netscape.com
9855b242ca -mput back the 'who' link too. So much for my byte savings. Need to find a way to test for JavaScript.
git-svn-id: svn://10.0.0.236/trunk@22491 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 01:30:24 +00:00
evaughan%netscape.com
a29ac956d2 Fixed button to respond to the list-style-image property on CSS
git-svn-id: svn://10.0.0.236/trunk@22490 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 01:25:33 +00:00
slamm%netscape.com
2fdb50250d Don't rely on 'onclick' handler and pay the price for people who might not use javascript.
git-svn-id: svn://10.0.0.236/trunk@22489 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 01:14:21 +00:00
terry%netscape.com
d2a92c7e70 Changed qa contact for NGLayout's "Layout" component to be peterson.
git-svn-id: svn://10.0.0.236/trunk@22488 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 01:07:31 +00:00
hyatt%netscape.com
7c82f53dcb Modified ContentInserted (for XUL only) to support the tree widget's
wacky frame construction code.


git-svn-id: svn://10.0.0.236/trunk@22487 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 01:07:28 +00:00
briano%netscape.com
f8260c7b52 Added support for QNX.
git-svn-id: svn://10.0.0.236/trunk@22486 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 01:05:04 +00:00
waterson%netscape.com
dd0b409fce Removed code that was #if 0-ed.
git-svn-id: svn://10.0.0.236/trunk@22485 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 01:01:52 +00:00
waterson%netscape.com
cb5103544a Got rid of PrefixMap(), which was obsoleted by Warren's changes to use the repository. Added some assertions to ease debugging. Altered GetResource() and GetDataSource() to _not_ automatically register the resource/datasource; rather, the resource/datasource's Init() method should do that. ClGot rid of PR_smptrinf() calls in favor of nsAutoString stuff.
git-svn-id: svn://10.0.0.236/trunk@22484 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 01:00:45 +00:00
waterson%netscape.com
02c6b594e8 Updated documentation on ReigsterDataSource() && RegisterResource().
git-svn-id: svn://10.0.0.236/trunk@22483 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 00:59:03 +00:00
wtc%netscape.com
48cd560372 Another update from the internal CVS repository /m/src to mozilla.org.
git-svn-id: svn://10.0.0.236/trunk@22482 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 00:58:34 +00:00
cls%seawood.org
c7bff4d0a0 Moved optimization filtering so that OS_CFLAGS doesn't get evaluated prematurely.
git-svn-id: svn://10.0.0.236/trunk@22481 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 00:54:31 +00:00
pollmann%netscape.com
1780b536cd Allow windows text widgets to update readonly state on the fly, as gtk already does.
git-svn-id: svn://10.0.0.236/trunk@22480 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 00:48:22 +00:00
akkana%netscape.com
48e5972c0f Fix potential leak of content sink
git-svn-id: svn://10.0.0.236/trunk@22479 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 00:47:43 +00:00
slamm%netscape.com
13a1bc9b8f Reduce the number of bytes returned.
git-svn-id: svn://10.0.0.236/trunk@22478 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 00:41:31 +00:00
cyeh%netscape.com
85f0f03d2a knod of the head to sfraser, for reminding me that you need to also initialize processInfoRec with the size of the process record.
git-svn-id: svn://10.0.0.236/trunk@22477 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 00:34:49 +00:00
terry%netscape.com
0f85dc8978 Wasn't quoting the "%" correctly in people's e-mail addresses.
git-svn-id: svn://10.0.0.236/trunk@22476 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 00:06:06 +00:00
cyeh%netscape.com
51f89d1297 (really cyeh) fix crashing bug in optimized builds of viewer, but i'm really suprised that this didn't crash more often.
per Inside Macintosh: Processes: you must initialize the ProcessInfoRec with the address to a valid FSSpec and at least 32 bytes of memory if you want the name of the process. if you do not want the name of the process, pass in nil into ProcessInfoRec.processName. We were crashing because the value of PIR.processName was uninitialized, and we were copying the name of the application into random memory.


git-svn-id: svn://10.0.0.236/trunk@22475 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 00:03:30 +00:00
despotdaemon%netscape.com
58cd3e91d0 Pseudo-automatic update of changes made by dhiren@nuvomedia.com.
git-svn-id: svn://10.0.0.236/trunk@22474 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 00:01:14 +00:00
bienvenu%netscape.com
8e4e9ef6d5 add version number to msg database
git-svn-id: svn://10.0.0.236/trunk@22473 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-01 23:34:30 +00:00
alecf%netscape.com
c0859e41c3 make unix build the entire base directory into one .so
git-svn-id: svn://10.0.0.236/trunk@22472 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-01 23:23:35 +00:00
pnunn%netscape.com
b7491db3cc created. -pnunn
git-svn-id: svn://10.0.0.236/trunk@22471 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-01 22:40:55 +00:00
mscott%netscape.com
a58a435800 Correctly build the toolbar and menu items for the mail 3-pane. They used to be expressed in msgbar.xul but it doesn't seem to like it when they are defined that way. I also assumed that xul was the default name space and removed all "xul:" tags. Forced hard coded height and width values for each of the panes. These values are actually from a patch that Candice sent me.
git-svn-id: svn://10.0.0.236/trunk@22470 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-01 22:13:14 +00:00
mscott%netscape.com
d4cbf311f7 Export delmsg.gif because we don't have an icon for this yet...
git-svn-id: svn://10.0.0.236/trunk@22469 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-01 22:11:56 +00:00
alecf%netscape.com
7b51871d6a move old nsIMessenger interface and move into base/
git-svn-id: svn://10.0.0.236/trunk@22468 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-01 21:54:40 +00:00
dougt%netscape.com
dd3f8247a9 massive changes.
git-svn-id: svn://10.0.0.236/trunk@22467 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-01 21:35:13 +00:00
akkana%netscape.com
e39b4ff154 include the parser library too
git-svn-id: svn://10.0.0.236/trunk@22466 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-01 20:46:08 +00:00
leaf%mozilla.org
9e46ea97c1 Fixing the dependency on mozilla/config (yanked the include, removed the $(NMAKE)
references. Approved: sar


git-svn-id: svn://10.0.0.236/trunk@22465 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-01 20:16:01 +00:00
cmanske%netscape.com
e5de2ef497 Added exported header file for nsHTMLEditor
git-svn-id: svn://10.0.0.236/trunk@22464 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-01 19:55:43 +00:00
cmanske%netscape.com
e768f77e73 New files for nsHTMLEditor and table editing transactions (not working yet)
git-svn-id: svn://10.0.0.236/trunk@22463 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-01 19:54:47 +00:00
karnaze%netscape.com
3837aaafce bug 3347
git-svn-id: svn://10.0.0.236/trunk@22462 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-01 19:25:47 +00:00
pinkerton%netscape.com
0a518ff5d3 some hacks (and ifdefs) for macOS until NSPR gets fixed. This at least allows us to test out libReg and find bugs.
git-svn-id: svn://10.0.0.236/trunk@22461 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-01 19:24:27 +00:00
akkana%netscape.com
303a2467a4 Move bulk of DoCopy code from nsBrowserWindow.cpp into nsPresShell
git-svn-id: svn://10.0.0.236/trunk@22460 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-01 19:21:01 +00:00
mscott%netscape.com
03988b3d6a Experimenting with my first idl file. This interface will allow us to have the application (or the code that wants to run a url) to be a listener on that url. we'd like to see something like this get pushed into netlib.
git-svn-id: svn://10.0.0.236/trunk@22459 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-01 19:16:31 +00:00
law%netscape.com
fd87815682 Fix recursion problem
git-svn-id: svn://10.0.0.236/trunk@22458 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-01 19:06:27 +00:00
harishd%netscape.com
113dd31506 Enabling P tag autoclosuer at HR
git-svn-id: svn://10.0.0.236/trunk@22457 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-01 18:56:20 +00:00
bienvenu%netscape.com
e0ded8d07f rename mk_TraceMsg to ns_mkTraceMsg to fix link error
git-svn-id: svn://10.0.0.236/trunk@22456 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-01 18:38:26 +00:00
beard%netscape.com
af5f1235c4 registering GenericFactory component
git-svn-id: svn://10.0.0.236/trunk@22455 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-01 18:09:13 +00:00
putterman%netscape.com
c3e3b1e67e added threadPane.css
git-svn-id: svn://10.0.0.236/trunk@22454 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-01 18:07:22 +00:00
putterman%netscape.com
031a23772b Added threadPane.css
git-svn-id: svn://10.0.0.236/trunk@22453 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-01 18:06:58 +00:00
rods%netscape.com
9ae1a51751 Added method
git-svn-id: svn://10.0.0.236/trunk@22452 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-01 17:52:22 +00:00
pinkerton%netscape.com
d8b06455af make the hack for macos to not use libreg easier to turn on and off to make it easier to work on a fix.
git-svn-id: svn://10.0.0.236/trunk@22451 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-01 17:47:28 +00:00
pinkerton%netscape.com
b3427e2a63 correctly implement nsIMenuListener.
git-svn-id: svn://10.0.0.236/trunk@22450 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-01 17:30:14 +00:00
rods%netscape.com
5a1bf02774 Added forward decl
git-svn-id: svn://10.0.0.236/trunk@22449 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-01 17:08:13 +00:00
rods%netscape.com
f9ff0cab61 Added new method
git-svn-id: svn://10.0.0.236/trunk@22448 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-01 17:03:21 +00:00
vidur%netscape.com
a01e1fe820 Temp fix to allow SCRIPT elements in SELECT elements.
git-svn-id: svn://10.0.0.236/trunk@22447 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-01 17:00:51 +00:00
rods%netscape.com
d756a36bab Added arible
git-svn-id: svn://10.0.0.236/trunk@22446 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-01 17:00:24 +00:00
vidur%netscape.com
83118f458a Fixed MAP elements to conform to HTML 4.0. Hooked up attribute changes for MAP, AREA and ANCHOR elements. Added RECONSTRUCT_ALL as a style hint for attribute changes. Modified nsCSSFrameConstructor's ReconstructFrame to only reconstruct the document element hierarchy.
git-svn-id: svn://10.0.0.236/trunk@22445 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-01 16:57:35 +00:00
rods%netscape.com
b443d2b304 ifdef'ed out some menu code that does work yet.
git-svn-id: svn://10.0.0.236/trunk@22444 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-01 16:48:45 +00:00
rods%netscape.com
8cf03a78ef Added methods to header.
git-svn-id: svn://10.0.0.236/trunk@22443 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-01 16:48:19 +00:00
dcone%netscape.com
7ff8c2a247 Fixed up postscript stuff, now prints on Unix
git-svn-id: svn://10.0.0.236/trunk@22442 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-01 16:23:36 +00:00
rods%netscape.com
98d535f887 Added MenuDeselect to nsIMenuListener
git-svn-id: svn://10.0.0.236/trunk@22441 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-01 16:22:40 +00:00
rods%netscape.com
7313babfcb Change it to do a QueryInterface, is this right?
git-svn-id: svn://10.0.0.236/trunk@22440 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-01 15:27:55 +00:00
ramiro%netscape.com
1e7bef47df Here is patch to add font-styles to gtk-widgets. It adds styles
to widgets on creation, and uses that style to change fonts.
Thanks to Tomi Leppikangas <Tomi.Leppikangas@oulu.fi>


git-svn-id: svn://10.0.0.236/trunk@22439 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-01 13:30:54 +00:00
ramiro%netscape.com
164e781dbc Do the exception thing only if HAVE_CPP_EXCEPTIONS is defined.
git-svn-id: svn://10.0.0.236/trunk@22438 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-01 12:54:16 +00:00
ramiro%netscape.com
511fa6c14c gcc 2.7.x portability fixes.
git-svn-id: svn://10.0.0.236/trunk@22437 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-01 12:25:24 +00:00
briano%netscape.com
d5e75c7d94 Automated update
git-svn-id: svn://10.0.0.236/trunk@22436 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-01 12:15:39 +00:00
ramiro%netscape.com
3dd33ad63b Add test for exceptions. Exceptions are illegal, but somebody (whose name
I dont want to say, but it rhymes with "fcc") is using them in a test program.


git-svn-id: svn://10.0.0.236/trunk@22435 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-01 12:01:32 +00:00
edwin%woudt.nl
9d515e0513 Patches from Thomas Down <thomas.down@tri.ox.ac.uk> to get some working attachments. Also added the X-Mailer header.
git-svn-id: svn://10.0.0.236/trunk@22434 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-01 11:05:10 +00:00
mcafee%netscape.com
d98dcab829 Backing out my last change, breaks Win32 & Mac.
git-svn-id: svn://10.0.0.236/trunk@22433 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-01 10:57:20 +00:00
mcafee%netscape.com
72cb40d845 Adding do_QueryInterface() wrapper for nsCOMPtr/Solaris.
git-svn-id: svn://10.0.0.236/trunk@22432 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-01 10:32:14 +00:00
mcafee%netscape.com
4780230a1d Adding comparisons to autoconf results.
git-svn-id: svn://10.0.0.236/trunk@22431 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-01 10:13:18 +00:00
mcafee%netscape.com
5592159ebd Adding ED_Redo.gif
git-svn-id: svn://10.0.0.236/trunk@22430 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-01 08:33:32 +00:00
jfrancis%netscape.com
9239ed95dd made iterators bidirectional; lots of bug fixes; finished subtree iterator impl.
git-svn-id: svn://10.0.0.236/trunk@22429 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-01 08:17:18 +00:00
grail%cafebabe.org
4736f6084f Fixed a few constant references to their values.
git-svn-id: svn://10.0.0.236/trunk@22428 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-01 07:12:55 +00:00
buster%netscape.com
c661625f46 fixed IsNested to account for outer table frame
removed obsolete debug code


git-svn-id: svn://10.0.0.236/trunk@22427 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-01 06:40:24 +00:00
ramiro%netscape.com
026fef7a70 AIX portability fixes. (Waqar Malik <waqar@netscape.com>)
git-svn-id: svn://10.0.0.236/trunk@22426 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-01 06:29:14 +00:00
briano%netscape.com
67096e4b06 Automated update
git-svn-id: svn://10.0.0.236/trunk@22425 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-01 06:15:39 +00:00
ramiro%netscape.com
fe443b1dbc AIX portability fixes. (Waqar Malik <waqar@netscape.com>)
git-svn-id: svn://10.0.0.236/trunk@22424 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-01 06:10:54 +00:00
waterson%netscape.com
a3003dd0a7 Don't automatically register every data source; instead, the data source can register itself during Init().
git-svn-id: svn://10.0.0.236/trunk@22423 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-01 05:55:18 +00:00
grail%cafebabe.org
74b2238e29 Fixed my own lameness.
git-svn-id: svn://10.0.0.236/trunk@22422 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-01 05:28:18 +00:00
grail%cafebabe.org
9a4012c5b8 Last commit broke local storage viewing. Local store never quite "connect"
so ViewedStoreBase now checks isLocal() if isConnected() fails. Assumption
is that you're always connected if it's a local berkeley store.


git-svn-id: svn://10.0.0.236/trunk@22421 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-01 05:20:27 +00:00
cls%seawood.org
7bc46690b0 Moved previous filter-out section after DSO_CFLAGS is set.
git-svn-id: svn://10.0.0.236/trunk@22420 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-01 03:14:23 +00:00
briano%netscape.com
79123cdd98 Automated update
git-svn-id: svn://10.0.0.236/trunk@22419 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-01 02:00:39 +00:00
cls%seawood.org
5b16286cc0 Removed OPTIMIZE_CFLAGS. If CFLAGS isn't set in the enviornment, set it to -O. If MOZ_DEBUG is set, filter-out the optimization options in autoconf.mk.
git-svn-id: svn://10.0.0.236/trunk@22418 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-01 01:54:00 +00:00
grail%cafebabe.org
3b2c55c209 Fixed situation where UI thread gets wedged when a dialog of any sort
is popped up. A new bug is created where after you authenticate, you
have to deselect, and reselect the item for it to show. It's a
temporary fix.


git-svn-id: svn://10.0.0.236/trunk@22417 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-01 01:04:19 +00:00
edwin%woudt.nl
38897658fa Remove this ugly registration. This is the way to do it right!
git-svn-id: svn://10.0.0.236/trunk@22416 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-01 00:33:01 +00:00
wtc%netscape.com
46f41b71a8 New test file vercheck.c.
git-svn-id: svn://10.0.0.236/trunk@22415 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-01 00:23:34 +00:00
grail%cafebabe.org
2aec37a819 XML Tech Release API changes, take 2.
git-svn-id: svn://10.0.0.236/trunk@22414 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-01 00:09:16 +00:00
grail%cafebabe.org
fb21fe920d Changes to fit with API differences in XML Technology Release.
git-svn-id: svn://10.0.0.236/trunk@22413 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-28 23:53:40 +00:00
fur%netscape.com
9190e73493 Use a Quiet NaN, not a Signalling NaN
git-svn-id: svn://10.0.0.236/trunk@22412 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-28 23:01:29 +00:00
beard%netscape.com
83439792ed First Checked In.
git-svn-id: svn://10.0.0.236/trunk@22411 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-28 22:15:48 +00:00
beard%netscape.com
b4f129401a added IID() accessor.
git-svn-id: svn://10.0.0.236/trunk@22410 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-28 22:14:30 +00:00
beard%netscape.com
232c2ffdce Added NS_PLUGIN_CID, and IID() accessor.
git-svn-id: svn://10.0.0.236/trunk@22409 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-28 22:12:50 +00:00
beard%netscape.com
2b5bea4428 CPluginManager now implements nsIServiceManager and nsIAllocator interfaces, for better Gecko compatibility.
git-svn-id: svn://10.0.0.236/trunk@22408 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-28 22:10:26 +00:00
beard%netscape.com
7f108b671e updated NSGetFactory signature.
git-svn-id: svn://10.0.0.236/trunk@22407 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-28 22:08:26 +00:00
bienvenu%netscape.com
5223ba1452 use registerComponent instead of registerfactory to fix build bustage
git-svn-id: svn://10.0.0.236/trunk@22406 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-28 22:03:19 +00:00
bienvenu%netscape.com
9fe16eb6c4 set recipients and cc list as an array of addresses
git-svn-id: svn://10.0.0.236/trunk@22405 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-28 22:02:20 +00:00
bienvenu%netscape.com
af30301e84 add ability to import msf files
git-svn-id: svn://10.0.0.236/trunk@22404 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-28 22:00:50 +00:00
beard%netscape.com
2e0ae08fae SetDestructor
git-svn-id: svn://10.0.0.236/trunk@22403 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-28 19:04:47 +00:00
toshok%hungry.com
6cc33f9350 implement sm_InitPages/sm_FiniPages for unix. someone with more of an eye for this sort of code should tell me if what i've done here makes sense. it seems to make the tests go....
git-svn-id: svn://10.0.0.236/trunk@22402 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-28 15:20:34 +00:00
toshok%hungry.com
af29355e8a include config.mk before rules.mk
git-svn-id: svn://10.0.0.236/trunk@22401 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-28 15:17:15 +00:00
toshok%hungry.com
b23e6b922a convert C++ to C comment
git-svn-id: svn://10.0.0.236/trunk@22400 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-28 14:03:43 +00:00
toshok%hungry.com
de9ca81516 convert C++ to C comment
git-svn-id: svn://10.0.0.236/trunk@22399 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-28 14:03:21 +00:00
toshok%hungry.com
9213603d11 include config.mk before rules.mk so that we pick up the definition for NSINSTALL.
git-svn-id: svn://10.0.0.236/trunk@22398 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-28 13:51:07 +00:00
toshok%hungry.com
bb4b081b1b quiet gmake
git-svn-id: svn://10.0.0.236/trunk@22397 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-28 13:44:06 +00:00
saari%netscape.com
dc6c858162 make LoadMenus() less nsWebShellWindow specific
git-svn-id: svn://10.0.0.236/trunk@22396 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-28 11:14:34 +00:00
leaf%mozilla.org
827abf76bc fixed smoketest to invoke grendel with 'java grendel.Main' and also
exit the child process after running the binary (can't write to the same
logfile twice, now can we?)


git-svn-id: svn://10.0.0.236/trunk@22395 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-28 08:46:34 +00:00
leaf%mozilla.org
14b924f8e0 moving the client build into client.mak and toplevel makefile.win
leaving nglayout.mak for cleanup by anyone who wants to do it.


git-svn-id: svn://10.0.0.236/trunk@22394 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-28 07:51:10 +00:00
leaf%mozilla.org
ccf6efce70 readding makefile.win to SeaMonkeyCore (yeah, i know, we should have
SeaMonkeyWin/Unix/Mac ... cycles, anyone?)


git-svn-id: svn://10.0.0.236/trunk@22393 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-28 07:36:52 +00:00
grail%cafebabe.org
59d44590bd Labels and such for signature file in preference dialog UI.
git-svn-id: svn://10.0.0.236/trunk@22392 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-28 05:09:58 +00:00
jband%netscape.com
d52ad49e78 catch JS exceptions when calling a wrapped JSObject and reflect as an nsresult error code to the calling xpcom object - with test
git-svn-id: svn://10.0.0.236/trunk@22391 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-28 04:57:13 +00:00
grail%cafebabe.org
7adb2960f6 Added signature file selection.
git-svn-id: svn://10.0.0.236/trunk@22390 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-28 04:53:24 +00:00
despotdaemon%netscape.com
1818e38ea9 Pseudo-automatic update of changes made by wtc@netscape.com.
git-svn-id: svn://10.0.0.236/trunk@22389 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-28 04:45:22 +00:00
jband%netscape.com
5ef8989937 using JS exception thrower (with tests)
git-svn-id: svn://10.0.0.236/trunk@22388 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-28 04:16:20 +00:00
mcmullen%netscape.com
9436817838 Fix Windows build errors
git-svn-id: svn://10.0.0.236/trunk@22387 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-28 02:51:53 +00:00
mcmullen%netscape.com
0a2a335945 Fix unix build errors
git-svn-id: svn://10.0.0.236/trunk@22386 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-28 02:17:55 +00:00
mcmullen%netscape.com
b2cfd19d76 Fix const problem.
git-svn-id: svn://10.0.0.236/trunk@22385 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-28 01:55:23 +00:00
jband%netscape.com
fba67216e8 adding code to throw exceptions into JS with customizable messages
git-svn-id: svn://10.0.0.236/trunk@22384 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-28 01:41:20 +00:00
mcmullen%netscape.com
9e4dad31a3 Fix seek again so it resets eof. Allow ns*FileStream stack-based classes to be closed explicitly. Fix refcounting. Remove "close on destroy" kludge.
git-svn-id: svn://10.0.0.236/trunk@22383 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-28 01:36:48 +00:00
mcmullen%netscape.com
612f1b91bb Make the FilesTest project build again.
git-svn-id: svn://10.0.0.236/trunk@22382 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-28 01:30:41 +00:00
fur%netscape.com
c7088fcd96 Changed many cpp conditionals that used ifdef LINUX or FREEBSD,
but which guarded gcc-specific code, not OS-specific code.  These
were changed to be ifdef __GNUC__.


git-svn-id: svn://10.0.0.236/trunk@22381 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-28 01:10:00 +00:00
fur%netscape.com
f72fba19b7 Reduced gratuitous file duplication between FreeBSD and Linux.
git-svn-id: svn://10.0.0.236/trunk@22380 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-28 00:29:39 +00:00
fur%netscape.com
4a8b00ac6d Eliminated gratuitous file duplication between FreeBSD and Linux
git-svn-id: svn://10.0.0.236/trunk@22379 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-28 00:28:26 +00:00
mcmullen%netscape.com
a4d010ff01 REALLY add libreg and nsRegistry to the Macintosh build.
git-svn-id: svn://10.0.0.236/trunk@22378 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-28 00:26:24 +00:00
mcmullen%netscape.com
1ef728f3b2 REALLY add nsRegistry and libreg to the Mac build.
git-svn-id: svn://10.0.0.236/trunk@22377 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-28 00:24:53 +00:00
fur%netscape.com
20e2e66622 Eliminate warning
git-svn-id: svn://10.0.0.236/trunk@22376 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-28 00:24:21 +00:00
fur%netscape.com
d2cc526401 Ignore generated files
git-svn-id: svn://10.0.0.236/trunk@22375 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-28 00:22:25 +00:00
fur%netscape.com
6d580baadb Renamed to x86Stub_gas.s
git-svn-id: svn://10.0.0.236/trunk@22374 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-28 00:20:52 +00:00
fur%netscape.com
00b6a4565e A bunch of grunge work to reduce the amount of OS-dependent code in
ElectricalFire sources.  The end result eliminated nearly all of the
differences between FreeBSD and Linux in the source code.  It also
increased the amount of sharing between Win32 and unix code.

+   Renamed files and classes that were inappropriately named, i.e. the
    names started with 'x86Win32', but the code was for generic x86, not
    specific to Win32.

+   Eliminated several gratuitous duplicated files, e.g. x86Linux.s and
    x86FreeBSD.s were essentially identical.

+   Shared code that had been duplicated in x86Win32_Support.cpp,
    x86Linux_Support.cpp and x86FreeBSD_Support.cpp.  Created
    x86GenStub.cpp, which contains only XP code, to replace them all.


git-svn-id: svn://10.0.0.236/trunk@22373 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-28 00:18:23 +00:00
despotdaemon%netscape.com
43ffe46441 Pseudo-automatic update of changes made by wtc@netscape.com.
git-svn-id: svn://10.0.0.236/trunk@22372 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 23:50:01 +00:00
dp%netscape.com
b4b583d080 Adding nsRegistry to unix.
git-svn-id: svn://10.0.0.236/trunk@22371 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 21:49:34 +00:00
mcmullen%netscape.com
9375f1534d Call delete [] when new [] was used for allocation.
git-svn-id: svn://10.0.0.236/trunk@22370 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 20:39:07 +00:00
wtc%netscape.com
54957da9be On SUNOS4, include "md/sunos4.h" to get the macro definition of strtoul.
(contributed by Brian Ostrom <briano@netscape.com>)


git-svn-id: svn://10.0.0.236/trunk@22368 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 19:47:35 +00:00
wtc%netscape.com
692fd40e64 On SUNOS4, include "md/sunos4.h" to get the macro definition of strerror.
(contributed by Brian Ostrom <briano@netscape.com>)


git-svn-id: svn://10.0.0.236/trunk@22367 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 19:46:10 +00:00
wtc%netscape.com
07854ec1b1 Check NO_MDUPDATE. (contributed by Brian Ostrom <briano@netscape.com>)
git-svn-id: svn://10.0.0.236/trunk@22366 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 19:36:57 +00:00
karnaze%netscape.com
f1b7db0183 fixed assert when <col> is placed inside of <table>
git-svn-id: svn://10.0.0.236/trunk@22365 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 19:02:48 +00:00
mcafee%netscape.com
ae57673853 Adding expat. a=nisheeth
git-svn-id: svn://10.0.0.236/trunk@22364 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 10:40:40 +00:00
mcafee%netscape.com
0919f76f35 Ignore generated files.
git-svn-id: svn://10.0.0.236/trunk@22363 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 10:16:19 +00:00
dp%netscape.com
5c7abd2ef9 Code cleanup. Added comments. PR_LOG() cleanup. I think I will do my haircut too...
git-svn-id: svn://10.0.0.236/trunk@22362 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 09:50:19 +00:00
saari%netscape.com
b7b8376c6f First Checked In.
git-svn-id: svn://10.0.0.236/trunk@22361 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 09:44:28 +00:00
saari%netscape.com
a7a0e613b0 add mozilla/expat/xmlparse/MANIFEST to export xmlparse.h
git-svn-id: svn://10.0.0.236/trunk@22360 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 09:42:52 +00:00
mcafee%netscape.com
93a813dc24 export nsIExpatTokenizer.h, a=nisheeth
git-svn-id: svn://10.0.0.236/trunk@22359 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 09:26:27 +00:00
mcafee%netscape.com
406b124f2f Adding expat to Mozilla. a=nisheeth@netscape.com
git-svn-id: svn://10.0.0.236/trunk@22358 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 09:16:17 +00:00
mcafee%netscape.com
a3439ca560 First checkin
git-svn-id: svn://10.0.0.236/trunk@22357 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 09:12:52 +00:00
saari%netscape.com
7b2d482943 export new expat files
git-svn-id: svn://10.0.0.236/trunk@22356 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 09:11:40 +00:00
dp%netscape.com
a6760a0dec Clode cleanup. Abstracted registry access code that does ProgID into functions platformProgIDToCLSID() and platformCLSIDToProgID()
git-svn-id: svn://10.0.0.236/trunk@22355 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 08:58:11 +00:00
mcafee%netscape.com
357801b38b Don't build xmlwf yet.
git-svn-id: svn://10.0.0.236/trunk@22354 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 08:56:37 +00:00
grail%cafebabe.org
e9ec617591 Layout used to break if you switched between different layouts. It seems
to be behaving now.


git-svn-id: svn://10.0.0.236/trunk@22353 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 08:56:33 +00:00
dp%netscape.com
2d630f0db3 Changed comment to indicate that Quick Registration via the quick register data structure isn't for prime time yet.
git-svn-id: svn://10.0.0.236/trunk@22352 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 08:56:21 +00:00
nisheeth%netscape.com
f3a1187961 Fix Windows build bustage. expat.lib wasn't getting copied out to dist on
a newly pulled build.


git-svn-id: svn://10.0.0.236/trunk@22351 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 08:51:45 +00:00
mcafee%netscape.com
a6e67ce7c6 Adding expat. a=nisheeth@netscape.com
git-svn-id: svn://10.0.0.236/trunk@22350 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 08:51:03 +00:00
mcafee%netscape.com
922cde30d3 Adding nsExpatDTD.h to EXPORTS. a=nisheeth
git-svn-id: svn://10.0.0.236/trunk@22349 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 08:44:05 +00:00
peterl%netscape.com
0f5602af49 added content state change
git-svn-id: svn://10.0.0.236/trunk@22348 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 08:34:06 +00:00
saari%netscape.com
e4a8d65787 Making Mac menus work a little better again.
git-svn-id: svn://10.0.0.236/trunk@22347 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 08:30:32 +00:00
nisheeth%netscape.com
98631882f9 - Add expat to the windows build only...
- Changed nsParser such that nsExpatDTD gets added to the doubly ended queue
  of DTDs instead of nsWellFormedDTD if EXPAT is #define'd.


git-svn-id: svn://10.0.0.236/trunk@22346 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 08:04:46 +00:00
nisheeth%netscape.com
7a7332eebd Creating nsIExpatTokenizer, an interface that adds methods for setting
callbacks on the expat tokenizer, a wrapper around the expat XML parser.


git-svn-id: svn://10.0.0.236/trunk@22345 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 08:03:36 +00:00
nisheeth%netscape.com
fde3db03f4 - Add expat to the windows build only...
- Changed nsXMLDocument such that expat gets used for XML parsing if
  EXPAT is #define'd


git-svn-id: svn://10.0.0.236/trunk@22344 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 08:02:15 +00:00
nisheeth%netscape.com
ea7fabcacf Add expat to the windows build only...
git-svn-id: svn://10.0.0.236/trunk@22343 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 07:59:22 +00:00
putterman%netscape.com
10fef5a529 Pass in pointer to mServiceManager.
git-svn-id: svn://10.0.0.236/trunk@22342 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 07:27:45 +00:00
peterl%netscape.com
a15d906398 fixed active link rule support
git-svn-id: svn://10.0.0.236/trunk@22341 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 07:18:21 +00:00
peterl%netscape.com
42e0f0d865 added support for dynamic pseudo classes
added support for child & sibling selectors


git-svn-id: svn://10.0.0.236/trunk@22340 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 07:17:52 +00:00
putterman%netscape.com
fd08ec9642 ListNext returns NULL when no more messages.
git-svn-id: svn://10.0.0.236/trunk@22339 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 07:17:35 +00:00
putterman%netscape.com
1d6337aad3 Start writing GetMessages and make folder pane work again.
git-svn-id: svn://10.0.0.236/trunk@22338 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 07:16:58 +00:00
peterl%netscape.com
031f64cd45 added child & sibling selector support
git-svn-id: svn://10.0.0.236/trunk@22337 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 07:16:57 +00:00
peterl%netscape.com
9a50248463 tweaked style hint for overflow
git-svn-id: svn://10.0.0.236/trunk@22336 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 07:16:27 +00:00
peterl%netscape.com
03d4988d0b added child & sibling selectors
git-svn-id: svn://10.0.0.236/trunk@22335 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 07:15:59 +00:00
putterman%netscape.com
1b29b161a4 Works with RegisterComponent
git-svn-id: svn://10.0.0.236/trunk@22334 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 07:15:41 +00:00
peterl%netscape.com
46ee5bae96 added content state changed
git-svn-id: svn://10.0.0.236/trunk@22333 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 07:15:09 +00:00
peterl%netscape.com
99235ba41d added CSS3 pseudo classes
git-svn-id: svn://10.0.0.236/trunk@22332 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 07:14:33 +00:00
peterl%netscape.com
186b6ff87a added CSS3 UI pseudo classes
git-svn-id: svn://10.0.0.236/trunk@22331 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 07:14:13 +00:00
peterl%netscape.com
c75df5584b set document before adding attributes
git-svn-id: svn://10.0.0.236/trunk@22330 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 07:13:48 +00:00
peterl%netscape.com
172680187e switched state change notifications to use ContentStateChanged
git-svn-id: svn://10.0.0.236/trunk@22329 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 07:12:38 +00:00
fur%netscape.com
300d98c6fa Remove unused function
git-svn-id: svn://10.0.0.236/trunk@22328 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 07:12:27 +00:00
peterl%netscape.com
f1421ae8d2 added == operator to style sides
git-svn-id: svn://10.0.0.236/trunk@22327 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 07:11:57 +00:00
peterl%netscape.com
9b0f1dbc06 added CalcStyleDifference
git-svn-id: svn://10.0.0.236/trunk@22326 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 07:11:42 +00:00
putterman%netscape.com
bd2671513e Compiles with RegisterComponent
git-svn-id: svn://10.0.0.236/trunk@22325 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 07:11:28 +00:00
peterl%netscape.com
694566ce25 added content state changed
removed ua sheet from dump style


git-svn-id: svn://10.0.0.236/trunk@22324 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 07:11:04 +00:00
peterl%netscape.com
5ae2774317 added == operator for style sides
git-svn-id: svn://10.0.0.236/trunk@22323 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 07:09:40 +00:00
peterl%netscape.com
e18d387533 added style hint max
git-svn-id: svn://10.0.0.236/trunk@22322 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 07:09:23 +00:00
fur%netscape.com
fef280bf65 Patches from Amancio Hasty for FreeBSD. Until we can figure out otherwise,
use NSPR user-threads rather than pthreads.


git-svn-id: svn://10.0.0.236/trunk@22321 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 07:00:12 +00:00
grail%cafebabe.org
1062153d54 Images from chrisn to replace the existing ugly signature icon.
git-svn-id: svn://10.0.0.236/trunk@22320 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 06:47:08 +00:00
jband%netscape.com
a66a8179b4 catch
git-svn-id: svn://10.0.0.236/trunk@22319 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 06:38:24 +00:00
jband%netscape.com
d3c05dfd48 added .cvsignore files
git-svn-id: svn://10.0.0.236/trunk@22318 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 06:31:04 +00:00
jband%netscape.com
9835083454 got rid of allocator hack since the nsAllocator is now alive
git-svn-id: svn://10.0.0.236/trunk@22317 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 06:26:32 +00:00
alecf%netscape.com
d9c1423d1e fix AIX bustage - we were dereferencing the function before checking if it was NULL
git-svn-id: svn://10.0.0.236/trunk@22316 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 06:22:43 +00:00
briano%netscape.com
f94fca5d21 Automated update
git-svn-id: svn://10.0.0.236/trunk@22315 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 06:15:40 +00:00
mcafee%netscape.com
da12888a42 Add check for bool, might need this in 3rd-party code. Mozilla code should use PRBool.
git-svn-id: svn://10.0.0.236/trunk@22314 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 06:06:59 +00:00
nisheeth%netscape.com
334560b897 Enough code to get expat callbacks firing inside nsExpatDTD. Next step is
to pass on the callbacks to the XML content sink.  These files are not part
of the build system yet.


git-svn-id: svn://10.0.0.236/trunk@22313 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 06:04:02 +00:00
alecf%netscape.com
13d995b822 start using new HAVE_CPP_NEW_CASTS macro on unix
git-svn-id: svn://10.0.0.236/trunk@22312 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 05:58:25 +00:00
briano%netscape.com
b9dbb43f34 Mostly just support for SunOS 4.x
git-svn-id: svn://10.0.0.236/trunk@22311 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 04:55:44 +00:00
alecf%netscape.com
534160d16b AIX can't do static casts either
git-svn-id: svn://10.0.0.236/trunk@22310 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 04:29:44 +00:00
alecf%netscape.com
3dcbcaa251 fix HPUX bustage - nspr.h is still giving problems
git-svn-id: svn://10.0.0.236/trunk@22309 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 04:18:55 +00:00
briano%netscape.com
cec2fe742e Automated update
git-svn-id: svn://10.0.0.236/trunk@22308 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 04:15:38 +00:00
alecf%netscape.com
1bb4856df5 add new tests from scc@netscape.com
git-svn-id: svn://10.0.0.236/trunk@22307 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 04:08:24 +00:00
karnaze%netscape.com
975ac58a63 correctly set max element size on checkbox, radio. Other cleanup.
git-svn-id: svn://10.0.0.236/trunk@22306 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 03:59:19 +00:00
mscott%netscape.com
abf578071d Stop building nntptest until I fix the factory problems and come up with a progID...
git-svn-id: svn://10.0.0.236/trunk@22305 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 03:48:15 +00:00
alecf%netscape.com
f6fa0eaa90 put #ifdef's around the interface stub implementation output so that generated files can still
be part of the build system.


git-svn-id: svn://10.0.0.236/trunk@22304 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 03:34:39 +00:00
mscott%netscape.com
877afbbea8 There is no DLL in the resource directory so don't try to clobber one...
git-svn-id: svn://10.0.0.236/trunk@22303 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 03:24:00 +00:00
leaf%mozilla.org
b74eeab8e0 adding james clark's xml parser.
git-svn-id: svn://10.0.0.236/trunk@22302 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 03:19:35 +00:00
alecf%netscape.com
8dfc6228f7 add IID() method
git-svn-id: svn://10.0.0.236/trunk@22301 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 03:16:56 +00:00
alecf%netscape.com
c25d436614 implement nsMessenger class
git-svn-id: svn://10.0.0.236/trunk@22300 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 03:14:40 +00:00
mscott%netscape.com
7375193b56 Add code to define XPIDL_JS_STUBS if it is defined in the environment for alecf.
git-svn-id: svn://10.0.0.236/trunk@22299 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 03:12:38 +00:00
grail%cafebabe.org
02eb7be6cb Fixed OptionsPanel breakage. Everything is laid out all nice like.
git-svn-id: svn://10.0.0.236/trunk@22298 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 03:10:41 +00:00
mscott%netscape.com
d4a9bfe19f mailnews base requires DOM.
git-svn-id: svn://10.0.0.236/trunk@22297 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 03:09:16 +00:00
grail%cafebabe.org
5ffaf359cb Removed references to non-existence crytpo capability. This breaks
OptionsPanel for now.


git-svn-id: svn://10.0.0.236/trunk@22296 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 03:09:15 +00:00
mcafee%netscape.com
f8cf8b500f Fixing solaris bustage. a/r=akkana,simon
git-svn-id: svn://10.0.0.236/trunk@22295 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 02:55:13 +00:00
vidur%netscape.com
862dafa27c map and area attribute tests
git-svn-id: svn://10.0.0.236/trunk@22294 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 02:52:44 +00:00
saari%netscape.com
6f6025f993 First Checked In.
git-svn-id: svn://10.0.0.236/trunk@22293 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 02:48:31 +00:00
alecf%netscape.com
28ead7db61 add Interface implementation for JS stubs in messenger
git-svn-id: svn://10.0.0.236/trunk@22292 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 02:47:53 +00:00
putterman%netscape.com
4796874851 Parses datasource string correctly.
git-svn-id: svn://10.0.0.236/trunk@22291 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 02:42:57 +00:00
alecf%netscape.com
f6b3edfc94 remove bogus headers
git-svn-id: svn://10.0.0.236/trunk@22290 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 02:42:26 +00:00
alecf%netscape.com
3724c2ae4d implement new nsIMessenger interface, and make it accessable from JavaScript
git-svn-id: svn://10.0.0.236/trunk@22289 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 02:33:21 +00:00
alecf%netscape.com
16845338f6 update to new RegisterComponent APIs
git-svn-id: svn://10.0.0.236/trunk@22288 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 02:25:02 +00:00
alecf%netscape.com
6f7747af12 update to new RegisterFactory/Component APIs
git-svn-id: svn://10.0.0.236/trunk@22287 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 02:24:29 +00:00
waterson%netscape.com
5ecec240af Change '=' to '#' to circumvent registry bustage for now.
git-svn-id: svn://10.0.0.236/trunk@22286 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 02:19:47 +00:00
slamm%netscape.com
05f05cbc5c Add status.xul
git-svn-id: svn://10.0.0.236/trunk@22285 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 02:12:47 +00:00
ebina%netscape.com
4a5bfcecf4 Reflect changes to API in nsRepository.h to the Mac.
git-svn-id: svn://10.0.0.236/trunk@22284 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 02:08:50 +00:00
ebina%netscape.com
acfa7037f5 Remove support for the old RegisterFactory API.
git-svn-id: svn://10.0.0.236/trunk@22283 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 02:06:54 +00:00
alecf%netscape.com
83f13a4b98 moving this file to base
git-svn-id: svn://10.0.0.236/trunk@22282 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 02:04:53 +00:00
ebina%netscape.com
bde6ee5483 Change RegisterFactory to the new API.
git-svn-id: svn://10.0.0.236/trunk@22281 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 02:02:32 +00:00
despotdaemon%netscape.com
56f2a19d6e Pseudo-automatic update of changes made by lindes@netscape.com.
git-svn-id: svn://10.0.0.236/trunk@22280 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 02:00:07 +00:00
fur%netscape.com
1a261f0163 Separated x86Win32_Support.cpp into an OS-independent part x86GenStub.cpp and
x86Stub.cpp which is Win32-only.


git-svn-id: svn://10.0.0.236/trunk@22279 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 01:53:18 +00:00
sfraser%netscape.com
698034ee52 First Checked In.
git-svn-id: svn://10.0.0.236/trunk@22278 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 01:46:07 +00:00
sfraser%netscape.com
ffd655ab4a Add Redo to the editor appshell toolbar
git-svn-id: svn://10.0.0.236/trunk@22277 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 01:46:00 +00:00
nisheeth%netscape.com
74e10ba6d1 Integrating Expat with raptor...
git-svn-id: svn://10.0.0.236/trunk@22276 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 01:41:01 +00:00
alecf%netscape.com
668fa3d44c nspr.h was causing problems on HPUX
git-svn-id: svn://10.0.0.236/trunk@22275 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 01:37:44 +00:00
hyatt%netscape.com
6d1d5f3315 Modified HTML content's QueryInterface macro to supported nsIStyledContent.
git-svn-id: svn://10.0.0.236/trunk@22274 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 01:36:41 +00:00
hyatt%netscape.com
c75a33adec Changed GetID, HasClass, and GetClasses so that they are invoked on styledContent
instead of htmlContent.


git-svn-id: svn://10.0.0.236/trunk@22273 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 01:35:51 +00:00
hyatt%netscape.com
0e1f8526be Changed GetInlineStyleRule so that it is invoked on styledContent instead
of htmlContent.


git-svn-id: svn://10.0.0.236/trunk@22272 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 01:35:25 +00:00
law%netscape.com
165659caa3 Add status.xul to $(DIST)/bin/res/samples
git-svn-id: svn://10.0.0.236/trunk@22271 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 01:35:05 +00:00
hyatt%netscape.com
818ef5f99b Changed GetContentStyleRule so that it is invoked on styledContent instead
of htmlContent.


git-svn-id: svn://10.0.0.236/trunk@22270 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 01:34:55 +00:00
hyatt%netscape.com
03ccb229ff Changing GetStyleHintForAttributeChanged so that it is invoked on styledContent
instead of htmlContent.


git-svn-id: svn://10.0.0.236/trunk@22269 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 01:34:32 +00:00
hyatt%netscape.com
6a355cdc1f Adding the NS_ISTYLEDCONTENT_IID to the nsHTMLIID files, so that HTML content
can see it (makes the QueryInterface macro work).


git-svn-id: svn://10.0.0.236/trunk@22268 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 01:33:25 +00:00
hyatt%netscape.com
1e383b5280 Removing the CLASS, ID, and STYLE-specific methods. They are now in
nsIStyledContent (from which nsIHTMLContent now derives).


git-svn-id: svn://10.0.0.236/trunk@22267 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 01:32:49 +00:00
nisheeth%netscape.com
875f6e8d4d Integrating Expat with raptor...
git-svn-id: svn://10.0.0.236/trunk@22266 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 01:31:49 +00:00
hyatt%netscape.com
3eea650eac Making sure that nsIStyledContent.h gets exported.
git-svn-id: svn://10.0.0.236/trunk@22265 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 01:31:42 +00:00
hyatt%netscape.com
4facbaa6b0 Changes to makefiles to ensure that nsIStyledContent.h is exported.
git-svn-id: svn://10.0.0.236/trunk@22264 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 01:31:16 +00:00
hyatt%netscape.com
36c680cad0 The nsIStyledContent interface. Removes CLASS, ID, and STYLE support (as well
as the ability to supply style hints) from nsIHTMLContent.


git-svn-id: svn://10.0.0.236/trunk@22263 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 01:31:01 +00:00
hyatt%netscape.com
0f7ea6b1c9 Changes to tree frame construction code.
git-svn-id: svn://10.0.0.236/trunk@22262 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 01:28:19 +00:00
ducarroz%netscape.com
49f460ef71 add missing parameter to SendMessage
git-svn-id: svn://10.0.0.236/trunk@22261 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 01:26:01 +00:00
peterl%netscape.com
32bebb7ee2 Fixed leak of token recycler
git-svn-id: svn://10.0.0.236/trunk@22260 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 01:11:51 +00:00
mscott%netscape.com
efcc286270 Remove no shared library field
git-svn-id: svn://10.0.0.236/trunk@22259 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 01:03:26 +00:00
av%netscape.com
40af69629d *** empty log message ***
git-svn-id: svn://10.0.0.236/trunk@22258 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 00:57:04 +00:00
mscott%netscape.com
cfdfa76120 Add mdbstubs.cpp to the build.
git-svn-id: svn://10.0.0.236/trunk@22257 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 00:56:41 +00:00
mscott%netscape.com
ba94b65a25 Link with nntpTest library.
git-svn-id: svn://10.0.0.236/trunk@22256 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 00:43:54 +00:00
mscott%netscape.com
c1635e9bde Name of the compose library changed. Update the Makefile.
git-svn-id: svn://10.0.0.236/trunk@22255 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 00:29:19 +00:00
mscott%netscape.com
938159a86b Hmm somehow we got a bunch of duplicate file names getting built. Cleaning up the Makefile
git-svn-id: svn://10.0.0.236/trunk@22254 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 00:21:42 +00:00
mscott%netscape.com
25ba927616 Fix Unix breakage. XP_AppVersion is a const char * not a char * for unix.
git-svn-id: svn://10.0.0.236/trunk@22253 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 00:16:52 +00:00
despotdaemon%netscape.com
140e5d6e81 Pseudo-automatic update of changes made by kristian@netscape.com.
git-svn-id: svn://10.0.0.236/trunk@22252 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 00:01:18 +00:00
mscott%netscape.com
7952f9448e I'm not sure why this was changed from m_host to "", in any case, change it back to m_host
which is the host to use...


git-svn-id: svn://10.0.0.236/trunk@22251 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 23:56:56 +00:00
scc%netscape.com
6cb22ba536 for VC++5.0, no member using declarations (to prevent internal compiler error); to make this compile fixed type of AddRef and Release in nsDerivedSafe
git-svn-id: svn://10.0.0.236/trunk@22250 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 23:43:40 +00:00
ducarroz%netscape.com
94b36f91ee receive an URL during the creation of a new message instance. Add new parameter in SendMessage (from, cc, bcc, smtp)
git-svn-id: svn://10.0.0.236/trunk@22249 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 23:42:54 +00:00
ducarroz%netscape.com
cd28986280 fix build problem with missing parameter when call SendMailMessage. Add an empty host name
git-svn-id: svn://10.0.0.236/trunk@22248 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 23:40:42 +00:00
mscott%netscape.com
b437323e2c Fix build breakage. NS_InitMsgAppCoreClass returns an nsresult.
git-svn-id: svn://10.0.0.236/trunk@22247 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 23:38:32 +00:00
ducarroz%netscape.com
e19e9c8f66 carry smtp server over the send process
git-svn-id: svn://10.0.0.236/trunk@22246 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 23:38:20 +00:00
pinkerton%netscape.com
921aee5459 warren's hack-o-rama to get rdf working w/out libreg on mac. permission to check into closed tree by sar.
git-svn-id: svn://10.0.0.236/trunk@22245 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 23:28:14 +00:00
pinkerton%netscape.com
b984626b52 added GetGlobalServiceManager for warren. permission to checkin to closed tree granted by sar.
git-svn-id: svn://10.0.0.236/trunk@22244 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 23:26:17 +00:00
ducarroz%netscape.com
eab23107de carry smtp server over the send process
git-svn-id: svn://10.0.0.236/trunk@22243 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 23:25:46 +00:00
ducarroz%netscape.com
8b3a885953 carry smtp server name over the send message process
git-svn-id: svn://10.0.0.236/trunk@22242 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 23:23:32 +00:00
fur%netscape.com
7831e45af4 Changed factoring of function declaration macros to be based on choice of
compiler rather than OS


git-svn-id: svn://10.0.0.236/trunk@22241 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 23:18:37 +00:00
fur%netscape.com
5fdbb98c39 Add /D GENERATE_FOR_X86
git-svn-id: svn://10.0.0.236/trunk@22240 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 23:14:31 +00:00
ducarroz%netscape.com
8c2d5cd165 clobber tag was missing causing a nmake error
git-svn-id: svn://10.0.0.236/trunk@22239 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 23:13:36 +00:00
fur%netscape.com
41d9c2de41 A bunch of grunge work to reduce OS-dependent code in ElectricalFire
sources:

+ Renamed files and classes that were inappropriately named, i.e. the
  names started with 'x86Win32', but the code was for generic x86, not
  specific to Win32.

+ Segregated the 64-bit arithmetic code into an OS-independent
  x86Arith64.{cpp,h}


git-svn-id: svn://10.0.0.236/trunk@22238 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 23:12:06 +00:00
fur%netscape.com
580523708d Squawk if target architecture is unknown
git-svn-id: svn://10.0.0.236/trunk@22237 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 23:06:34 +00:00
fur%netscape.com
0521e3acbc x86-win32.nad ==> x86.nad
git-svn-id: svn://10.0.0.236/trunk@22236 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 23:05:58 +00:00
fur%netscape.com
b06c567c1f x86Win32Cpu.h ==> x86Cpu.h
git-svn-id: svn://10.0.0.236/trunk@22234 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 23:01:40 +00:00
fur%netscape.com
4aa850fa93 x86Win32Cpu.h ==> x86Cpu.h
git-svn-id: svn://10.0.0.236/trunk@22233 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 23:00:45 +00:00
ducarroz%netscape.com
2df4cc81ab updated to export new resources files
git-svn-id: svn://10.0.0.236/trunk@22231 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 22:46:33 +00:00
ducarroz%netscape.com
0bdff758b4 remove address and subject fields, they are now in the toolbar describe in compose.xul
git-svn-id: svn://10.0.0.236/trunk@22230 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 22:45:12 +00:00
fur%netscape.com
ad09d80ac6 A bunch of grunge work to reduce OS-dependent code in ElectricalFire
sources.

Here's a detailed list of the changes:

Renamed files and classes that were inappropriately named, i.e. the
names started with 'x86Win32', but the code was for generic x86, not
specific to Win32.

Segregated the 64-bit arithmetic code into an OS-independent
x86Arith64.{cpp,h}


git-svn-id: svn://10.0.0.236/trunk@22229 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 22:45:11 +00:00
ducarroz%netscape.com
0fbfef36f1 Initial check in
git-svn-id: svn://10.0.0.236/trunk@22228 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 22:43:41 +00:00
ducarroz%netscape.com
07f73341a3 replaced by compose.xul
git-svn-id: svn://10.0.0.236/trunk@22227 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 22:42:36 +00:00
despotdaemon%netscape.com
51c655ad3d Pseudo-automatic update of changes made by wtc@netscape.com.
git-svn-id: svn://10.0.0.236/trunk@22226 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 22:30:54 +00:00
ducarroz%netscape.com
cf3b82883c no comment
git-svn-id: svn://10.0.0.236/trunk@22225 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 22:28:50 +00:00
ducarroz%netscape.com
d68531d744 did some reformating of the code
git-svn-id: svn://10.0.0.236/trunk@22224 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 22:23:24 +00:00
ducarroz%netscape.com
ceb2e8dc2c change hard coded version of messenger
git-svn-id: svn://10.0.0.236/trunk@22223 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 22:21:45 +00:00
terry%netscape.com
3417923ada Removed "Platform: Rhapsody" component.
git-svn-id: svn://10.0.0.236/trunk@22222 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 22:05:52 +00:00
cyeh%netscape.com
634f978ce3 fix analysis.html generation by fixing ostype checks
git-svn-id: svn://10.0.0.236/trunk@22221 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 21:30:38 +00:00
wtc%netscape.com
12c0262a82 added files on behalf of wtc: prerr.c, prerrortable.c, and prrwlock.c.
git-svn-id: svn://10.0.0.236/trunk@22220 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 20:49:06 +00:00
wtc%netscape.com
9c1f05fdd8 Temporary depend:clean hack.
git-svn-id: svn://10.0.0.236/trunk@22219 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 20:47:41 +00:00
wtc%netscape.com
1091f97f61 Landing of miscellaneous changes, including the new error code to
string function contributed by John Myers <jgmyers@netscape.com>.


git-svn-id: svn://10.0.0.236/trunk@22218 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 20:41:06 +00:00
wtc%netscape.com
6b142d43cd New test file acceptread.c.
git-svn-id: svn://10.0.0.236/trunk@22217 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 20:38:30 +00:00
michaelp%netscape.com
3c0d098a85 added fix for GetRects(). not currently called by anything but the new
compositor which is not yet enabled. approved by sar.


git-svn-id: svn://10.0.0.236/trunk@22216 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 20:16:50 +00:00
cyeh%netscape.com
0f787fde0e added blat url to usage output
git-svn-id: svn://10.0.0.236/trunk@22215 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 20:15:03 +00:00
cyeh%netscape.com
eb05521c3f *** empty log message ***
git-svn-id: svn://10.0.0.236/trunk@22214 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 20:13:06 +00:00
alecf%netscape.com
6fed0e740d remove duplicate definition (whoops!)
git-svn-id: svn://10.0.0.236/trunk@22213 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 20:06:18 +00:00
alecf%netscape.com
947a1ef4ff bring NS_InitMsgAppCoreClass back from the dead
git-svn-id: svn://10.0.0.236/trunk@22212 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 20:04:39 +00:00
kmcclusk%netscape.com
b127777cde Added support to read Adobe Font Metric files to get the correct font metrics
for printing.


git-svn-id: svn://10.0.0.236/trunk@22211 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 20:03:35 +00:00
mscott%netscape.com
26da731489 Export NS_InitMsgAppCoreClass to fix build. Alec is going to make the correct change and add this to the idl file so we won't lose it the next time we rev the idl files. This was part of the hack stuff we had to add to get msgappcore running in apprunner..
git-svn-id: svn://10.0.0.236/trunk@22210 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 20:03:26 +00:00
cyeh%netscape.com
54234965d5 make simple makefile for mtbf, but this time a working one
git-svn-id: svn://10.0.0.236/trunk@22209 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 20:02:37 +00:00
kipp%netscape.com
8334239104 fixed up operator new usage
git-svn-id: svn://10.0.0.236/trunk@22208 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 20:02:06 +00:00
pollmann%netscape.com
9c4f03aa39 Enable dynamic changing of the readonly attribute.
Works on Linux now.  Win will come on-line later today.


git-svn-id: svn://10.0.0.236/trunk@22207 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 20:01:48 +00:00
slamm%netscape.com
02a2298c97 Add bookmarks window.
git-svn-id: svn://10.0.0.236/trunk@22206 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 20:01:27 +00:00
slamm%netscape.com
7c483bbac7 Add 'Edit Bookmarks...' menu item.
git-svn-id: svn://10.0.0.236/trunk@22205 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 19:59:00 +00:00
slamm%netscape.com
0b7a662327 Add bookmarks window
git-svn-id: svn://10.0.0.236/trunk@22204 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 19:58:17 +00:00
kipp%netscape.com
31f557d779 use macro to get operator new correct
git-svn-id: svn://10.0.0.236/trunk@22203 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 19:57:18 +00:00
brade%netscape.com
2e06c0f14a First Checked In.
git-svn-id: svn://10.0.0.236/trunk@22202 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 19:51:49 +00:00
scc%netscape.com
99bd38652f deprecated |dont_AddRef|, added a new form of |getter_AddRefs| to take its place. Removed all nothing of bool from the headers (should help gcc)
git-svn-id: svn://10.0.0.236/trunk@22201 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 19:50:46 +00:00
cyeh%netscape.com
5e7a30bb73 add makefile to build mtbf
git-svn-id: svn://10.0.0.236/trunk@22200 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 19:48:06 +00:00
mcafee%netscape.com
9f2b58f6b6 Switching false/true over to PR_FALSE/PR_TRUE
git-svn-id: svn://10.0.0.236/trunk@22199 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 19:47:48 +00:00
cyeh%netscape.com
98ab554353 make command line options work under win32
git-svn-id: svn://10.0.0.236/trunk@22198 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 19:47:38 +00:00
ebina%netscape.com
1e98ec7746 Changing RegisterFactory to use the new API.
git-svn-id: svn://10.0.0.236/trunk@22197 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 19:45:10 +00:00
kipp%netscape.com
b8608d2815 Cleaned up all of the operator new/delete usage
git-svn-id: svn://10.0.0.236/trunk@22196 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 19:40:22 +00:00
akkana%netscape.com
0ed15da9fd windows has NS_IMETHOD != virtual nsresult
git-svn-id: svn://10.0.0.236/trunk@22195 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 19:39:14 +00:00
kipp%netscape.com
4b24555ced Defined some operator new/delete macros to help us get it right
git-svn-id: svn://10.0.0.236/trunk@22194 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 19:38:53 +00:00
brade%netscape.com
3ed23f5c9e add "static" to reduce compiler warnings on Macintosh
git-svn-id: svn://10.0.0.236/trunk@22193 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 19:36:36 +00:00
dp%netscape.com
61bf5c1e54 Adding platformVersionCheck() into USE_REG ifdef
git-svn-id: svn://10.0.0.236/trunk@22192 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 19:28:42 +00:00
pinkerton%netscape.com
009b854b1f changing mac name of default registry file to "mozilla registry" in order to not conflict with old nscp versions and not have the name "netscape" in any of our code.
git-svn-id: svn://10.0.0.236/trunk@22191 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 19:26:45 +00:00
kipp%netscape.com
8ca53a41da Fixed remaining issues with operator new/delete
git-svn-id: svn://10.0.0.236/trunk@22190 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 19:26:29 +00:00
mcafee%netscape.com
376d73af3c Switching one last bool to PRBool. a=mcmullen
git-svn-id: svn://10.0.0.236/trunk@22189 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 19:22:43 +00:00
kipp%netscape.com
b677533b37 Removed ifdef'd out code
git-svn-id: svn://10.0.0.236/trunk@22188 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 19:22:20 +00:00
mscott%netscape.com
0c96e67ebc nsISmtpService->SendMessage now takes the host.
git-svn-id: svn://10.0.0.236/trunk@22187 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 19:18:31 +00:00
mscott%netscape.com
e9c17590b1 Sending a message now takes a host. Use it.
git-svn-id: svn://10.0.0.236/trunk@22186 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 19:17:42 +00:00
mscott%netscape.com
8d609e47e6 Add host as paramater to send send message method.
git-svn-id: svn://10.0.0.236/trunk@22185 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 19:17:13 +00:00
fur%netscape.com
e5d87f9498 No CPU_ARCH_TAG for FreeBSD
git-svn-id: svn://10.0.0.236/trunk@22184 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 19:12:26 +00:00
cyeh%netscape.com
0d29461854 added command line arguments, autoconfig LD_LIBRARY_PATH on unix, added
testing of command line arguments


git-svn-id: svn://10.0.0.236/trunk@22183 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 19:09:48 +00:00
ebina%netscape.com
1d63004b5d Changing RegisterFactory to use the new API.
git-svn-id: svn://10.0.0.236/trunk@22182 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 19:08:57 +00:00
akkana%netscape.com
ee25e1ce6d Turn on nsSelectionMgr for windows
git-svn-id: svn://10.0.0.236/trunk@22181 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 19:01:15 +00:00
akkana%netscape.com
59eb4ba094 Turn on nsSelectionMgr class for copy/paste
git-svn-id: svn://10.0.0.236/trunk@22180 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 19:00:17 +00:00
sfraser%netscape.com
31a5c6eedb Add nsSelectionMgr.cpp for akkana
git-svn-id: svn://10.0.0.236/trunk@22179 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 18:59:33 +00:00
kin%netscape.com
97bb438dc7 Fixed javascript syntax error.
git-svn-id: svn://10.0.0.236/trunk@22178 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 18:59:25 +00:00
alecf%netscape.com
5840b03d44 fix AIX bustage
git-svn-id: svn://10.0.0.236/trunk@22177 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 18:58:08 +00:00
cyeh%netscape.com
9e2cad2894 add static library targets to allow overriding of functions in an external project
git-svn-id: svn://10.0.0.236/trunk@22176 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 18:51:32 +00:00
dp%netscape.com
d4b13c8710 Implemented versioning of the repository hieararchy under the registry. Also changed storing longlongs to ints into the registry.
git-svn-id: svn://10.0.0.236/trunk@22175 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 18:41:37 +00:00
pinkerton%netscape.com
9746b4d5c5 add libreg to list of linked libraries to try to get autoregistration working correctly.
git-svn-id: svn://10.0.0.236/trunk@22174 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 18:38:39 +00:00
racham%netscape.com
6cf0f5a6ad Modified buffer sizes in define constants
git-svn-id: svn://10.0.0.236/trunk@22173 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 18:36:56 +00:00
racham%netscape.com
cf0ce80158 increased buffer size for holding value field
git-svn-id: svn://10.0.0.236/trunk@22172 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 18:36:04 +00:00
wtc%netscape.com
02764ab1c7 print thread scope.
git-svn-id: svn://10.0.0.236/trunk@22171 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 18:34:31 +00:00
wtc%netscape.com
4b610a857a print elapsed and expected times.
git-svn-id: svn://10.0.0.236/trunk@22170 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 18:33:19 +00:00
cyeh%netscape.com
6878c5e4eb remove MOZ_PROF compiler option. it's redundant with MOZ_DEBUGOPT, and
it doesn't work to boot. it also has an annoying ifdef structure that is hard
to follow.
if you want to build optimized with debug symbols, use MOZ_DEBUGOPT=1


git-svn-id: svn://10.0.0.236/trunk@22169 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 18:32:39 +00:00
wtc%netscape.com
f1fc5a9fec Make the number of atomic locks configurable by setting the environment
variable NSPR_ATOMIC_HASH_LOCKS.


git-svn-id: svn://10.0.0.236/trunk@22168 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 18:32:14 +00:00
alecf%netscape.com
672bae1c57 fix unix bustage - can't construct objects and pass them as & parameters at the same time
git-svn-id: svn://10.0.0.236/trunk@22167 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 18:25:57 +00:00
alecf%netscape.com
32dc9597e9 fix call to CreateInstance, now that you can create one with a ProgID
git-svn-id: svn://10.0.0.236/trunk@22166 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 18:17:41 +00:00
alecf%netscape.com
d259eb2aad don't use old XFE icon data-related functions
git-svn-id: svn://10.0.0.236/trunk@22165 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 18:00:28 +00:00
alecf%netscape.com
058584fccd fix uninitialize variable and fix various signed/unsigned warnings
git-svn-id: svn://10.0.0.236/trunk@22164 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 17:59:16 +00:00
alecf%netscape.com
97806affe4 add nsIEnumerator interface, and fix nsICollection interface to use long not int
git-svn-id: svn://10.0.0.236/trunk@22163 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 17:57:34 +00:00
alecf%netscape.com
8600e20f0e fix -pedantic bustage - Delete isn't const, so re-cast "this"
git-svn-id: svn://10.0.0.236/trunk@22162 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 17:56:44 +00:00
alecf%netscape.com
9a5ad5ba18 add static IID() method
git-svn-id: svn://10.0.0.236/trunk@22161 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 17:50:59 +00:00
alecf%netscape.com
b8e8e7578e fix -pedantic bustage on Unix
git-svn-id: svn://10.0.0.236/trunk@22160 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 17:49:41 +00:00
alecf%netscape.com
c693124762 add temporary hack to instantiate Messenger in the JS namespace
git-svn-id: svn://10.0.0.236/trunk@22159 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 17:47:35 +00:00
alecf%netscape.com
91fa5c9384 no need to export non-existant IDL files
git-svn-id: svn://10.0.0.236/trunk@22158 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 17:45:29 +00:00
alecf%netscape.com
815d6d9c4c fix HPUX/AIX/OSF bustage - most unices need stdlib.h to get abort()
git-svn-id: svn://10.0.0.236/trunk@22157 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 17:41:47 +00:00
troy%netscape.com
64a3061b36 Per Kipp's request, added patch from Mark Harvey (Mark.Harvey@wireplay.bt.co.uk) so we
don't have an imagehlp.dll dependency unless MOZ_TRACE_XPCOM_REFCNT is defined


git-svn-id: svn://10.0.0.236/trunk@22156 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 17:39:55 +00:00
alecf%netscape.com
da118a4713 fix HPUX bustage - can't have const user-defined (typedefed) variables inside structures without initializing them inside that structure
git-svn-id: svn://10.0.0.236/trunk@22155 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 17:39:28 +00:00
pinkerton%netscape.com
75e89e602f titlebuttons are not block frames!
git-svn-id: svn://10.0.0.236/trunk@22154 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 17:38:40 +00:00
alecf%netscape.com
8720c2952d fix HPUX bustage - now that we're using PR_FREEIF, you can't put (void*)
casts inside it.


git-svn-id: svn://10.0.0.236/trunk@22153 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 17:36:57 +00:00
alecf%netscape.com
fef17484d9 BandRect needs to be public to be visible outside the class definition (HPUX bustage)
git-svn-id: svn://10.0.0.236/trunk@22152 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 17:36:00 +00:00
ftang%netscape.com
b421dc5509 fix some unix warning
git-svn-id: svn://10.0.0.236/trunk@22151 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 17:34:58 +00:00
alecf%netscape.com
ab3c25a5f2 fix HPUX bustage - HP already has MIN, MAX, TRUE, and FALSE defined
git-svn-id: svn://10.0.0.236/trunk@22150 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 17:27:02 +00:00
alecf%netscape.com
c729288dab fix HPUX bustage: font should be const
git-svn-id: svn://10.0.0.236/trunk@22149 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 17:26:25 +00:00
alecf%netscape.com
9cb5576e4d fix HPUX bustage - don't declare classnames inside class definitition
git-svn-id: svn://10.0.0.236/trunk@22148 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 17:25:31 +00:00
pinkerton%netscape.com
44c442417e added new CreateInstance for warren to fix build bustage that never showed up on tinderbox.
git-svn-id: svn://10.0.0.236/trunk@22147 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 17:25:24 +00:00
ftang%netscape.com
ae6440bd59 fix some unix warning
git-svn-id: svn://10.0.0.236/trunk@22146 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 17:24:47 +00:00
ebina%netscape.com
13608a9e24 Changing RegisterFactory to use the new API.
git-svn-id: svn://10.0.0.236/trunk@22145 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 17:19:00 +00:00
kipp%netscape.com
369110d90c Support sized images
git-svn-id: svn://10.0.0.236/trunk@22144 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 17:15:15 +00:00
kipp%netscape.com
b68d985292 Support entities (bug #3112)
git-svn-id: svn://10.0.0.236/trunk@22143 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 17:13:51 +00:00
kipp%netscape.com
e914323594 Use our own null value
git-svn-id: svn://10.0.0.236/trunk@22142 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 17:13:30 +00:00
kipp%netscape.com
6a553dabe3 Cleaned up operator new and delete
git-svn-id: svn://10.0.0.236/trunk@22141 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 17:13:10 +00:00
kipp%netscape.com
55ffab420a Removed dependency on static constructors
git-svn-id: svn://10.0.0.236/trunk@22140 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 17:12:16 +00:00
kipp%netscape.com
c8fe8ac18f Pass in default image size when loading image
git-svn-id: svn://10.0.0.236/trunk@22139 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 17:12:05 +00:00
kipp%netscape.com
774bcbcaf4 Whacked to handle moving floaters out of the flow
git-svn-id: svn://10.0.0.236/trunk@22138 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 17:11:54 +00:00
ftang%netscape.com
4b07ef7da1 fix some unix warnning
git-svn-id: svn://10.0.0.236/trunk@22137 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 17:11:43 +00:00
kipp%netscape.com
c9321630b1 Fixed up operator new and delete
git-svn-id: svn://10.0.0.236/trunk@22136 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 17:09:35 +00:00
kipp%netscape.com
7948faf8e8 Removed dependency on static constructors; implement operatore delete
git-svn-id: svn://10.0.0.236/trunk@22135 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 17:08:48 +00:00
kipp%netscape.com
f2ab10bb59 Removed move-out-of-flow code now that frame construction code does it; added code to avoid reflows when removing a placeholder frame
git-svn-id: svn://10.0.0.236/trunk@22134 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 17:08:20 +00:00
kipp%netscape.com
afb7fb16b8 Avoid purify noise by initializing all member variables
git-svn-id: svn://10.0.0.236/trunk@22133 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 17:07:49 +00:00
kipp%netscape.com
b8539e233b Support limited scaling of images on unix
git-svn-id: svn://10.0.0.236/trunk@22132 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 17:07:28 +00:00
kipp%netscape.com
d2550f1dbb Removed MoveOutOfFlow
git-svn-id: svn://10.0.0.236/trunk@22131 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 17:07:01 +00:00
kipp%netscape.com
f58eac9104 Implement operator delete; get rid of static constructor
git-svn-id: svn://10.0.0.236/trunk@22130 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 17:05:20 +00:00
kipp%netscape.com
c306aa9bfe Find text runs more often (bug #3278, 3265); floaters are now handled mostly by the frame construction code
git-svn-id: svn://10.0.0.236/trunk@22129 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 17:04:44 +00:00
kipp%netscape.com
ad6702e668 Removed dependency on static constructor
git-svn-id: svn://10.0.0.236/trunk@22128 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 17:03:45 +00:00
kipp%netscape.com
7469bb9bcb Implement operator delete properly; removed dependency on static constructor
git-svn-id: svn://10.0.0.236/trunk@22127 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 17:03:18 +00:00
kipp%netscape.com
83f6d724e1 Support desired image size during loading
git-svn-id: svn://10.0.0.236/trunk@22126 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 17:02:37 +00:00
kipp%netscape.com
2a60d6d88b Added IsFloating inline
git-svn-id: svn://10.0.0.236/trunk@22125 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 17:02:05 +00:00
kipp%netscape.com
507f449b32 Added in desired-size to image loading request
git-svn-id: svn://10.0.0.236/trunk@22124 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 17:01:34 +00:00
kipp%netscape.com
8782ec3985 Removed global gLogModule
git-svn-id: svn://10.0.0.236/trunk@22123 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 16:59:57 +00:00
kipp%netscape.com
cbae90a7c1 Cache alpha-clip pixmap across rendering calls so that transparent gifs render faster; flush cache when bits are updated so that transparent animated gifs don't break
git-svn-id: svn://10.0.0.236/trunk@22122 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 16:59:18 +00:00
ftang%netscape.com
bb66c75305 fix some unix warnning
git-svn-id: svn://10.0.0.236/trunk@22121 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 16:58:33 +00:00
kipp%netscape.com
58c03f58da Removed inline virtuals - a no-no
git-svn-id: svn://10.0.0.236/trunk@22120 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 16:58:18 +00:00
kipp%netscape.com
30a79fc6fa Get alpha line stride so that we don't produce the wrong alpha mask
git-svn-id: svn://10.0.0.236/trunk@22119 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 16:57:54 +00:00
ftang%netscape.com
1ec712e1e8 fix some unix warnning
git-svn-id: svn://10.0.0.236/trunk@22118 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 16:52:34 +00:00
pinkerton%netscape.com
056c27083c add a new RegisterFactory method for ebina.
git-svn-id: svn://10.0.0.236/trunk@22117 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 16:50:27 +00:00
ftang%netscape.com
9fa4a5ec6a fix a log of unix warnning- 1) make sure all XPCOM class destructor are virtual and fix warnning in new file
git-svn-id: svn://10.0.0.236/trunk@22115 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 16:32:08 +00:00
ebina%netscape.com
a859c35703 Changing RegisterFactory to use the new API.
git-svn-id: svn://10.0.0.236/trunk@22114 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 16:18:23 +00:00
fur%netscape.com
c2065b1017 Remove C++ comment in C file.
git-svn-id: svn://10.0.0.236/trunk@22113 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 16:11:37 +00:00
ebina%netscape.com
836781ca39 Changing RegisterFactory to use the new API.
git-svn-id: svn://10.0.0.236/trunk@22112 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 16:07:38 +00:00
ebina%netscape.com
f3c0c2ca83 Changing RegisterFactory to use the new API.
git-svn-id: svn://10.0.0.236/trunk@22111 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 15:59:52 +00:00
kipp%netscape.com
daf4dfbb67 new
git-svn-id: svn://10.0.0.236/trunk@22110 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 15:54:00 +00:00
ftang%netscape.com
9d10b06a0d first check in.This should fix the bustage
git-svn-id: svn://10.0.0.236/trunk@22109 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 15:36:02 +00:00
pavlov%pavlov.net
01824ed107 began work on nsDrawingSurfaceGTK.cpp. it isn't built yet, as it doens't
compile though.  renamed the nsDrawingSurfaceGTK.h to nsOldDrawingSurfaceGTK.h
to avoid name conflicts for now.


git-svn-id: svn://10.0.0.236/trunk@22108 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 15:26:02 +00:00
ftang%netscape.com
36edc1c253 add CharsetAlias factory
git-svn-id: svn://10.0.0.236/trunk@22107 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 15:24:56 +00:00
ftang%netscape.com
be55e2c69d check in hack implementation
git-svn-id: svn://10.0.0.236/trunk@22106 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 15:16:56 +00:00
ftang%netscape.com
55c46dac15 fix some interface probelm
git-svn-id: svn://10.0.0.236/trunk@22105 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 15:15:57 +00:00
edwin%woudt.nl
23789a3a1a You can't rename A to B if B exists. So we need to delete B first.
git-svn-id: svn://10.0.0.236/trunk@22104 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 15:12:09 +00:00
warren%netscape.com
bda4005b55 Making it build with new RDF registration mechanism.
git-svn-id: svn://10.0.0.236/trunk@22103 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 12:24:22 +00:00
warren%netscape.com
5ac2a1d765 Fixed XXXNeverCalled
git-svn-id: svn://10.0.0.236/trunk@22102 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 12:18:19 +00:00
edwin%woudt.nl
ea68125765 Fix to let the Dialog show up.
git-svn-id: svn://10.0.0.236/trunk@22101 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 12:12:13 +00:00
warren%netscape.com
8b314ccb43 Added missing argument.
git-svn-id: svn://10.0.0.236/trunk@22100 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 11:46:42 +00:00
warren%netscape.com
d05d7032e1 Fixed leak when Init fails.
git-svn-id: svn://10.0.0.236/trunk@22099 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 11:42:05 +00:00
warren%netscape.com
2500e9edaf Fixed NSRegisterSelf signature.
git-svn-id: svn://10.0.0.236/trunk@22098 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 11:32:51 +00:00
warren%netscape.com
ba84994876 Fixed variable name.
git-svn-id: svn://10.0.0.236/trunk@22097 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 11:31:04 +00:00
warren%netscape.com
789849f8bf Renamed variable.
git-svn-id: svn://10.0.0.236/trunk@22096 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 10:58:32 +00:00
warren%netscape.com
513a79704b Fixed #endif for non-registry builds.
git-svn-id: svn://10.0.0.236/trunk@22095 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 10:55:07 +00:00
warren%netscape.com
49ed8e046f Changes for RDF component registration using nsRepository. Also changed args to NSGetFactory and friends.
git-svn-id: svn://10.0.0.236/trunk@22094 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 10:17:14 +00:00
karnaze%netscape.com
bf7aa2f2f9 fixed bug where anonymous table frame is constructed inside table related frame.
simplified table frame construction.


git-svn-id: svn://10.0.0.236/trunk@22093 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 09:15:03 +00:00
fur%netscape.com
047bf73e83 Added x86 disassembly to HTML output, courtesy of free code from CMU's
Mach project.


git-svn-id: svn://10.0.0.236/trunk@22092 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 09:10:34 +00:00
fur%netscape.com
74ccfa71b1 Fix OBJDIR naming convention to be simpler
git-svn-id: svn://10.0.0.236/trunk@22091 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 08:48:53 +00:00
evaughan%netscape.com
a39632b9af Removed state info from button renderer.
git-svn-id: svn://10.0.0.236/trunk@22090 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 08:48:24 +00:00
fur%netscape.com
b364ac0639 libpthread must come before libnspr on the link line
git-svn-id: svn://10.0.0.236/trunk@22089 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 08:47:18 +00:00
fur%netscape.com
b02c4ab54d Don't use enums with bitfield widths when running with gcc, since egcs
generates buggy code for this case and there is no way to
differentiate gcc and egcs.


git-svn-id: svn://10.0.0.236/trunk@22088 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 08:45:45 +00:00
mcafee%netscape.com
290b452307 Better ifdef logic for last checkin
git-svn-id: svn://10.0.0.236/trunk@22087 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 08:44:50 +00:00
fur%netscape.com
241ef884c8 Fix syntax error
git-svn-id: svn://10.0.0.236/trunk@22086 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 08:44:40 +00:00
fur%netscape.com
11526464c8 Add libm
git-svn-id: svn://10.0.0.236/trunk@22085 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 08:42:30 +00:00
fur%netscape.com
b968d57b64 Restore building of java.security native libraries
git-svn-id: svn://10.0.0.236/trunk@22084 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 08:41:28 +00:00
mcafee%netscape.com
a61404126a Solaris/CC refused to compile part of this file, giving up for now. a=scc
git-svn-id: svn://10.0.0.236/trunk@22083 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 08:41:15 +00:00
fur%netscape.com
afd136e6bf + Remove dead code
+ Make class initialization slightly more efficient


git-svn-id: svn://10.0.0.236/trunk@22082 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 08:40:13 +00:00
fur%netscape.com
fd8160d7bd Improve comment
git-svn-id: svn://10.0.0.236/trunk@22081 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 08:39:24 +00:00
fur%netscape.com
eaba928492 Fix library ordering problem so that pthreads appears before NSPR on
the link line.


git-svn-id: svn://10.0.0.236/trunk@22080 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 08:38:38 +00:00
fur%netscape.com
ef607fb50d Fix problems in which functions had 'inline' keyword in definition
but not in the corresponding declaration.


git-svn-id: svn://10.0.0.236/trunk@22079 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 08:18:38 +00:00
fur%netscape.com
579b075cdf Make the Linux compile-and-backpatch stub code generation be just like
Win32's, so that method-tracing works.


git-svn-id: svn://10.0.0.236/trunk@22078 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 08:17:06 +00:00
fur%netscape.com
1d244214d1 Under some circumstances, the monitor around the compiler was being
released even though it was not held.


git-svn-id: svn://10.0.0.236/trunk@22077 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 08:15:03 +00:00
rickg%netscape.com
89a3d20da2 fix build crash caused by deque API change
git-svn-id: svn://10.0.0.236/trunk@22076 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 07:37:27 +00:00
rickg%netscape.com
bfceba3989 attempt to fix build
git-svn-id: svn://10.0.0.236/trunk@22075 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 07:24:27 +00:00
rickg%netscape.com
51458a6c52 new API on deque to set deallocator
git-svn-id: svn://10.0.0.236/trunk@22074 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 07:23:56 +00:00
evaughan%netscape.com
e84b411850 Fixed up titled button so hover, focus, active, states work.
git-svn-id: svn://10.0.0.236/trunk@22073 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 06:41:10 +00:00
rickg%netscape.com
5012f4e582 small bug fixes and removal of global statics
git-svn-id: svn://10.0.0.236/trunk@22072 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 06:33:54 +00:00
mcafee%netscape.com
b0e3a4ac8c Adding __SVR4 to check for SunOS 4.1.3, wrapping this check into MOZ_MAY_HAVE_DNS. a=spence
git-svn-id: svn://10.0.0.236/trunk@22071 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 06:20:48 +00:00
bienvenu%netscape.com
38fb01af30 add new hdrs to db and turn on notification by default
git-svn-id: svn://10.0.0.236/trunk@22070 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 06:01:26 +00:00
beard%netscape.com
1a8100e0c5 Fixing callback typedef, using new NS_CALLBACK macro which will be moved to nsCom.h when it proves itself.
git-svn-id: svn://10.0.0.236/trunk@22069 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 04:30:17 +00:00
mscott%netscape.com
7ed5bbeb0c fix clobber rules to correctly clobber resources.
git-svn-id: svn://10.0.0.236/trunk@22068 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 04:22:44 +00:00
mscott%netscape.com
175f212fe3 Fix build breakage. Change OpenURL signature to take a char * instead of an AutoString because the interface was changed that way.
git-svn-id: svn://10.0.0.236/trunk@22067 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 04:16:59 +00:00
mscott%netscape.com
f12953d001 Fix build breakage remove nsIID.h and nsISupportUtils.h from all interfaces until we can figure out where these files come from. I know this is the wrong long term solution so I'm not even changing the idl files.
git-svn-id: svn://10.0.0.236/trunk@22066 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 04:10:24 +00:00
beard%netscape.com
a3a56d921c Now uses nsGenericFactory to provide factories for NS_ALLOCATOR_CID and NS_GENERICFACTORY_CID.
git-svn-id: svn://10.0.0.236/trunk@22065 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 04:09:51 +00:00
mscott%netscape.com
6f69698824 nsFileSpec update.
git-svn-id: svn://10.0.0.236/trunk@22064 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 04:09:39 +00:00
mscott%netscape.com
70f43902ac Fix build breakage. Many of these interfaces had the constness of arguments removed from them. We need to remove the const char *s and change them to char *s in all of the classes that implement those interfaces....This had a carry over effect of forcing several pieces of code to cast const char *s as char *s. Hopefully we can undo all of these changes when the IDL compiler allows you to have const arguments...
git-svn-id: svn://10.0.0.236/trunk@22063 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 04:09:10 +00:00
beard%netscape.com
9387da18fb Added nsGenericFactory.cpp
git-svn-id: svn://10.0.0.236/trunk@22062 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 04:09:07 +00:00
beard%netscape.com
fe425b96af now implements nsIGenericFactory.
git-svn-id: svn://10.0.0.236/trunk@22061 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 04:08:26 +00:00
mscott%netscape.com
9438adee6a nsFileSpec updates...
git-svn-id: svn://10.0.0.236/trunk@22060 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 04:06:37 +00:00
beard%netscape.com
d8af315b9c added nsIGenericFactory.h
git-svn-id: svn://10.0.0.236/trunk@22059 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 04:06:13 +00:00
beard%netscape.com
bf9e88cca3 First Checked In.
git-svn-id: svn://10.0.0.236/trunk@22058 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 04:05:14 +00:00
beard%netscape.com
dc53227e34 Added CID() accessor.
git-svn-id: svn://10.0.0.236/trunk@22057 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 04:04:50 +00:00
mscott%netscape.com
77dda8f63a Add parsing code if the id is part of the urlspec. Use mailbox action enum.
git-svn-id: svn://10.0.0.236/trunk@22056 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 04:04:33 +00:00
beard%netscape.com
17aff0f259 added IID() accessor.
git-svn-id: svn://10.0.0.236/trunk@22055 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 04:04:13 +00:00
mscott%netscape.com
24f4257d53 Fix build breakage. Convert char * to a nsstring before passing it to createNode
git-svn-id: svn://10.0.0.236/trunk@22054 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 04:03:44 +00:00
mscott%netscape.com
2e3a647249 Add enum for mailbox url action type.
git-svn-id: svn://10.0.0.236/trunk@22053 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 04:00:21 +00:00
mscott%netscape.com
e5f5f9cde5 Fix build breakage remove nsIID.h and nsISupportUtils.h from all interfaces until we can figure out where these files come from. I know this is the wrong long term solution so I'm not even changing the idl files.
git-svn-id: svn://10.0.0.236/trunk@22052 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 03:59:33 +00:00
mscott%netscape.com
989ff04df2 nsFileSpec updates.
git-svn-id: svn://10.0.0.236/trunk@22051 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 03:58:26 +00:00
rjc%netscape.com
5394b2a610 Forgot to register/deregister RDFCore factory.
git-svn-id: svn://10.0.0.236/trunk@22050 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 03:55:13 +00:00
mscott%netscape.com
53e276fd09 Fix build by exporting nsIMsg.h
git-svn-id: svn://10.0.0.236/trunk@22049 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 03:54:45 +00:00
leaf%mozilla.org
2a82294f15 adding .deps to ignore the new dependencies directory
git-svn-id: svn://10.0.0.236/trunk@22048 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 03:54:01 +00:00
mcafee%netscape.com
59aa28351c Switching unix to use PR_Abort().
git-svn-id: svn://10.0.0.236/trunk@22047 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 03:52:37 +00:00
mcafee%netscape.com
43188f40b8 Adding do_QueryInterface() to fix Solaris/nxCOMPtr ambiguity.
git-svn-id: svn://10.0.0.236/trunk@22046 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 03:50:37 +00:00
mcafee%netscape.com
42298d96aa readding my fix that buster whomped.
git-svn-id: svn://10.0.0.236/trunk@22045 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 03:46:08 +00:00
troy%netscape.com
5bb51bbb20 Added logic to replicate the caption when splitting the table
git-svn-id: svn://10.0.0.236/trunk@22043 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 03:35:22 +00:00
bienvenu%netscape.com
05158a78f0 more reading and writing of toy db
git-svn-id: svn://10.0.0.236/trunk@22042 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 03:25:16 +00:00
waterson%netscape.com
b3ecd2c6b5 Modified DEFINE_RDF_VOCAB macro so that it doesn't create static constructors on Unix.
git-svn-id: svn://10.0.0.236/trunk@22041 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 03:07:59 +00:00
waterson%netscape.com
22db265958 Bug 3302. Fixed DOM calls to effect (more or less) the right change on the content model, modulo Bug 3275. This was causing asserts to fire whenever you called SetAttribute().
git-svn-id: svn://10.0.0.236/trunk@22040 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 03:02:19 +00:00
jband%netscape.com
d74a10535e removed cruft
git-svn-id: svn://10.0.0.236/trunk@22039 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 02:52:48 +00:00
hyatt%netscape.com
a832e7cd61 Preparing expand/collapse so that it works the right way.
git-svn-id: svn://10.0.0.236/trunk@22038 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 02:50:21 +00:00
saari%netscape.com
4103384808 Comment out SetLabel in LoadMenuItem
SetLabel should be called by the call to Create, to which I added the name back in the call.


git-svn-id: svn://10.0.0.236/trunk@22037 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 02:50:09 +00:00
brendan%netscape.com
a1ab81c5b1 Fix indentation, fiddle to share common fputs string.
git-svn-id: svn://10.0.0.236/trunk@22036 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 02:48:01 +00:00
jband%netscape.com
38b5613680 fixed warnings
git-svn-id: svn://10.0.0.236/trunk@22035 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 02:46:35 +00:00
saari%netscape.com
52083c19e0 Actually do menu creation on the create call.
Commented out SetLabel in nsWebShellWindow::LoadMenuItem


git-svn-id: svn://10.0.0.236/trunk@22034 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 02:45:55 +00:00
rjc%netscape.com
8cd3ac46c2 Small case changes.
git-svn-id: svn://10.0.0.236/trunk@22033 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 02:45:25 +00:00
danm%netscape.com
6a2e3f3bea adding C XUL window construction callback
git-svn-id: svn://10.0.0.236/trunk@22029 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 02:22:42 +00:00
mscott%netscape.com
b4ef1c318a nsFileSpec changes.
git-svn-id: svn://10.0.0.236/trunk@22028 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 02:22:01 +00:00
law%netscape.com
ad76645726 Create reg file if it doesn't exist
git-svn-id: svn://10.0.0.236/trunk@22027 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 02:17:37 +00:00
rjc%netscape.com
56dbfedf7b Modified sidebar.xul regarding sorting.
git-svn-id: svn://10.0.0.236/trunk@22026 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 02:16:56 +00:00
law%netscape.com
9ae1a629b4 New status bar; first draft
git-svn-id: svn://10.0.0.236/trunk@22025 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 02:15:29 +00:00
rjc%netscape.com
282975714f Add in RDFCore.
git-svn-id: svn://10.0.0.236/trunk@22024 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 02:14:51 +00:00
waterson%netscape.com
a411b1387c Improved SplitAttribute() to return kNameSpaceID_None if it finds a tag but can't determine the namespace.
git-svn-id: svn://10.0.0.236/trunk@22023 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 02:09:48 +00:00
rjc%netscape.com
c08b1ae756 Add into RDF Core.
git-svn-id: svn://10.0.0.236/trunk@22022 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 02:08:29 +00:00
rjc%netscape.com
6e30cacd1c Add in RDFCore.idl
git-svn-id: svn://10.0.0.236/trunk@22021 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 02:08:01 +00:00
jband%netscape.com
1740753904 Linux x86 now runs and passes all the same tests as Win32. Added md/test as a place and framework to start ports to other platforms
git-svn-id: svn://10.0.0.236/trunk@22020 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 02:04:33 +00:00
rjc%netscape.com
0629e3a3f0 Add RDF file system datasource into builds.
git-svn-id: svn://10.0.0.236/trunk@22019 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 02:04:28 +00:00
akkana%netscape.com
5aba739fcc Fixes to make the mac build; jfrancis will follow with the project file
git-svn-id: svn://10.0.0.236/trunk@22017 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 01:59:49 +00:00
alecf%netscape.com
29d7191943 rev the XPIDL-generated headers, and update API calls to match
includes dropping "const"ness from parameters
some nsString routines were converted back to char* for the time being.
also added nsIMsg.h, it seemed to be missing

Also many fixes to get Unix building again.


git-svn-id: svn://10.0.0.236/trunk@22016 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 01:56:15 +00:00
sfraser%netscape.com
acb9d031fd Remove MoreFiles.shlb from the optimized target.
git-svn-id: svn://10.0.0.236/trunk@22014 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 01:34:04 +00:00
alecf%netscape.com
7318c8827e add new compose makefiles
git-svn-id: svn://10.0.0.236/trunk@22012 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 01:22:12 +00:00
terry%netscape.com
200d36f911 Removed "Platform: Lesstif on Linux" component.
git-svn-id: svn://10.0.0.236/trunk@22011 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 01:18:25 +00:00
alecf%netscape.com
43704aa51c rev the XPIDL generated headers
git-svn-id: svn://10.0.0.236/trunk@22010 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 01:17:12 +00:00
alecf%netscape.com
087b97ae1f check in unix makefiles/ignore files
git-svn-id: svn://10.0.0.236/trunk@22009 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 01:16:07 +00:00
alecf%netscape.com
2e11906933 update to make compose build on Linux
git-svn-id: svn://10.0.0.236/trunk@22008 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 01:14:57 +00:00
sfraser%netscape.com
1d6c6156b4 File Removed.
git-svn-id: svn://10.0.0.236/trunk@22007 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 01:13:09 +00:00
sfraser%netscape.com
8707f97633 First Checked In.
git-svn-id: svn://10.0.0.236/trunk@22006 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 01:12:49 +00:00
terry%netscape.com
bd8e33797e Patch by Dhiren Patel <dhiren@nuvomedia.com> (tweaked by me) -- add a
link to Enter A Bug when viewing a list of bugs.


git-svn-id: svn://10.0.0.236/trunk@22005 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 01:08:50 +00:00
putterman%netscape.com
8f8b505175 AddRef database in constructor.
git-svn-id: svn://10.0.0.236/trunk@22004 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 01:02:15 +00:00
terry%netscape.com
74c82f07d6 Removed MFC/Win32 component.
git-svn-id: svn://10.0.0.236/trunk@22003 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 01:01:34 +00:00
sfraser%netscape.com
810a288777 Remove ; to fix warnings.
git-svn-id: svn://10.0.0.236/trunk@22002 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 00:55:22 +00:00
sfraser%netscape.com
c74199e668 Mac project changes -- link with MSLDropInRuntime, instead of MSLShLibRuntime, and fix link order.
git-svn-id: svn://10.0.0.236/trunk@22001 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 00:54:57 +00:00
sfraser%netscape.com
08cf89f6dd Mac project changes -- link with MSLDropInRuntime, instead of MSLShLibRuntime, and fix link order. Also clean up the prefix file mess.
git-svn-id: svn://10.0.0.236/trunk@22000 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 00:54:45 +00:00
sfraser%netscape.com
a63f8fa1e1 Mac project changes -- don't generate SYM file.
git-svn-id: svn://10.0.0.236/trunk@21999 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 00:52:23 +00:00
sfraser%netscape.com
f0dd92bf71 Mac project changes -- no longer need to link with some libraries, so remove these from the project (MoreFiles, MemAllcoatorStubs).
git-svn-id: svn://10.0.0.236/trunk@21998 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 00:49:57 +00:00
sfraser%netscape.com
468246c95a Change project build order, and build MoreFiles and MemAllocator as static libs.
git-svn-id: svn://10.0.0.236/trunk@21997 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 00:48:30 +00:00
terry%netscape.com
9fadcb978b Major rewrite by Ry4an Brase <ry4an@ry4an.org>, with some edits by me.
git-svn-id: svn://10.0.0.236/trunk@21996 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 00:47:29 +00:00
despotdaemon%netscape.com
df709ba5ea Pseudo-automatic update of changes made by wtc@netscape.com.
git-svn-id: svn://10.0.0.236/trunk@21995 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 00:45:30 +00:00
sfraser%netscape.com
f59ab36c66 Mac project changes -- convert from using MLSShLibRuntime to MSLDropinRuntime.
git-svn-id: svn://10.0.0.236/trunk@21994 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 00:44:01 +00:00
sfraser%netscape.com
24e96ce5ac Mac project changes -- NSStdlib now includes the memory allocators and MoreFiles as static libraries, and re-exports their symbols.
git-svn-id: svn://10.0.0.236/trunk@21993 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 00:41:00 +00:00
sfraser%netscape.com
067a38fdcb Mac project changes: remove MSL libs from NSRuntime, and don't export new/delete from here
git-svn-id: svn://10.0.0.236/trunk@21992 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 00:40:12 +00:00
sfraser%netscape.com
5776fcaf07 Mac project uptates; build the memory allocators and morefiles as static libraries.
git-svn-id: svn://10.0.0.236/trunk@21991 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 00:39:19 +00:00
dougt%netscape.com
5c3d475c6d Remove #ifdef DEBUG
git-svn-id: svn://10.0.0.236/trunk@21990 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 00:14:57 +00:00
terry%netscape.com
2ef818e612 Wasn't able to mass-change a component before.
git-svn-id: svn://10.0.0.236/trunk@21989 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 23:54:14 +00:00
terry%netscape.com
5f34c3c373 Removed MacOS/PPC component.
git-svn-id: svn://10.0.0.236/trunk@21988 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 23:42:52 +00:00
despotdaemon%netscape.com
8dbe0bf70c Pseudo-automatic update of changes made by terry@netscape.com.
git-svn-id: svn://10.0.0.236/trunk@21987 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 23:36:23 +00:00
briano%netscape.com
3bc1b498bb More cleanup, and now we force the compiler on Solaris x86 to be EGCS.
git-svn-id: svn://10.0.0.236/trunk@21986 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 23:35:52 +00:00
despotdaemon%netscape.com
ce1d1876aa Pseudo-automatic update of changes made by terry@netscape.com.
git-svn-id: svn://10.0.0.236/trunk@21985 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 23:35:48 +00:00
dougt%netscape.com
3f857cbd81 tests are failing on window optimized. I am removing the test dir from the
build path until I can figure it out.


git-svn-id: svn://10.0.0.236/trunk@21984 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 23:19:12 +00:00
edwin%woudt.nl
5ae199533b Status update!
git-svn-id: svn://10.0.0.236/trunk@21983 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 23:09:12 +00:00
michaelp%netscape.com
1e84ef5fb9 bustage with new nsFileSpec.h
git-svn-id: svn://10.0.0.236/trunk@21982 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 23:08:51 +00:00
mccabe%netscape.com
5a91ac81df Initial checkin of typelib loading service.
git-svn-id: svn://10.0.0.236/trunk@21981 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 22:56:43 +00:00
dougt%netscape.com
f3f6d856e0 Another fix to the build bustage.
git-svn-id: svn://10.0.0.236/trunk@21980 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 22:17:25 +00:00
dougt%netscape.com
a28665a754 This should make the tree go green. It, however, makes nsPersistentFileDescriptor broken if you pass an fsspec.
git-svn-id: svn://10.0.0.236/trunk@21979 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 22:04:50 +00:00
dougt%netscape.com
25bcdd1a61 Changed nsNativeFileSpec to nsFileSpec.
git-svn-id: svn://10.0.0.236/trunk@21978 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 20:58:10 +00:00
dougt%netscape.com
451b4db4af Merging branch BASE_19_FEB_99 to tip. These are extensive changes
to nsFileSpec and and nsFileStream.  See dougt@netscape.com or
John McMullen for futher information.


git-svn-id: svn://10.0.0.236/trunk@21977 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 20:49:47 +00:00
ftang%netscape.com
f1b059f18d fix the bustage
git-svn-id: svn://10.0.0.236/trunk@21976 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 20:16:28 +00:00
briano%netscape.com
d6117dc2c9 Automated update
git-svn-id: svn://10.0.0.236/trunk@21975 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 20:00:38 +00:00
ftang%netscape.com
60ba4d7407 add readme.txt file for serveral directory
git-svn-id: svn://10.0.0.236/trunk@21974 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 19:59:47 +00:00
wtc%netscape.com
69eda9d37b Changed NSPR ==> NSPS.
git-svn-id: svn://10.0.0.236/trunk@21973 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 19:58:12 +00:00
ftang%netscape.com
94731511ba First check in
git-svn-id: svn://10.0.0.236/trunk@21972 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 19:57:03 +00:00
buster%netscape.com
a200933a99 added GetStyleContextFor
git-svn-id: svn://10.0.0.236/trunk@21971 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 19:55:06 +00:00
ftang%netscape.com
b7db5d8561 enable ucvja2 . add placeholder for Chinese/Korean/Vietnamese/Thai converters.
git-svn-id: svn://10.0.0.236/trunk@21970 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 19:52:25 +00:00
ftang%netscape.com
9fd58e5604 First Checked In.
git-svn-id: svn://10.0.0.236/trunk@21969 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 19:50:08 +00:00
slamm%netscape.com
60c064de5d Force configure to be regenerated.
git-svn-id: svn://10.0.0.236/trunk@21968 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 19:47:46 +00:00
wtc%netscape.com
c073a85602 Link the tests against $(LIBPLC) $(LIBPLDS) $(LIBPR).
git-svn-id: svn://10.0.0.236/trunk@21967 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 19:46:30 +00:00
alecf%netscape.com
14c4d02ab6 fix HPUX bustage - don't put commas after last element in enum declaration
git-svn-id: svn://10.0.0.236/trunk@21966 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 19:45:44 +00:00
cyeh%netscape.com
162f7e0a0a fixed busted perl script by adding proper quoting. duh.
git-svn-id: svn://10.0.0.236/trunk@21965 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 19:43:40 +00:00
cyeh%netscape.com
e301d8f212 add quick result to stdout
git-svn-id: svn://10.0.0.236/trunk@21964 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 19:40:38 +00:00
edwin%woudt.nl
f0b27c0052 Oops! Some illegal character slipped in.
git-svn-id: svn://10.0.0.236/trunk@21963 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 19:39:15 +00:00
cyeh%netscape.com
1599fcf118 little perl script that searches for global constructors/destructors
in build objects in the tree


git-svn-id: svn://10.0.0.236/trunk@21962 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 19:35:05 +00:00
rods%netscape.com
8c2c134ce5 Fixed name space problems with the xul and changed button to be title buttons
git-svn-id: svn://10.0.0.236/trunk@21961 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 19:34:54 +00:00
ftang%netscape.com
40f3362d92 add nsCharsetAliasImp.cpp
git-svn-id: svn://10.0.0.236/trunk@21960 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 19:32:34 +00:00
ftang%netscape.com
8a3aa58c3e add two cpp file into uconv.toc
git-svn-id: svn://10.0.0.236/trunk@21959 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 19:29:52 +00:00
wtc%netscape.com
51c4060a76 Merged /m/src/ns/nspr20/lib/tests/arena.c, revision 1.2, by larryh.
git-svn-id: svn://10.0.0.236/trunk@21958 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 19:29:46 +00:00
ftang%netscape.com
02544623ab add placeholder for nsCharsetAliasImp.cpp
git-svn-id: svn://10.0.0.236/trunk@21957 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 19:27:18 +00:00
ftang%netscape.com
605cae244e add placehodler for nsCharsetAliasImp.cpp
git-svn-id: svn://10.0.0.236/trunk@21956 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 19:26:33 +00:00
law%netscape.com
4f42dc7317 Fixes for Mac
git-svn-id: svn://10.0.0.236/trunk@21955 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 19:24:18 +00:00
slamm%netscape.com
b9e28d6823 Always use --with-nspr for nspr flag (not MOZ_WITH_NSPR). Change myconfig.sh to mozconfig.sh.
git-svn-id: svn://10.0.0.236/trunk@21954 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 19:22:46 +00:00
law%netscape.com
6033015167 Add DIRS=registry to win32 build
git-svn-id: svn://10.0.0.236/trunk@21953 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 19:22:13 +00:00
slamm%netscape.com
a1f2d080d0 Change myconfig to mozconfig.
git-svn-id: svn://10.0.0.236/trunk@21952 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 19:21:29 +00:00
ftang%netscape.com
6fa93574e6 add nsICharsetAlias.h interface
git-svn-id: svn://10.0.0.236/trunk@21951 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 19:21:25 +00:00
law%netscape.com
771c27f26f Adding nsRegistry to win32 build
git-svn-id: svn://10.0.0.236/trunk@21950 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 19:20:39 +00:00
slamm%netscape.com
9515e42db7 Add run_apprunner target
git-svn-id: svn://10.0.0.236/trunk@21949 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 19:18:59 +00:00
law%netscape.com
a4235416e3 Export nsIRegistry.h
git-svn-id: svn://10.0.0.236/trunk@21948 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 19:16:00 +00:00
vidur%netscape.com
9270605250 Made style reresolution propogate down to the bullet frames for list items. Added list related attribute tests.
git-svn-id: svn://10.0.0.236/trunk@21947 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 19:14:35 +00:00
edwin%woudt.nl
4e807fe46d Reflecting all currently working providers. (Except imap and smtp as they are handled correctly bij javamail itself)
git-svn-id: svn://10.0.0.236/trunk@21946 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 19:13:27 +00:00
alecf%netscape.com
f623a06bc4 fix HPUX bustage - HPUX doesn't do static_cast
git-svn-id: svn://10.0.0.236/trunk@21945 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 19:09:16 +00:00
ftang%netscape.com
0853369702 add newly design interface file
git-svn-id: svn://10.0.0.236/trunk@21944 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 19:08:45 +00:00
pinkerton%netscape.com
d24a730907 Removing obsolete files. These were never really needed.
git-svn-id: svn://10.0.0.236/trunk@21943 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 19:02:31 +00:00
pinkerton%netscape.com
58e86110fe Removing nsThrobberGlue.cpp
git-svn-id: svn://10.0.0.236/trunk@21942 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 19:01:33 +00:00
pinkerton%netscape.com
75f054fa60 removing nsThrobberGlue.cpp
git-svn-id: svn://10.0.0.236/trunk@21941 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 19:01:08 +00:00
michaelp%netscape.com
68e6998fbd added nsIDrawingSurface, a windows specific counterpart and a windows
implementation. cleaned up windows blending code to the point where we
don't really need platform specific blending implementations at all
anymore. added region area return from nsIRegion::GetRects(). unified all
windows bitmap management code under nsDrawingSurfaceWin.cpp.


git-svn-id: svn://10.0.0.236/trunk@21940 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 18:53:31 +00:00
alecf%netscape.com
cb08c3dc10 add nsICollection.idl
git-svn-id: svn://10.0.0.236/trunk@21939 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 18:51:53 +00:00
pinkerton%netscape.com
850fd37ff2 remove nsThrobberGlue.cpp
git-svn-id: svn://10.0.0.236/trunk@21938 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 18:51:00 +00:00
alecf%netscape.com
7458e02ae8 include jsapi.h whenever we're doing stub work
git-svn-id: svn://10.0.0.236/trunk@21937 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 18:47:58 +00:00
michaelp%netscape.com
fe37951134 work in progress for new compositor.
git-svn-id: svn://10.0.0.236/trunk@21936 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 18:44:45 +00:00
ebina%netscape.com
465c926ebe Change old RegisterFactory calls to use the new API.
git-svn-id: svn://10.0.0.236/trunk@21935 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 18:38:45 +00:00
ebina%netscape.com
989ce33bbf Change old RegisterFactory call to use the new API.
git-svn-id: svn://10.0.0.236/trunk@21934 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 18:37:30 +00:00
waterson%netscape.com
8bf6a59a42 Added support for <xul:treebody xul:id=...>
git-svn-id: svn://10.0.0.236/trunk@21933 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 18:37:27 +00:00
jband%netscape.com
a15cd434c9 added unix makesfiles, fixed two bad static casts, invoke code working on Linux, working on stubs code for Linux
git-svn-id: svn://10.0.0.236/trunk@21932 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 18:14:51 +00:00
dp%netscape.com
5cf4630054 Removing strange characters
git-svn-id: svn://10.0.0.236/trunk@21931 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 18:11:58 +00:00
terry%netscape.com
c245556712 Removed OS/2 component.
git-svn-id: svn://10.0.0.236/trunk@21930 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 18:11:20 +00:00
kostello%netscape.com
76bc4c8e27 Modifications to turn on the Editor Appshell Testbed for Windows
git-svn-id: svn://10.0.0.236/trunk@21929 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 18:06:26 +00:00
jfrancis%netscape.com
41cb054736 Adding Editor AppCore to macbuild
git-svn-id: svn://10.0.0.236/trunk@21928 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 18:05:37 +00:00
kin%netscape.com
e8423e91a5 Modifications to turn on EditorAppShell test bed for Linux.
git-svn-id: svn://10.0.0.236/trunk@21927 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 18:04:50 +00:00
terry%netscape.com
efb0274631 Patch from Dhiren Patel <dhiren@nuvomedia.com> -- deal with products
that have spaces or other weird characters in them.


git-svn-id: svn://10.0.0.236/trunk@21926 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 18:01:02 +00:00
alecf%netscape.com
572519680a forgot to capitalize a variable
git-svn-id: svn://10.0.0.236/trunk@21925 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 17:52:33 +00:00
alecf%netscape.com
49eb294d55 include stdlib for HPUX
git-svn-id: svn://10.0.0.236/trunk@21924 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 17:48:25 +00:00
alecf%netscape.com
4b3e627852 fix HPUX bustage - HP's compiler can't do "using" or static casts
git-svn-id: svn://10.0.0.236/trunk@21923 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 17:47:54 +00:00
briano%netscape.com
0032e2e4af Automated update
git-svn-id: svn://10.0.0.236/trunk@21922 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 17:45:40 +00:00
coop%netscape.com
e17dee7c12 NOT YET PART OF SEAMONKEY:
* first pass at typelib linker
* parent_interface modification is untested
* interface offset management is unimplemented
* what to do about annotations?


git-svn-id: svn://10.0.0.236/trunk@21921 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 17:45:11 +00:00
harishd%netscape.com
49c3b93aed Enabling view source window to display title.
git-svn-id: svn://10.0.0.236/trunk@21920 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 17:43:41 +00:00
harishd%netscape.com
a8f3c33c80 Enabling view source window to display title.
Added methods OpenHead() and CloseHead() to
the CViewSourceHTML class.


git-svn-id: svn://10.0.0.236/trunk@21919 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 17:43:16 +00:00
dp%netscape.com
9bd7ffc2b2 Meeting notes added
git-svn-id: svn://10.0.0.236/trunk@21918 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 17:43:02 +00:00
alecf%netscape.com
bd5640928a add C++ compiler checks for namespaces and static_cast (for nsCOMPtr)
git-svn-id: svn://10.0.0.236/trunk@21917 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 17:38:09 +00:00
pavlov%pavlov.net
ef5a9a8f4d remove keyboard accelerators so that editor works on the keys that had accels.
git-svn-id: svn://10.0.0.236/trunk@21916 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 17:33:06 +00:00
kin%netscape.com
faebbc2480 Initial check in of files for EditorAppShell test bed.
git-svn-id: svn://10.0.0.236/trunk@21915 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 17:32:59 +00:00
brade%netscape.com
885ac024e0 reformat (remove tabs; fix spacing/indent to be consistent with other files)
git-svn-id: svn://10.0.0.236/trunk@21914 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 17:32:00 +00:00
kin%netscape.com
ecd35a5e3d Removed gif files. Need to recheck them in using -kb flag to mark them as
binary.


git-svn-id: svn://10.0.0.236/trunk@21913 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 17:30:38 +00:00
alecf%netscape.com
aa43fb61a4 fix for BSD/OS 3.1
git-svn-id: svn://10.0.0.236/trunk@21912 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 17:26:22 +00:00
waterson%netscape.com
206bbf35d4 Improved tag matching so that it doesn't assume XUL namespace. Added nsIXMLContent methods in anticipation of someday getting real namespace scoping right. See http://bugzilla.mozilla.org/show_bug.cgi?id=3275 for more info.
git-svn-id: svn://10.0.0.236/trunk@21911 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 17:15:57 +00:00
brade%netscape.com
6b5c0c05a9 clean up (remove tabs, etc.)
git-svn-id: svn://10.0.0.236/trunk@21910 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 17:01:03 +00:00
edwin%woudt.nl
34b2e9668b Fixed another nasty bug. Possibly also because the JavaMail API changed to first call protocolConnect with a null password and if that fails to lookup the password and call protocolConnect again.
git-svn-id: svn://10.0.0.236/trunk@21909 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 16:48:33 +00:00
brade%netscape.com
f797c7d1e9 First Checked In.
git-svn-id: svn://10.0.0.236/trunk@21908 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 16:46:58 +00:00
kipp%netscape.com
dd3ae803c4 Avoid crashing if the url doesn't have a container
git-svn-id: svn://10.0.0.236/trunk@21907 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 16:43:17 +00:00
kipp%netscape.com
9addc29ade removed
git-svn-id: svn://10.0.0.236/trunk@21906 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 16:42:47 +00:00
kipp%netscape.com
8070a9c09f Added .cvsignores
git-svn-id: svn://10.0.0.236/trunk@21905 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 16:42:19 +00:00
kipp%netscape.com
4b4cf3fd26 Eliminate global constuctor dependency
git-svn-id: svn://10.0.0.236/trunk@21904 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 16:41:54 +00:00
kipp%netscape.com
b4dec93fd1 new
git-svn-id: svn://10.0.0.236/trunk@21903 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 16:41:09 +00:00
brade%netscape.com
c8121e783c First Checked In.
git-svn-id: svn://10.0.0.236/trunk@21902 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 16:35:36 +00:00
kin%netscape.com
2fc00c11bc Initial checkin of file for the EditorAppShell test bed.
git-svn-id: svn://10.0.0.236/trunk@21901 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 16:24:05 +00:00
brade%netscape.com
ec435e7d0a First Checked In.
git-svn-id: svn://10.0.0.236/trunk@21900 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 16:20:55 +00:00
edwin%woudt.nl
5d45d9a695 Now that was a nasty bug. The Javamail API changed. Hmm... now we have two working news stores and maybe even two working POP3 stores.
git-svn-id: svn://10.0.0.236/trunk@21899 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 16:14:45 +00:00
buster%netscape.com
8579381793 minor bug fixes
git-svn-id: svn://10.0.0.236/trunk@21898 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 16:09:18 +00:00
ebina%netscape.com
c80f10297f Stub in the new RegisterFactory API in preparation for removing the old one.
git-svn-id: svn://10.0.0.236/trunk@21897 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 16:07:31 +00:00
brade%netscape.com
06ecb9f0c1 First Checked In.
git-svn-id: svn://10.0.0.236/trunk@21896 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 16:07:25 +00:00
buster%netscape.com
b18e41adc0 edge conditions now supported for SetTextProperty. You now get correct behavior when you select the beginning of a text block, or the end.
You now get correct behavior if the selection spans multiple text blocks, as long as the blocks have the same grandparent.


git-svn-id: svn://10.0.0.236/trunk@21895 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 16:05:43 +00:00
cata%netscape.com
d3c71a6c51 Generic factory used.
git-svn-id: svn://10.0.0.236/trunk@21894 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 15:48:41 +00:00
brade%netscape.com
5f56326130 add "static" to CreateRobotDialog and CreateSizeDialog to reduce compiler warnings on Macintosh
git-svn-id: svn://10.0.0.236/trunk@21893 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 15:40:59 +00:00
brade%netscape.com
d956616cd3 remove extra comma to reduce compiler warnings on Macintosh
git-svn-id: svn://10.0.0.236/trunk@21892 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 15:39:50 +00:00
brade%netscape.com
a64bcb4630 add "static" to GetFrameBorderHelper to reduce compiler warnings on Macintosh
git-svn-id: svn://10.0.0.236/trunk@21891 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 15:38:29 +00:00
cata%netscape.com
f937e91bfd Small output format change.
git-svn-id: svn://10.0.0.236/trunk@21890 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 14:46:46 +00:00
cata%netscape.com
d493860db8 Generic factory used.
git-svn-id: svn://10.0.0.236/trunk@21889 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 14:44:44 +00:00
cata%netscape.com
d937524287 UnicodeToLatin1 component added.
git-svn-id: svn://10.0.0.236/trunk@21888 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 14:22:42 +00:00
cata%netscape.com
34ab284a39 added files: mozilla/intl/uconv/ucvlatin/nsUnicodeToLatin1.cpp, mozilla/intl/uconv/ucvlatin/nsUCvLatinSupport.cpp
git-svn-id: svn://10.0.0.236/trunk@21887 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 14:16:13 +00:00
edwin%woudt.nl
780811338b Needed to get news working.
git-svn-id: svn://10.0.0.236/trunk@21886 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 14:08:14 +00:00
cata%netscape.com
e20153f1e5 added files: mozilla/intl/uconv/src/nsUnicodeEncodeHelper.cpp
git-svn-id: svn://10.0.0.236/trunk@21885 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 13:36:27 +00:00
cata%netscape.com
3f6ecfa919 Generic factory used.
git-svn-id: svn://10.0.0.236/trunk@21884 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 13:15:07 +00:00
mcafee%netscape.com
0ccc2b6075 Reverting purify compiler back to CCC, this doesn't work with egcs/c++ anyways..
git-svn-id: svn://10.0.0.236/trunk@21883 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 11:12:51 +00:00
mcafee%netscape.com
ef156e8b9a Adding do_QueryInterface() wrappers for Solaris/CC
git-svn-id: svn://10.0.0.236/trunk@21882 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 11:08:53 +00:00
hyatt%netscape.com
31cd9ee4dd Implemented rollover feedback.
git-svn-id: svn://10.0.0.236/trunk@21881 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 09:37:17 +00:00
grail%cafebabe.org
ed017fb44b Removed some debugging information.
git-svn-id: svn://10.0.0.236/trunk@21880 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 07:44:57 +00:00
grail%cafebabe.org
7128be3e86 Preference dialog shows up and even saves the info back.
git-svn-id: svn://10.0.0.236/trunk@21879 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 07:44:11 +00:00
akkana%netscape.com
c678ac3e51 Back out previous change
git-svn-id: svn://10.0.0.236/trunk@21878 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 07:25:36 +00:00
akkana%netscape.com
037abd6d71 Backing out my changes
git-svn-id: svn://10.0.0.236/trunk@21877 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 06:54:50 +00:00
beard%netscape.com
ce87f6cb8a backed out my nsAllocator.cpp addition.
git-svn-id: svn://10.0.0.236/trunk@21876 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 06:17:05 +00:00
beard%netscape.com
31b35318b6 added nsAllocator.cpp to build
git-svn-id: svn://10.0.0.236/trunk@21875 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 06:15:01 +00:00
akkana%netscape.com
69c736c565 Add another ifdef to fix build
git-svn-id: svn://10.0.0.236/trunk@21874 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 06:13:48 +00:00
beard%netscape.com
98de55ae05 removing Malloc::create.
git-svn-id: svn://10.0.0.236/trunk@21873 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 06:11:25 +00:00
mcafee%netscape.com
2f0e19c245 Adding nsAllocator.cpp to Unix build
git-svn-id: svn://10.0.0.236/trunk@21872 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 06:08:13 +00:00
wtc%netscape.com
f2c490b3a7 Bugsplat bug #335804: made _MD_IrixIntervalPerSec return the correct
value.  Also some code cleanup for the default UNIX timer case.


git-svn-id: svn://10.0.0.236/trunk@21871 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 06:02:39 +00:00
akkana%netscape.com
e964886b03 turn on selection mgr in app shell; forgot this file in last check-in
git-svn-id: svn://10.0.0.236/trunk@21870 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 05:49:43 +00:00
sfraser%netscape.com
eaab1f6e0a File Removed.
git-svn-id: svn://10.0.0.236/trunk@21869 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 05:45:12 +00:00
troy%netscape.com
51829aa69c Fixed it so we clear the NS_FRAME_SYNC_FRAME_AND_VIEW bit, because the
default is that it's set


git-svn-id: svn://10.0.0.236/trunk@21868 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 05:41:05 +00:00
akkana%netscape.com
a89bc61e71 Use the real nsISelectionMgr for doCopy
git-svn-id: svn://10.0.0.236/trunk@21867 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 05:32:30 +00:00
troy%netscape.com
b51e46e943 Removed nsIFrame::CreateContinuingFrame()
git-svn-id: svn://10.0.0.236/trunk@21866 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 05:31:15 +00:00
sfraser%netscape.com
6028d8ac48 File Removed.
git-svn-id: svn://10.0.0.236/trunk@21865 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 05:09:53 +00:00
beard%netscape.com
98967931ba First Checked In.
git-svn-id: svn://10.0.0.236/trunk@21864 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 04:41:02 +00:00
beard%netscape.com
a0b014ad4f Added nsILiveConnectManager.h.
git-svn-id: svn://10.0.0.236/trunk@21863 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 04:39:20 +00:00
beard%netscape.com
dee44e2cab registering NS_ALLOCATOR_CID, NS_PLUGIN_HOST_CID, fixed some mutually exclusive ifdefs.
git-svn-id: svn://10.0.0.236/trunk@21862 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 04:30:45 +00:00
beard%netscape.com
337f3e2931 LiveConnect initialization.
git-svn-id: svn://10.0.0.236/trunk@21861 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 04:29:08 +00:00
beard%netscape.com
abce4d8cdf Updated to CWPro 4 format.
git-svn-id: svn://10.0.0.236/trunk@21860 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 04:25:04 +00:00
beard%netscape.com
6be1979216 Added nsAllocator.cpp, nsGenericFactory.cpp, removed nsMalloc.cpp.
git-svn-id: svn://10.0.0.236/trunk@21859 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 04:24:21 +00:00
beard%netscape.com
7dffb645fd added nsIAllocator.h
git-svn-id: svn://10.0.0.236/trunk@21858 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 04:21:12 +00:00
beard%netscape.com
c37ed31d31 made nsAllocatorFactory publically inherit from nsIFactory.
git-svn-id: svn://10.0.0.236/trunk@21857 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 04:20:51 +00:00
beard%netscape.com
0d07f4b46c cleaned up factory logic for service manager.
git-svn-id: svn://10.0.0.236/trunk@21856 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 04:20:06 +00:00
beard%netscape.com
b15f9df7b3 removed stray ; from IID macro
git-svn-id: svn://10.0.0.236/trunk@21855 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 04:19:27 +00:00
beard%netscape.com
dfcfe44f77 #include "jni.h" if necessary.
git-svn-id: svn://10.0.0.236/trunk@21854 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 04:18:59 +00:00
beard%netscape.com
1e6fcb2ed1 Renamed CID macro.
git-svn-id: svn://10.0.0.236/trunk@21853 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 04:18:30 +00:00
beard%netscape.com
5b22aebd36 implementing nsILiveConnectManager.
git-svn-id: svn://10.0.0.236/trunk@21852 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 04:18:00 +00:00
beard%netscape.com
0d75747d10 implementing nsILiveConnectManager interface methods.
git-svn-id: svn://10.0.0.236/trunk@21851 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 04:16:50 +00:00
beard%netscape.com
297f27dd8d removed eager loading, implemented GetPluginFactory() for use by OJI.
git-svn-id: svn://10.0.0.236/trunk@21850 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 04:15:39 +00:00
beard%netscape.com
3a07cb34a1 mserviceMgr -> mServiceMgr
git-svn-id: svn://10.0.0.236/trunk@21849 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 04:14:19 +00:00
beard%netscape.com
7aa1b2cbf7 implemented GetPluginInfo.
git-svn-id: svn://10.0.0.236/trunk@21848 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 04:12:55 +00:00
beard%netscape.com
4f0fa8709a Added support for NS_ALLOCATOR_CID.
git-svn-id: svn://10.0.0.236/trunk@21847 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 04:05:50 +00:00
bienvenu%netscape.com
4d7c3e3536 hack up some persistance
git-svn-id: svn://10.0.0.236/trunk@21846 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 04:04:43 +00:00
bienvenu%netscape.com
ddc97e1735 fix default mailbox path- needs leading /
git-svn-id: svn://10.0.0.236/trunk@21845 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 04:03:32 +00:00
mcafee%netscape.com
1afcb664e6 Solaris needs newline at end of file
git-svn-id: svn://10.0.0.236/trunk@21844 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 03:34:39 +00:00
troy%netscape.com
f293c578fd Changed nsIFrame::Init() to take an additional parameter
git-svn-id: svn://10.0.0.236/trunk@21843 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 03:27:57 +00:00
beard%netscape.com
e6d4c23f11 File Removed.
git-svn-id: svn://10.0.0.236/trunk@21842 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 03:13:54 +00:00
beard%netscape.com
e5a01fc93f nsIMalloc -> nsIAllocator
git-svn-id: svn://10.0.0.236/trunk@21841 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 03:12:01 +00:00
beard%netscape.com
60a2cd5124 kIAllocatorIID
git-svn-id: svn://10.0.0.236/trunk@21840 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 03:11:38 +00:00
beard%netscape.com
b0ccd6a5a6 Using service manager for get nsILiveconnect.
git-svn-id: svn://10.0.0.236/trunk@21839 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 03:10:50 +00:00
akkana%netscape.com
ee68fae484 Add nsISelectionMgr
git-svn-id: svn://10.0.0.236/trunk@21838 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 03:08:09 +00:00
putterman%netscape.com
704c541b8d Added cached flag
git-svn-id: svn://10.0.0.236/trunk@21837 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 03:01:22 +00:00
putterman%netscape.com
b924f93b58 Added correct RDF root.
git-svn-id: svn://10.0.0.236/trunk@21836 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 02:59:30 +00:00
putterman%netscape.com
4c6114e6de changed to use msgdb.lib
git-svn-id: svn://10.0.0.236/trunk@21835 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 02:58:35 +00:00
hyatt%netscape.com
234a11f901 Fixes to getElementsByTagName to avoid returning nodes that aren't elements.
git-svn-id: svn://10.0.0.236/trunk@21834 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 02:58:11 +00:00
putterman%netscape.com
4c3b53a019 made folder lists work and added db for message counts.
git-svn-id: svn://10.0.0.236/trunk@21833 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 02:58:04 +00:00
putterman%netscape.com
a55ed63bb2 Fixed clobber
git-svn-id: svn://10.0.0.236/trunk@21832 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 02:57:30 +00:00
putterman%netscape.com
7dcb8cedfa added clobber
git-svn-id: svn://10.0.0.236/trunk@21831 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 02:57:13 +00:00
putterman%netscape.com
577108de78 changed to msgdb.lib
git-svn-id: svn://10.0.0.236/trunk@21830 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 02:56:44 +00:00
putterman%netscape.com
039da3aec3 Added db for message counts
git-svn-id: svn://10.0.0.236/trunk@21829 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 02:56:13 +00:00
akkana%netscape.com
89f9d20598 Build nsSelectionMgr & include in nsAppShell on Unix
git-svn-id: svn://10.0.0.236/trunk@21828 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 02:54:50 +00:00
putterman%netscape.com
8b1332aa21 Add msglocal.lib
git-svn-id: svn://10.0.0.236/trunk@21827 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 02:54:38 +00:00
akkana%netscape.com
42a6f835f9 New SelectionMgr class
git-svn-id: svn://10.0.0.236/trunk@21826 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 02:42:06 +00:00
mscott%netscape.com
d7f5e0eea9 First checked in.
git-svn-id: svn://10.0.0.236/trunk@21825 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 02:41:37 +00:00
vidur%netscape.com
92b4ff5fae XML books test case (not part of the build so don't shoot me).
git-svn-id: svn://10.0.0.236/trunk@21824 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 02:26:53 +00:00
bienvenu%netscape.com
431aa76762 add new constructor from file path to avoid multiple nativization problems
git-svn-id: svn://10.0.0.236/trunk@21823 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 02:09:07 +00:00
bienvenu%netscape.com
474796f73a add call to DoneParsingFolder so we'll commit database
git-svn-id: svn://10.0.0.236/trunk@21822 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 02:00:48 +00:00
waterson%netscape.com
12ef209b44 Added librdfutil_s.a to link.
git-svn-id: svn://10.0.0.236/trunk@21821 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 01:35:53 +00:00
waterson%netscape.com
af5f3e1a05 Added nsRDFResource constructor to dlldeps.cpp to avoid runtime link problems on Linux.
git-svn-id: svn://10.0.0.236/trunk@21820 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 01:35:34 +00:00
ftang%netscape.com
001dc03913 add charset properties file. Currently we do not use it but hard code the mapping inside the nsXXXCharset.cpp, In the future, we will use these properties file so we can have better extensibility
git-svn-id: svn://10.0.0.236/trunk@21816 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 01:29:31 +00:00
sdagley%netscape.com
8b53976170 Fix bugzilla bug #2568
nsHttpUrlImpl::GetContainer was always returning with NS_OK even if the container is nil.  After discussing it with rpotts I've changed it to return NS_ERROR_UNEXPECTED if mContainer is nil which fixes the Mac crash (calling QueryInterface on a nil container is probably bad everywhere though).


git-svn-id: svn://10.0.0.236/trunk@21815 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 01:28:24 +00:00
ftang%netscape.com
cd2d4a3130 fix nsIPlatformCharset factory problem, add test cases for it.
git-svn-id: svn://10.0.0.236/trunk@21814 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 01:28:04 +00:00
mscott%netscape.com
4b0e88b151 Build nsMailboxService.
git-svn-id: svn://10.0.0.236/trunk@21813 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 01:12:03 +00:00
mscott%netscape.com
54e890d546 header file for mailbox service implementation.
git-svn-id: svn://10.0.0.236/trunk@21812 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 01:10:27 +00:00
mscott%netscape.com
0a97170220 Export nsIMailboxService.h
git-svn-id: svn://10.0.0.236/trunk@21811 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 01:08:30 +00:00
mscott%netscape.com
5d7248ac52 Remove dependencies on local.lib. Use the mailbox service for building and running mailbox urls. This allows to just use the dll form of msglocal.
git-svn-id: svn://10.0.0.236/trunk@21810 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 01:05:36 +00:00
mscott%netscape.com
0a330d4fa2 Creating a protocol instance shouldn't require a transport. We should create it ourselves. When running a url, mark it as being processed.
git-svn-id: svn://10.0.0.236/trunk@21809 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 01:03:45 +00:00
mscott%netscape.com
0b45bd759d Build nsMailboxService
git-svn-id: svn://10.0.0.236/trunk@21808 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 01:02:27 +00:00
mscott%netscape.com
1f70c34b61 Implement new nsIMsgMailNewsUrl methods...
git-svn-id: svn://10.0.0.236/trunk@21807 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 01:02:00 +00:00
mscott%netscape.com
54443c3564 Build the resources directory.
git-svn-id: svn://10.0.0.236/trunk@21806 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 01:01:02 +00:00
mscott%netscape.com
b63e8f410d New xul files to express our mail 3-pane UI. I also created a makefile.win which will export the mail news xul files into dist\WIN32_D.OBJ\bin\res\samples.
git-svn-id: svn://10.0.0.236/trunk@21805 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 01:00:19 +00:00
mscott%netscape.com
a689188c23 Removing from the repository. They are getting replaced with new .xul files.
git-svn-id: svn://10.0.0.236/trunk@21804 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 00:59:03 +00:00
sar%netscape.com
56ba0451e4 make pull_and_build_all mean all, not just seamonkey
git-svn-id: svn://10.0.0.236/trunk@21803 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 00:01:13 +00:00
mscott%netscape.com
9cc87ede3a Add msgCore.h at top for pre-compiled headers. Added ability for factory to create mailbox urls and mailbox service.
git-svn-id: svn://10.0.0.236/trunk@21801 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 22:11:10 +00:00
mscott%netscape.com
bbeaa4b069 Remove duplicate include of xpcom32.lib.
git-svn-id: svn://10.0.0.236/trunk@21800 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 22:10:11 +00:00
mscott%netscape.com
25da21813d Add class ID so our local factory can create instances of it. Use the new nsIMsgMailNewsUrl interface instead of inheriting directly from nsIURL.
git-svn-id: svn://10.0.0.236/trunk@21799 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 22:09:24 +00:00
mscott%netscape.com
e3036d288f Export nsIMailboxService.h
git-svn-id: svn://10.0.0.236/trunk@21798 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 22:08:12 +00:00
mscott%netscape.com
4df16c6d4f Service for running mailbox commands. This separates the application from building and running the urls...
git-svn-id: svn://10.0.0.236/trunk@21797 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 22:07:47 +00:00
edwin%woudt.nl
9ec8c72f93 Fixing Windows news.rc filename issues. Windows does not allow files to start with a dot.
git-svn-id: svn://10.0.0.236/trunk@21796 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 22:04:48 +00:00
locka%iol.ie
0d6a2d1184 Added IE browser helper object support
git-svn-id: svn://10.0.0.236/trunk@21794 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 21:49:32 +00:00
locka%iol.ie
6020028e15 Removed some build-breaking lines
git-svn-id: svn://10.0.0.236/trunk@21793 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 21:48:24 +00:00
locka%iol.ie
07627aacd7 Added some more CLSID parameter variants
git-svn-id: svn://10.0.0.236/trunk@21792 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 21:47:32 +00:00
edwin%woudt.nl
a7cc3f833b Reflecting the new nttp-store.
git-svn-id: svn://10.0.0.236/trunk@21791 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 21:43:14 +00:00
edwin%woudt.nl
e795e805ae Now let's see if I can commit it right this time.
git-svn-id: svn://10.0.0.236/trunk@21790 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 21:31:37 +00:00
edwin%woudt.nl
b0f1fd136b Removing this. It goes directly in mozilla/grendel because of classpath problems.
git-svn-id: svn://10.0.0.236/trunk@21789 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 21:11:03 +00:00
edwin%woudt.nl
ed1c44f826 Backed out again as we are going to move stuff a few levels higher so we don't have to mess around with the classpath.
git-svn-id: svn://10.0.0.236/trunk@21788 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 21:07:00 +00:00
edwin%woudt.nl
b14da725b9 Oops, forgot this one.
git-svn-id: svn://10.0.0.236/trunk@21787 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 20:59:56 +00:00
dp%netscape.com
4e6c3bec20 Last updated date changed
git-svn-id: svn://10.0.0.236/trunk@21786 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 20:31:50 +00:00
dp%netscape.com
3d0ff323a1 additional guidelines
git-svn-id: svn://10.0.0.236/trunk@21785 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 20:29:51 +00:00
alecf%netscape.com
20af466edd add namespace registration stuff for bhuvan
git-svn-id: svn://10.0.0.236/trunk@21784 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 20:27:24 +00:00
dp%netscape.com
7b4a09a0bd Added progid spec
git-svn-id: svn://10.0.0.236/trunk@21783 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 20:24:27 +00:00
wtc%netscape.com
f890cfea30 Bugzilla bug #3233: create the pipe in nonblocking mode and have
reads and writes check for the possible EAGAIN/EWOULDBLOCK error.


git-svn-id: svn://10.0.0.236/trunk@21782 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 19:53:48 +00:00
despotdaemon%netscape.com
6d5331d53d Pseudo-automatic update of changes made by bsharma@netscape.com.
git-svn-id: svn://10.0.0.236/trunk@21781 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 19:47:20 +00:00
jband%netscape.com
6b0ce7bcf8 initial checkin of linux invoker - untested. slight changes to platform compile time protection
git-svn-id: svn://10.0.0.236/trunk@21780 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 19:26:51 +00:00
waterson%netscape.com
340f5e3463 Removed the use-tag-namespace-as-default-namespace hack (well, #ifdef'd it out, anyway).
git-svn-id: svn://10.0.0.236/trunk@21779 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 19:25:14 +00:00
larryh%netscape.com
7528dde3af mumble. restore to 3.11
git-svn-id: svn://10.0.0.236/trunk@21777 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 19:19:21 +00:00
waterson%netscape.com
c79993466d Fix build bustage: make sure to include nsIUnicodeEncodeHelper.h for NS_IMPLIDS.
git-svn-id: svn://10.0.0.236/trunk@21776 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 19:12:27 +00:00
alecf%netscape.com
471aaedbd9 fix BSD/OS 3.1 bustage
git-svn-id: svn://10.0.0.236/trunk@21774 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 18:23:26 +00:00
cyeh%netscape.com
218bdde687 we blow past the limit for the echo command on WinNT as well. doing the stupid
thing for now until i can figure out how to generate better status and not
blow up the echo command.


git-svn-id: svn://10.0.0.236/trunk@21773 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 18:21:49 +00:00
ftang%netscape.com
5f7220fa9c change nsTextTransformer to break line by calling nsILineBreak and make nsTextFrame pass the nsILineBreaker to nsTextTransformer
git-svn-id: svn://10.0.0.236/trunk@21772 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 18:21:23 +00:00
nhotta%netscape.com
852cf4e1a5 For nsIUnicodeEncoder change.
git-svn-id: svn://10.0.0.236/trunk@21771 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 18:15:21 +00:00
beard%netscape.com
6e9016d233 nsILiveConnectManager.h
git-svn-id: svn://10.0.0.236/trunk@21770 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 18:00:00 +00:00
kostello%netscape.com
77c015350f Updated save code to match CSS "Selector to String" code.
We now output the selector from CSS style rules again
when we save a document.


git-svn-id: svn://10.0.0.236/trunk@21769 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 17:59:51 +00:00
beard%netscape.com
33f9460019 First Checked In.
git-svn-id: svn://10.0.0.236/trunk@21768 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 17:58:36 +00:00
pinkerton%netscape.com
20242a49ff Add manifest file for xpcom/src
git-svn-id: svn://10.0.0.236/trunk@21767 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 17:36:37 +00:00
pinkerton%netscape.com
4011fdc5cc remove absolute path in opt target to warren's machine.
git-svn-id: svn://10.0.0.236/trunk@21766 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 17:36:17 +00:00
dcone%netscape.com
1c4a72bf86 Added InsertElementTxn.cpp and nsEditProperty.cpp
git-svn-id: svn://10.0.0.236/trunk@21765 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 17:36:12 +00:00
pinkerton%netscape.com
fbafbed27c First Checked In.
git-svn-id: svn://10.0.0.236/trunk@21764 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 17:35:40 +00:00
larryh%netscape.com
ef07af6c0a lost update?
git-svn-id: svn://10.0.0.236/trunk@21762 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 17:33:00 +00:00
buster%netscape.com
8f4fa61d30 minor interface changes
git-svn-id: svn://10.0.0.236/trunk@21761 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 17:31:09 +00:00
buster%netscape.com
7218a4a579 added InsertElementTxn
added nsEditProperty
beginning of implementation for SetTextProperties.  Currently, it only works if the selection is entirely within a single text node.  Currently only
supports bold and italic (mapped to ctrl-b and ctrl-i for testing purposes.)
changed a bunch of interfaces to make things easier, like CreateElement now returns (as an out-param) the element created.


git-svn-id: svn://10.0.0.236/trunk@21760 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 17:24:37 +00:00
bienvenu%netscape.com
d4e6d41577 fix build bustage
git-svn-id: svn://10.0.0.236/trunk@21759 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 17:23:57 +00:00
troy%netscape.com
985c1c5280 Work-in-progress for having frame construction code handle creation
of continuing frames


git-svn-id: svn://10.0.0.236/trunk@21758 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 17:16:04 +00:00
cata%netscape.com
98917fab07 UnicodeToLatin1 added.
git-svn-id: svn://10.0.0.236/trunk@21757 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 17:10:37 +00:00
cata%netscape.com
c16c143ffd nsUnicodeToLatin1 added.
git-svn-id: svn://10.0.0.236/trunk@21756 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 17:10:04 +00:00
cata%netscape.com
fab932bc7a Small fixes.
git-svn-id: svn://10.0.0.236/trunk@21755 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 17:05:23 +00:00
bienvenu%netscape.com
8d92190b49 remove use of XP_ASSERT
git-svn-id: svn://10.0.0.236/trunk@21754 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 16:34:39 +00:00
pinkerton%netscape.com
ece92e2556 add nsUnicodeEncodeHelper.cpp for cata.
git-svn-id: svn://10.0.0.236/trunk@21753 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 16:31:18 +00:00
cata%netscape.com
6c8670469f UnicodeToLatin1 test added.
git-svn-id: svn://10.0.0.236/trunk@21752 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 16:27:30 +00:00
bienvenu%netscape.com
e286af237d remove use of XP_ASSERT
git-svn-id: svn://10.0.0.236/trunk@21751 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 16:27:28 +00:00
cata%netscape.com
f0e1c4eb33 nsUnicodeEncodeHelper added
git-svn-id: svn://10.0.0.236/trunk@21750 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 15:17:40 +00:00
cata%netscape.com
b63f71ab29 nsConverterCID.h not included anymore.
git-svn-id: svn://10.0.0.236/trunk@21749 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 15:05:33 +00:00
cata%netscape.com
052485e37a nsUnicodeEncodeHelper added.
git-svn-id: svn://10.0.0.236/trunk@21748 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 15:02:08 +00:00
cata%netscape.com
6af4884ea6 UnicodeToLatin1 added.
git-svn-id: svn://10.0.0.236/trunk@21747 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 14:47:42 +00:00
cata%netscape.com
262c16f88c Change back in. I hope no bustage this time...
git-svn-id: svn://10.0.0.236/trunk@21746 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 14:41:41 +00:00
cata%netscape.com
d6348edced File removed.
git-svn-id: svn://10.0.0.236/trunk@21745 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 14:39:15 +00:00
cata%netscape.com
36a32fa1d4 nsIUnicodeEncodeHelper added.
git-svn-id: svn://10.0.0.236/trunk@21744 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 14:38:16 +00:00
cata%netscape.com
e6600273c4 Changed to the new nsIUnicodeEncoder.
git-svn-id: svn://10.0.0.236/trunk@21743 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 14:06:45 +00:00
cata%netscape.com
5355e69e73 Interface complete. Cleaned.
git-svn-id: svn://10.0.0.236/trunk@21742 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 14:06:16 +00:00
leaf%mozilla.org
6d94bdf506 some cvs clients barf without the -d option (stupid, stupid win98 shell)
git-svn-id: svn://10.0.0.236/trunk@21741 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 13:56:23 +00:00
pierre%netscape.com
08424e1fe2 added rdf:util:public:MANIFEST to fix a build breakage
git-svn-id: svn://10.0.0.236/trunk@21740 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 12:01:16 +00:00
hyatt%netscape.com
7ce4e24042 Backing out the onItemClick code. I don't think we should be using it,
since event bubbling appears to be working.


git-svn-id: svn://10.0.0.236/trunk@21739 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 11:15:43 +00:00
warren%netscape.com
2d5fa96b77 Removed dead GetRoot code.
git-svn-id: svn://10.0.0.236/trunk@21738 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 10:54:03 +00:00
warren%netscape.com
de5933b23a Obsolete -- now in local/src/nsLocalMailFolder.[h/cpp]
git-svn-id: svn://10.0.0.236/trunk@21737 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 10:50:44 +00:00
warren%netscape.com
d9b9a230b3 Reorganization. Changes for collections, enumerations, generic folders, file paths, etc.
git-svn-id: svn://10.0.0.236/trunk@21736 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 10:39:06 +00:00
hyatt%netscape.com
863be8a643 Landing support for the special onItemClick default event handler that can be
placed on tree views (and executed in the context of tree items).


git-svn-id: svn://10.0.0.236/trunk@21735 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 10:38:56 +00:00
warren%netscape.com
3b7e819f00 Removed assertion (hit by mail code (bad xul?)).
git-svn-id: svn://10.0.0.236/trunk@21734 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 10:23:27 +00:00
warren%netscape.com
1df9ebe984 Added export/import declaration (temporarily).
git-svn-id: svn://10.0.0.236/trunk@21733 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 09:55:44 +00:00
warren%netscape.com
5a70e75547 Added rdf/util makefiles
git-svn-id: svn://10.0.0.236/trunk@21732 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 09:54:36 +00:00
warren%netscape.com
24f7d24bf0 Updated IIDs
git-svn-id: svn://10.0.0.236/trunk@21731 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 09:31:34 +00:00
warren%netscape.com
b618607b4a Made nsISupportsArray inherit from nsICollection.
git-svn-id: svn://10.0.0.236/trunk@21730 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 09:31:15 +00:00
warren%netscape.com
936646de93 Accidental commit (reverted)
git-svn-id: svn://10.0.0.236/trunk@21729 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 09:28:36 +00:00
warren%netscape.com
32312b1594 Accidental commit (reverted)
git-svn-id: svn://10.0.0.236/trunk@21728 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 09:28:09 +00:00
warren%netscape.com
58444076cd reverted (accidently committed)
git-svn-id: svn://10.0.0.236/trunk@21727 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 09:03:54 +00:00
warren%netscape.com
ec5f7517ea reverted (accidently committed)
git-svn-id: svn://10.0.0.236/trunk@21726 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 09:03:04 +00:00
warren%netscape.com
eca64f8a2e Removed link with rdfutil_s until I can get linux help.
git-svn-id: svn://10.0.0.236/trunk@21725 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 09:01:44 +00:00
warren%netscape.com
f4694c48e5 Added idl
git-svn-id: svn://10.0.0.236/trunk@21724 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 08:46:00 +00:00
mcafee%netscape.com
150ffbab68 Removing unused rules, cleaning this up.
git-svn-id: svn://10.0.0.236/trunk@21723 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 08:39:19 +00:00
mcafee%netscape.com
f4ddc0169c Need -lgfxps to link on linux
git-svn-id: svn://10.0.0.236/trunk@21722 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 08:29:11 +00:00
warren%netscape.com
0618fffb2e Added util lib
git-svn-id: svn://10.0.0.236/trunk@21721 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 08:27:52 +00:00
warren%netscape.com
6c5b21f9c3 Moved nsRDFResource to util.
git-svn-id: svn://10.0.0.236/trunk@21720 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 08:26:30 +00:00
warren%netscape.com
ccb39c8662 Added util directory stuff.
git-svn-id: svn://10.0.0.236/trunk@21719 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 08:25:00 +00:00
warren%netscape.com
b604003f29 Removed demo mail code.
git-svn-id: svn://10.0.0.236/trunk@21718 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 08:03:20 +00:00
warren%netscape.com
f22f6c3326 Removed demo mail datasource.
git-svn-id: svn://10.0.0.236/trunk@21717 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 08:02:28 +00:00
warren%netscape.com
420a9f60e8 Added nsConjoiningEnumerator.cpp
git-svn-id: svn://10.0.0.236/trunk@21716 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 08:01:33 +00:00
warren%netscape.com
04ff0b73e3 Added NS_NewConjoiningEnumerator
git-svn-id: svn://10.0.0.236/trunk@21715 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 07:58:06 +00:00
warren%netscape.com
2e1253b46b Got this stuff functioning.
git-svn-id: svn://10.0.0.236/trunk@21714 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 07:56:00 +00:00
jband%netscape.com
003e43159e banishing win32 specific stuff to its own directory before adding any analogous code for other platforms
git-svn-id: svn://10.0.0.236/trunk@21712 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 07:17:27 +00:00
mcafee%netscape.com
27419b6a07 Solaris warning
git-svn-id: svn://10.0.0.236/trunk@21711 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 07:09:42 +00:00
mcafee%netscape.com
148d290f2a Solaris needs newline at end of file.
git-svn-id: svn://10.0.0.236/trunk@21710 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 07:06:01 +00:00
bienvenu%netscape.com
29de5e46ca make GetFlags pure virtual to fix link error
git-svn-id: svn://10.0.0.236/trunk@21709 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 06:05:33 +00:00
troy%netscape.com
70b1ea8e3f Added frame type atoms for several table frame classes
git-svn-id: svn://10.0.0.236/trunk@21708 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 05:54:31 +00:00
troy%netscape.com
cd4ee3debc Added nsLayoutAtoms::textFrame
git-svn-id: svn://10.0.0.236/trunk@21706 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 05:33:40 +00:00
kipp%netscape.com
93a84ec681 Fixed bug #2885 - the linebreaker couldn't handle a special case...
git-svn-id: svn://10.0.0.236/trunk@21705 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 05:24:06 +00:00
waterson%netscape.com
171a394ac1 Use XUL as default namespace. Fixes GetElementByID() bug.
git-svn-id: svn://10.0.0.236/trunk@21704 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 05:23:26 +00:00
troy%netscape.com
cc2323242f Changed GetNextInFlow() and GetPrevInFlow() to be pointer arguments and
not references


git-svn-id: svn://10.0.0.236/trunk@21702 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 04:48:08 +00:00
waterson%netscape.com
52325e43b2 Made default namespaces work.
git-svn-id: svn://10.0.0.236/trunk@21700 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 04:47:19 +00:00
waterson%netscape.com
1462190b0e Fixed some refcounting bugs with atoms.
git-svn-id: svn://10.0.0.236/trunk@21699 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 04:46:47 +00:00
kipp%netscape.com
8698f50196 Build library properly
git-svn-id: svn://10.0.0.236/trunk@21698 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 04:44:41 +00:00
kipp%netscape.com
98e8b1857d Fixed crash bug where unitialized index would sometimes crash; also increment index in loop so that it terminates
git-svn-id: svn://10.0.0.236/trunk@21697 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 04:34:54 +00:00
briano%netscape.com
6a81cd1d49 Some more minor cleanup, and support for Solaris x86 and Linux Netwinders.
git-svn-id: svn://10.0.0.236/trunk@21696 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 04:33:17 +00:00
troy%netscape.com
cbaac14adf Added CreateContinuingFrame() function to frame construction code
git-svn-id: svn://10.0.0.236/trunk@21695 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 04:03:50 +00:00
cata%netscape.com
f9f76ef341 Backed change.
git-svn-id: svn://10.0.0.236/trunk@21694 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 03:40:34 +00:00
cata%netscape.com
9da05deb81 File deprecated.
git-svn-id: svn://10.0.0.236/trunk@21693 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 03:13:43 +00:00
cata%netscape.com
174d5a6ed0 nsIUnicodeEncodeHelper.h included
git-svn-id: svn://10.0.0.236/trunk@21692 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 03:00:30 +00:00
hyatt%netscape.com
4c9e9083ab Fixing the case of the ID atom (it should have been lower case).
git-svn-id: svn://10.0.0.236/trunk@21691 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 02:58:47 +00:00
bienvenu%netscape.com
afc60221b9 start hacking persistance
git-svn-id: svn://10.0.0.236/trunk@21690 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 02:58:43 +00:00
cata%netscape.com
8822bb229d Latin1 encoder CID added.
git-svn-id: svn://10.0.0.236/trunk@21689 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 02:56:41 +00:00
bienvenu%netscape.com
9cfe41ab86 make dbFolderInfo an interface
git-svn-id: svn://10.0.0.236/trunk@21688 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 02:56:11 +00:00
mscott%netscape.com
c95897bc4c Restore the ability to run multiple urls per smtp test session by using new code to determine if a url
is running or not.


git-svn-id: svn://10.0.0.236/trunk@21687 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 02:31:19 +00:00
mscott%netscape.com
9139f00f4b Flag the smtp url when we are running it....
git-svn-id: svn://10.0.0.236/trunk@21686 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 02:30:27 +00:00
mscott%netscape.com
ae089aebad nsIMsgMailNewsUrl base class updates. Keep track of whether the url is running or not...
git-svn-id: svn://10.0.0.236/trunk@21685 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 02:29:54 +00:00
mscott%netscape.com
b560ffbde3 Use mailnews url base class for interface inheritance....
git-svn-id: svn://10.0.0.236/trunk@21684 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 02:28:44 +00:00
mscott%netscape.com
20e1c90198 Export nsIMsgMailNewsUrl.h
git-svn-id: svn://10.0.0.236/trunk@21683 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 02:27:44 +00:00
mscott%netscape.com
d8c488f5c5 we inherit from the nsIURL interface...
git-svn-id: svn://10.0.0.236/trunk@21682 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 02:26:29 +00:00
mscott%netscape.com
401f517f00 Export nsIMsgMailNewsUrl.h
git-svn-id: svn://10.0.0.236/trunk@21681 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 02:22:22 +00:00
mscott%netscape.com
cbc2f0518d A base class for methods common to all of our mail and news protocol url interfaces.
git-svn-id: svn://10.0.0.236/trunk@21680 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 02:21:31 +00:00
cata%netscape.com
b2efd04e97 Space availability check done for 1 byte, too.
git-svn-id: svn://10.0.0.236/trunk@21679 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 02:18:55 +00:00
hyatt%netscape.com
f5c5ddd71c Fixing the multiple observer crash.
git-svn-id: svn://10.0.0.236/trunk@21678 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 02:18:35 +00:00
sar%netscape.com
8ba45f340c perl script to test viewer
git-svn-id: svn://10.0.0.236/trunk@21677 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 02:16:40 +00:00
beard%netscape.com
e38d03b5a7 Added nsPluginsDirMac.cpp
git-svn-id: svn://10.0.0.236/trunk@21676 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 02:15:11 +00:00
sar%netscape.com
3d84d69a90 make the file have more entries per QA request.
git-svn-id: svn://10.0.0.236/trunk@21675 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 02:15:00 +00:00
ftang%netscape.com
a90bec19e0 fix line break bug for halfwidth / fullwidth form
git-svn-id: svn://10.0.0.236/trunk@21674 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 02:14:59 +00:00
beard%netscape.com
157e3b48ce moved nsPluginDir/nsPluginFile classes to nsPluginDirMac.cpp.
git-svn-id: svn://10.0.0.236/trunk@21673 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 02:13:42 +00:00
cata%netscape.com
1d43049387 File created.
git-svn-id: svn://10.0.0.236/trunk@21672 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 02:13:37 +00:00
beard%netscape.com
4b2d255cf8 First Checked In.
git-svn-id: svn://10.0.0.236/trunk@21671 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 02:12:47 +00:00
beard%netscape.com
c07ac849a3 changed bool to PRBool
git-svn-id: svn://10.0.0.236/trunk@21670 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 02:12:37 +00:00
alecf%netscape.com
aa1a54ce38 update to use new nsCID type
git-svn-id: svn://10.0.0.236/trunk@21669 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 02:07:28 +00:00
alecf%netscape.com
5aeeb657be AddRef and Release return nsrefcnt's
git-svn-id: svn://10.0.0.236/trunk@21668 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 02:06:50 +00:00
alecf%netscape.com
75624e97af fix nsID definition (thanks to shaver for the right combination) to use pointers
git-svn-id: svn://10.0.0.236/trunk@21667 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 02:06:27 +00:00
slamm%netscape.com
3c79e6069e Echo LD_LIBRARY_PATH for configure.
git-svn-id: svn://10.0.0.236/trunk@21666 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 01:41:56 +00:00
larryh%netscape.com
a003c214d5 revert to 3.3, fix my mess
git-svn-id: svn://10.0.0.236/trunk@21665 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 00:41:43 +00:00
larryh%netscape.com
60799b32a6 don't do windows on unix
git-svn-id: svn://10.0.0.236/trunk@21664 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 00:09:40 +00:00
waterson%netscape.com
e9c298b2c5 Made sure to add a named reference to the event handlers. a=sar%netscape.com for checkin during closed tree.
git-svn-id: svn://10.0.0.236/trunk@21663 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-24 00:01:26 +00:00
larryh%netscape.com
02faee3f38 set old (3.0) library names
git-svn-id: svn://10.0.0.236/trunk@21662 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 23:56:05 +00:00
peterl%netscape.com
55e4f7028e Fixed bustage in Clear caused by PRInt32 to PRUint32 conversion
git-svn-id: svn://10.0.0.236/trunk@21659 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 23:31:49 +00:00
despotdaemon%netscape.com
79575e659d Pseudo-automatic update of changes made by phil@netscape.com.
git-svn-id: svn://10.0.0.236/trunk@21658 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 23:12:23 +00:00
larryh%netscape.com
81924850ca add test case for plevent
git-svn-id: svn://10.0.0.236/trunk@21657 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 23:09:54 +00:00
larryh%netscape.com
917b653549 add windows test case for plevent
git-svn-id: svn://10.0.0.236/trunk@21656 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 23:09:10 +00:00
despotdaemon%netscape.com
5f3bc876d1 Pseudo-automatic update of changes made by leaf@mozilla.org.
git-svn-id: svn://10.0.0.236/trunk@21654 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 21:32:08 +00:00
despotdaemon%netscape.com
3c43deb793 Pseudo-automatic update of changes made by prusakov@netscape.com.
git-svn-id: svn://10.0.0.236/trunk@21653 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 21:25:58 +00:00
karnaze%netscape.com
6c5308ed49 added printf to flag when a table cell's max element size exceeds its desired size (for bug 3094)
git-svn-id: svn://10.0.0.236/trunk@21652 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 21:03:57 +00:00
law%netscape.com
3e18d9fc97 Turn off USE_NSREG till later - Thanks, John!
git-svn-id: svn://10.0.0.236/trunk@21651 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 20:31:23 +00:00
terry%netscape.com
5738ca12f1 When we do "showall", or ask to rebuild checkin history, then we'll do
a week.  But, more normally, we'll only do two days, since it's much
faster that way, and we need to do this all the time.


git-svn-id: svn://10.0.0.236/trunk@21650 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 20:31:02 +00:00
terry%netscape.com
04d7cc916e Show checkin history up to a week.
git-svn-id: svn://10.0.0.236/trunk@21648 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 20:14:41 +00:00
mscott%netscape.com
7efce2661d Fix build breakage.RemoveElement does not take two arguments....
git-svn-id: svn://10.0.0.236/trunk@21647 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 20:03:33 +00:00
alecf%netscape.com
21d92613ab update to make ns*ID's work
git-svn-id: svn://10.0.0.236/trunk@21646 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 19:58:41 +00:00
law%netscape.com
4825bbf7a6 Landing LIBREG990212_BRANCH to get libreg building on Mac
git-svn-id: svn://10.0.0.236/trunk@21645 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 19:56:57 +00:00
terry%netscape.com
8dc83d3fd1 Added ImageLib component to NGLayout.
git-svn-id: svn://10.0.0.236/trunk@21644 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 19:55:34 +00:00
terry%netscape.com
d1314461d1 Set a few of the missing QAContact fields.
git-svn-id: svn://10.0.0.236/trunk@21643 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 19:48:24 +00:00
kipp%netscape.com
d46d285150 Removed some off by one rendering errors (not a perfect fix!)
git-svn-id: svn://10.0.0.236/trunk@21642 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 19:39:11 +00:00
kipp%netscape.com
a2ce2ee3db Latest snapshot using linux version of the tools
git-svn-id: svn://10.0.0.236/trunk@21641 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 19:38:50 +00:00
kipp%netscape.com
4a4e091470 Removed duplicate closing of the regression data files
git-svn-id: svn://10.0.0.236/trunk@21640 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 19:37:10 +00:00
alecf%netscape.com
2a1ae998ee update uuid's to match real definitions
git-svn-id: svn://10.0.0.236/trunk@21639 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 19:36:23 +00:00
kipp%netscape.com
ed946ccfbf Temporarily mark text and BR frames as replaced elements so that inline reflow will work properly
git-svn-id: svn://10.0.0.236/trunk@21638 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 19:36:14 +00:00
kipp%netscape.com
4585457984 For now text acts like a replaced element
git-svn-id: svn://10.0.0.236/trunk@21637 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 19:35:21 +00:00
kipp%netscape.com
93e88038fa Removed gratuitous destructor
git-svn-id: svn://10.0.0.236/trunk@21636 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 19:34:58 +00:00
kipp%netscape.com
6dfba2e03d Cleanedup vertical alignment support
git-svn-id: svn://10.0.0.236/trunk@21635 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 19:34:37 +00:00
kipp%netscape.com
a65c2103cc Improved vertical alignment correctness; fixed glaring error with box-width and height computation
git-svn-id: svn://10.0.0.236/trunk@21634 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 19:34:17 +00:00
kipp%netscape.com
975a668e6e Removed mLineHeight from the html reflow state; changed the signature of the VerticalAlignFrames method; made DetermineFrameType a callable static method
git-svn-id: svn://10.0.0.236/trunk@21633 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 19:33:34 +00:00
kipp%netscape.com
757ef013b8 Maded DetermineFrameType a callable static method; removed gratuitous line-height calculations
git-svn-id: svn://10.0.0.236/trunk@21632 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 19:33:06 +00:00
kipp%netscape.com
53678f589d Added a warning comment
git-svn-id: svn://10.0.0.236/trunk@21631 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 19:32:33 +00:00
kipp%netscape.com
d314a0492b Revised the signature of the VerticalAlignFrames method
git-svn-id: svn://10.0.0.236/trunk@21630 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 19:32:20 +00:00
kipp%netscape.com
9731c74c2c Compute minimum-line-height and store it into the inline-reflow context
git-svn-id: svn://10.0.0.236/trunk@21629 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 19:32:00 +00:00
alecf%netscape.com
aed185ddf3 fix compilation problem on generated code where we had two variables named "result"
prepare to handle [nonxpcom] object return values


git-svn-id: svn://10.0.0.236/trunk@21628 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 19:30:53 +00:00
slamm%netscape.com
0f7553fa69 Add comment about where nspr tip build gets installed.
git-svn-id: svn://10.0.0.236/trunk@21627 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 19:24:31 +00:00
vidur%netscape.com
2eade89c6f Fixed casing for nsCOMPtr inclusion
git-svn-id: svn://10.0.0.236/trunk@21626 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 19:22:53 +00:00
vidur%netscape.com
64dca5f8b7 Added nsIStyleSheetLinkingElement interface
git-svn-id: svn://10.0.0.236/trunk@21625 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 19:18:34 +00:00
vidur%netscape.com
c1da744044 Added nsIStyleSheetLinkingElement interface and implemented it for LINK and STYLE elements. Got attribute modifications for lists and list items working (including correct renumbering of lists when attribute values change).
git-svn-id: svn://10.0.0.236/trunk@21624 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 19:18:12 +00:00
briano%netscape.com
47d50edee4 Automated update
git-svn-id: svn://10.0.0.236/trunk@21623 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 19:15:42 +00:00
alecf%netscape.com
a17a4eb97b add flag for shaver's XPIDL flag
git-svn-id: svn://10.0.0.236/trunk@21622 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 19:02:27 +00:00
alecf%netscape.com
4011986b23 update now that uuid()s work again
git-svn-id: svn://10.0.0.236/trunk@21621 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 18:51:30 +00:00
pierre%netscape.com
15a6223e7e Put back the code but this time using the newly defined nsIBidirectionalEnumerator
git-svn-id: svn://10.0.0.236/trunk@21620 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 18:49:57 +00:00
mscott%netscape.com
8756b7a3f8 Use correct config\rules.mak file..we were going into the layout one before...
git-svn-id: svn://10.0.0.236/trunk@21619 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 18:31:09 +00:00
edwin%woudt.nl
c8dcf473cc Initial import of Knife's NNTP provider.
git-svn-id: svn://10.0.0.236/trunk@21617 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 18:25:48 +00:00
slamm%netscape.com
4a938e8779 Add threads option. Fix 'NSPR tip build' option.
git-svn-id: svn://10.0.0.236/trunk@21616 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 18:16:11 +00:00
slamm%netscape.com
6ade1d75b8 Add --with-nspr flag to configure when needed.
git-svn-id: svn://10.0.0.236/trunk@21615 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 18:08:52 +00:00
karnaze%netscape.com
3ba813479d added assertion for null peeked frame pointer in Reflow.
git-svn-id: svn://10.0.0.236/trunk@21614 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 18:06:55 +00:00
slamm%netscape.com
0d1074e32a echo the correct name of the included myconfig.sh
git-svn-id: svn://10.0.0.236/trunk@21613 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 17:58:25 +00:00
brade%netscape.com
3a5c59c63f First Checked In.
git-svn-id: svn://10.0.0.236/trunk@21612 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 17:07:25 +00:00
ftang%netscape.com
654b2c2010 add kPlatformCharsetCID
git-svn-id: svn://10.0.0.236/trunk@21611 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 16:52:04 +00:00
ftang%netscape.com
d2ee1b2bf0 add nsMacCharset.cpp
git-svn-id: svn://10.0.0.236/trunk@21610 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 16:51:23 +00:00
ftang%netscape.com
d22f88dc21 fix NS_IMPL_ISUPPORTS problem
git-svn-id: svn://10.0.0.236/trunk@21609 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 16:39:58 +00:00
ftang%netscape.com
01a84af5af add nsUNIXCharset.cpp
git-svn-id: svn://10.0.0.236/trunk@21608 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 16:36:51 +00:00
ftang%netscape.com
cf6417104c fix the NS_IMPL_ISUPPORTS problem
git-svn-id: svn://10.0.0.236/trunk@21607 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 16:36:33 +00:00
pierre%netscape.com
be3111d1b5 Backed out part of the previous checkin to turn Tinderbox green again.
git-svn-id: svn://10.0.0.236/trunk@21606 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 16:30:31 +00:00
ftang%netscape.com
c5f587f69a add nsIPlatformCharset
git-svn-id: svn://10.0.0.236/trunk@21605 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 16:25:25 +00:00
ftang%netscape.com
6d4ef66811 add nsWinCharset.cpp
git-svn-id: svn://10.0.0.236/trunk@21604 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 16:21:56 +00:00
ftang%netscape.com
88f7367de4 chnage the line breaker interface to a simple one
git-svn-id: svn://10.0.0.236/trunk@21603 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 16:20:39 +00:00
coop%netscape.com
239234185f NOT YET PART OF SEAMONKEY:
* fixed casting problem in calls to Do8


git-svn-id: svn://10.0.0.236/trunk@21602 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 16:17:37 +00:00
shaver%netscape.com
8f1e36024b handle new and old libIDL, [notxpcom], #ifdef XPIDL_JS_STUBS
git-svn-id: svn://10.0.0.236/trunk@21601 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 15:28:58 +00:00
pierre%netscape.com
217fe9735b Fixed #3154 "Events don't work with fixed positioning". Fixed "clicks in vScrollBar down arrow are ignored".
git-svn-id: svn://10.0.0.236/trunk@21600 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 12:53:28 +00:00
grail%cafebabe.org
ca7cbb47b1 Oopsie. MailServerPrefsEditor now initializes values.
git-svn-id: svn://10.0.0.236/trunk@21599 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 11:34:59 +00:00
edwin%woudt.nl
dcbc969438 Uhmm... I guess it was late when I updated this file.
git-svn-id: svn://10.0.0.236/trunk@21598 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 10:24:06 +00:00
ftang%netscape.com
c5742c86b2 backout accidential check in
git-svn-id: svn://10.0.0.236/trunk@21597 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 10:06:47 +00:00
ftang%netscape.com
f2eb9ef0cd add two new files
git-svn-id: svn://10.0.0.236/trunk@21596 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 09:55:55 +00:00
ftang%netscape.com
ce5573b51a move class definitation into nsWinCharset.cpp
git-svn-id: svn://10.0.0.236/trunk@21595 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 09:52:48 +00:00
ftang%netscape.com
6b54b5a289 remove nsWinCharset.h
git-svn-id: svn://10.0.0.236/trunk@21594 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 09:52:11 +00:00
ftang%netscape.com
b272b8fc3b add several new files
git-svn-id: svn://10.0.0.236/trunk@21593 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 09:48:43 +00:00
ftang%netscape.com
4d23c88fb4 add nsIPlatformCharset.h
git-svn-id: svn://10.0.0.236/trunk@21592 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 09:46:58 +00:00
pierre%netscape.com
e44999b362 Restored the v1.76 code for the loops through the children (no nsCOMPtr, no RTTI - today's problem was one too many). Updated comments.
git-svn-id: svn://10.0.0.236/trunk@21591 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 09:14:36 +00:00
warren%netscape.com
ddf031a5e8 Added check for null border.
git-svn-id: svn://10.0.0.236/trunk@21590 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 09:01:21 +00:00
pierre%netscape.com
3b20c67e63 added some comments
git-svn-id: svn://10.0.0.236/trunk@21589 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 09:00:16 +00:00
pierre%netscape.com
69306daed4 turned RTTI off
git-svn-id: svn://10.0.0.236/trunk@21588 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 08:59:45 +00:00
warren%netscape.com
80d60a5255 Added nsSupportsArrayEnumerator.cpp
git-svn-id: svn://10.0.0.236/trunk@21587 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 08:11:43 +00:00
warren%netscape.com
cb10d9f3a0 Cleaned up nsICollection and nsIEnumerator. Broke out nsIBidirectionalEnumerator. Added ISupportsArray enumerator. Cleaned nsISupportsArray.
git-svn-id: svn://10.0.0.236/trunk@21585 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 08:10:24 +00:00
warren%netscape.com
a6c9db8b16 Added nsSupportsArrayEnumerator
git-svn-id: svn://10.0.0.236/trunk@21584 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 08:04:28 +00:00
warren%netscape.com
d1e17d4dea Added forgotten initialization.
git-svn-id: svn://10.0.0.236/trunk@21583 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 08:01:02 +00:00
saari%netscape.com
377ff86635 nsWebShellWindow.cpp
nsWebShellWindow.h

Broke up more of menu loading code into functions for readablity and to allow hierarchical menu loading.


git-svn-id: svn://10.0.0.236/trunk@21582 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 07:52:14 +00:00
leaf%mozilla.org
179d712308 cleaned status of illegal references
git-svn-id: svn://10.0.0.236/trunk@21581 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 07:38:26 +00:00
warren%netscape.com
6c2a6c03c0 Added check for forgotten error that caused hang on failure.
git-svn-id: svn://10.0.0.236/trunk@21580 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 07:17:10 +00:00
putterman%netscape.com
4b366d00de These got moved to the build directory.
git-svn-id: svn://10.0.0.236/trunk@21579 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 07:13:38 +00:00
putterman%netscape.com
672de92d3a Create the dll in the build directory, not here.
git-svn-id: svn://10.0.0.236/trunk@21578 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 07:09:34 +00:00
putterman%netscape.com
ea080443e6 Added build directory.
git-svn-id: svn://10.0.0.236/trunk@21577 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 07:08:56 +00:00
putterman%netscape.com
54d6d16add removed nsMsgLocalMailFolder so it can go in local directory.
git-svn-id: svn://10.0.0.236/trunk@21576 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 05:24:52 +00:00
putterman%netscape.com
9b5a363ed9 Added nsLocalMailFolder to local directory.
git-svn-id: svn://10.0.0.236/trunk@21575 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 05:23:06 +00:00
mcafee%netscape.com
d6f61f2865 C++ comments in C file.
git-svn-id: svn://10.0.0.236/trunk@21574 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 05:04:56 +00:00
warren%netscape.com
c49d0d89a8 Fixed NS_INIT_REFCNT problem.
git-svn-id: svn://10.0.0.236/trunk@21573 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 04:37:31 +00:00
troy%netscape.com
596795551c Added include of $(PUBLIC)\unicharutil to fix build bustage
git-svn-id: svn://10.0.0.236/trunk@21572 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 04:28:08 +00:00
briano%netscape.com
ef895ffca9 This version works a bit better, and is much more platform-independent. But it could be better....
git-svn-id: svn://10.0.0.236/trunk@21571 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 03:52:21 +00:00
karnaze%netscape.com
3955f8e7f3 better sizing of form controls, especially percentage based sizes and max element sizes
git-svn-id: svn://10.0.0.236/trunk@21570 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 03:48:01 +00:00
grail%cafebabe.org
bbf9e64a65 First attempt at the preference dialog.
git-svn-id: svn://10.0.0.236/trunk@21569 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 03:44:34 +00:00
ducarroz%netscape.com
fc3f62f474 change composelib to msgcompose.lib
git-svn-id: svn://10.0.0.236/trunk@21568 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 03:40:55 +00:00
ducarroz%netscape.com
dc6c3011ec Define FE_Alert as printf
git-svn-id: svn://10.0.0.236/trunk@21567 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 03:39:38 +00:00
bienvenu%netscape.com
054b6ef66b fix name of exe for clobber target
git-svn-id: svn://10.0.0.236/trunk@21566 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 03:38:32 +00:00
ducarroz%netscape.com
00cd0660e1 change library name
git-svn-id: svn://10.0.0.236/trunk@21565 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 03:38:09 +00:00
bienvenu%netscape.com
3c6fd63262 add new hdr to db to commit it
git-svn-id: svn://10.0.0.236/trunk@21564 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 03:37:21 +00:00
ducarroz%netscape.com
94c3bc55ec did some clean-up and reformating
git-svn-id: svn://10.0.0.236/trunk@21563 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 03:36:56 +00:00
bienvenu%netscape.com
d435333405 add back mdbstubs.obj
git-svn-id: svn://10.0.0.236/trunk@21562 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 03:35:42 +00:00
ducarroz%netscape.com
4877e32e8f Add directory compose
git-svn-id: svn://10.0.0.236/trunk@21561 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 03:34:17 +00:00
bienvenu%netscape.com
eecca19c15 add new notifications, char set as string new method to create hdr and add to db
git-svn-id: svn://10.0.0.236/trunk@21560 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 03:34:02 +00:00
mcmullen%netscape.com
74e9a93bcf Update
git-svn-id: svn://10.0.0.236/trunk@21559 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 03:32:00 +00:00
ftang%netscape.com
0c167bb377 add S/GetLineBreaker to nsIDocument.h. Reviewed by kipp and waterson
git-svn-id: svn://10.0.0.236/trunk@21558 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 03:31:26 +00:00
ducarroz%netscape.com
7db1f7033f Initial check in
git-svn-id: svn://10.0.0.236/trunk@21557 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 03:26:08 +00:00
mscott%netscape.com
d86e09b16b Implement operator= for nsFilePath when given an nsFilePath. a=mcmullen...
git-svn-id: svn://10.0.0.236/trunk@21556 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 03:10:29 +00:00
hyatt%netscape.com
21995bf11c Touched the files auto-generatedb y the IDL. Also implemented getElementByAttribute
for documents and for elements.


git-svn-id: svn://10.0.0.236/trunk@21554 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 02:40:51 +00:00
hyatt%netscape.com
2450c0ee83 Touched the headers that are auto-generated from the IDL.
git-svn-id: svn://10.0.0.236/trunk@21553 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 02:40:26 +00:00
hyatt%netscape.com
b13db84c95 Adding a getElementsByAttribute method.
git-svn-id: svn://10.0.0.236/trunk@21552 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 02:40:06 +00:00
hyatt%netscape.com
23b3de1494 Changing selection in the tree.
git-svn-id: svn://10.0.0.236/trunk@21550 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 02:39:44 +00:00
alecf%netscape.com
e1052d2ede fix cases where native method wasn't being called on XPIDL void functions.
Add cases for methods with and without parameters, and with and without return types.


git-svn-id: svn://10.0.0.236/trunk@21549 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 02:39:31 +00:00
alecf%netscape.com
5126032312 add a space in between the new native type and the old one.
git-svn-id: svn://10.0.0.236/trunk@21548 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 02:38:16 +00:00
cyeh%netscape.com
63a8568ff8 fix stupid bug where clobber_all clobbered everything but mozilla/xpfe.
this should be cleaned up to something more elegant later.


git-svn-id: svn://10.0.0.236/trunk@21543 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 02:29:08 +00:00
ftang%netscape.com
d997998a21 Make Case conversion work for non-Latin1 Unicode. Reviewed by kipp. Perofrmance is the same after changing this.
git-svn-id: svn://10.0.0.236/trunk@21542 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 02:27:54 +00:00
ftang%netscape.com
a558186c75 performance tuning for ToTitle method
git-svn-id: svn://10.0.0.236/trunk@21541 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 02:24:40 +00:00
alecf%netscape.com
0b40ca28ff update IDL interfaces and add some new ones
git-svn-id: svn://10.0.0.236/trunk@21540 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 02:19:53 +00:00
mcmullen%netscape.com
fc3b93ecef Final update - landing our branch.
git-svn-id: svn://10.0.0.236/trunk@21539 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 02:16:21 +00:00
rickg%netscape.com
b080bc7e52 added stubs for expat
git-svn-id: svn://10.0.0.236/trunk@21536 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 01:57:13 +00:00
alecf%netscape.com
04451dc06b we need to export nsMsgSend
git-svn-id: svn://10.0.0.236/trunk@21535 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 01:44:38 +00:00
alecf%netscape.com
1afe34dacc clean up trailing text after #endif's
git-svn-id: svn://10.0.0.236/trunk@21534 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 01:44:14 +00:00
alecf%netscape.com
4a31fd689e remove trailing text after #endif's
git-svn-id: svn://10.0.0.236/trunk@21533 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 01:42:32 +00:00
alecf%netscape.com
213075ad38 don't put text on the end of an #endif
git-svn-id: svn://10.0.0.236/trunk@21532 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 01:41:06 +00:00
alecf%netscape.com
a96513d0cf add this so XPIDL is happy
git-svn-id: svn://10.0.0.236/trunk@21531 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 01:39:55 +00:00
mscott%netscape.com
122438de05 Include msgCore.h at top of the file for pre-compiled headers. added code to hook up msg send to the new smtp service for actually sending the mail message.
git-svn-id: svn://10.0.0.236/trunk@21530 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 01:38:25 +00:00
putterman%netscape.com
d8df0e6b38 Added factory to local directory.
git-svn-id: svn://10.0.0.236/trunk@21529 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 01:32:45 +00:00
pinkerton%netscape.com
d47e32037c Temp fix for RTTI problems that are holding the tree closed. beard and pierre will discuss a real fix later. My comment at the top of this file summarizes the problem.
git-svn-id: svn://10.0.0.236/trunk@21528 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 01:28:25 +00:00
mscott%netscape.com
7b228c1f4a Export nsISmtpService.h
git-svn-id: svn://10.0.0.236/trunk@21527 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 01:17:25 +00:00
radha%netscape.com
ccf25fd2cb Autoregister the RDF library interfaces so that apprunner will display the
toolbar and the default page when invoked with no argument.


git-svn-id: svn://10.0.0.236/trunk@21524 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 01:07:27 +00:00
mscott%netscape.com
ee9864a3b8 Remove dependency on compose.lib because we now use the compose dll which is automatically registered...
git-svn-id: svn://10.0.0.236/trunk@21523 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 01:06:05 +00:00
mscott%netscape.com
b5d4de6f11 Remove all dependencies on compose.lib. Use the new Smtp Service for running urls....Right now the test exe doesn't let you run more than one command...I'll fix this later...
git-svn-id: svn://10.0.0.236/trunk@21522 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 01:05:24 +00:00
mscott%netscape.com
96ae53ec00 Remove commented out dependency on netlib.lib...
git-svn-id: svn://10.0.0.236/trunk@21521 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 01:03:51 +00:00
edwin%woudt.nl
29eb090ce8 Initial import of the status overview. Feel free to change the status on anything you're working on.
git-svn-id: svn://10.0.0.236/trunk@21520 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 01:03:01 +00:00
mscott%netscape.com
e0810a7038 Added DLL self registration code. Ability to create smtp service object. Changed class name to reflect the fact that this is a factory for compose....
git-svn-id: svn://10.0.0.236/trunk@21519 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 01:02:49 +00:00
mscott%netscape.com
b5580a8f97 Interface updates to use nsString and nsFilePath....
git-svn-id: svn://10.0.0.236/trunk@21518 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 01:00:42 +00:00
mscott%netscape.com
9e90f21952 Changes to update new nsISmtpUrl interface...
git-svn-id: svn://10.0.0.236/trunk@21517 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 00:59:57 +00:00
mscott%netscape.com
7275cf4cbd Interface changes to support nsString and nsFilePath. Also, correctly parse out host and port in mailto urls...
git-svn-id: svn://10.0.0.236/trunk@21516 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 00:58:24 +00:00
mscott%netscape.com
2535706e7e built smtp service.....
git-svn-id: svn://10.0.0.236/trunk@21515 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 00:57:14 +00:00
mscott%netscape.com
e027401d35 Smtp service for handling smtp requests in the mail application. This abstracts away the need for the app to know how to create smtp urls and smtp connections...
git-svn-id: svn://10.0.0.236/trunk@21514 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 00:56:39 +00:00
mscott%netscape.com
a077f80db0 Export nsISmtpService.h
git-svn-id: svn://10.0.0.236/trunk@21513 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 00:55:38 +00:00
mscott%netscape.com
792d857087 Service for handling SMTP requests....this abstracts away the process of creating an SMTP url and an SMTP connection to run the url from the application...
git-svn-id: svn://10.0.0.236/trunk@21512 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 00:55:10 +00:00
mscott%netscape.com
a55b21fec4 Adding some more common includes --> including the repository, service manager, nsCRT....
git-svn-id: svn://10.0.0.236/trunk@21511 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 00:54:02 +00:00
putterman%netscape.com
d0cee28db8 Make local its own dll.
git-svn-id: svn://10.0.0.236/trunk@21510 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 00:48:09 +00:00
putterman%netscape.com
54d60ac524 Take tests directory out of the build until we fix exporting issues.
git-svn-id: svn://10.0.0.236/trunk@21508 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 00:31:16 +00:00
bienvenu%netscape.com
9041b188f9 hook up more db folder info members to mdb
git-svn-id: svn://10.0.0.236/trunk@21507 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 00:20:50 +00:00
cyeh%netscape.com
0aa57c8318 this application has mfc dependencies. checking in now to do the stupid
thing and fix people. will have to go back and fix this properly.


git-svn-id: svn://10.0.0.236/trunk@21506 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-23 00:05:31 +00:00
edwin%woudt.nl
f1bcc872d3 We now have a working POP3 Store. You need to download SUN's POP3 provider for JavaMail for this. We now don't use grendel's POP3 Store anymore.
git-svn-id: svn://10.0.0.236/trunk@21504 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-22 23:33:32 +00:00
bienvenu%netscape.com
58189586c8 use nsNativeFileSpec to construct pop state.dat file name
git-svn-id: svn://10.0.0.236/trunk@21503 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-22 23:28:41 +00:00
despotdaemon%netscape.com
e7438f4393 Pseudo-automatic update of changes made by davidmc@netscape.com.
git-svn-id: svn://10.0.0.236/trunk@21502 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-22 23:25:20 +00:00
rickg%netscape.com
4566c0af09 fixed bug 2946
git-svn-id: svn://10.0.0.236/trunk@21500 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-22 23:18:43 +00:00
rickg%netscape.com
c994bcc637 fixed bug 2946
git-svn-id: svn://10.0.0.236/trunk@21499 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-22 23:17:05 +00:00
slamm%netscape.com
c93c74cddd nope, didn't work. remove it.
git-svn-id: svn://10.0.0.236/trunk@21498 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-22 23:12:39 +00:00
dougt%netscape.com
d4d557e798 Getting closer to milestone 2. More additions to the functionality of
xpinstall.

This is not part of the build process yet.


git-svn-id: svn://10.0.0.236/trunk@21496 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-22 23:10:23 +00:00
slamm%netscape.com
586994c681 Put this back and try again.
git-svn-id: svn://10.0.0.236/trunk@21495 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-22 23:07:24 +00:00
putterman%netscape.com
d20fc9f5e5 added NET_SACopy.
git-svn-id: svn://10.0.0.236/trunk@21494 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-22 23:03:53 +00:00
putterman%netscape.com
0403a01870 Add new parameters for width and height.
git-svn-id: svn://10.0.0.236/trunk@21493 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-22 23:00:36 +00:00
alecf%netscape.com
f999add513 fix XUL to match new command mechanism
git-svn-id: svn://10.0.0.236/trunk@21492 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-22 22:36:29 +00:00
mcmullen%netscape.com
2f12896d48 Remove the illegal semicolon after extern "C" {}
git-svn-id: svn://10.0.0.236/trunk@21489 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-22 22:25:10 +00:00
ftang%netscape.com
14f4b5ee95 fix ToTitle bug- make it compatabile to CSS Capitalize. Comment #ifndef XP_UNIX to make the auto registry work
git-svn-id: svn://10.0.0.236/trunk@21488 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-22 22:20:01 +00:00
despotdaemon%netscape.com
f61b96d0bd Pseudo-automatic update of changes made by leaf@mozilla.org.
git-svn-id: svn://10.0.0.236/trunk@21487 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-22 21:57:53 +00:00
rickg%netscape.com
d1023a23b1 fixed autoclose problem that Harish found
git-svn-id: svn://10.0.0.236/trunk@21486 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-22 20:55:15 +00:00
kin%netscape.com
e67967c1c2 Added IID() methods.
git-svn-id: svn://10.0.0.236/trunk@21485 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-22 19:56:57 +00:00
bienvenu%netscape.com
cd81f2b734 fix off by one error in line parsing code
git-svn-id: svn://10.0.0.236/trunk@21483 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-22 19:14:25 +00:00
fur%netscape.com
4dd6cc4ce1 Fix linkage problems on FreeBSD by adding -E linker option when building libPackage.so. Patch contributed by Amancio Hasty <hasty@rah.star-gate.com>.
git-svn-id: svn://10.0.0.236/trunk@21482 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-22 19:10:16 +00:00
saari%netscape.com
2bb1188bc8 tweak to mac menu logic
git-svn-id: svn://10.0.0.236/trunk@21481 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-22 19:10:05 +00:00
mjudge%netscape.com
49a8c115d7 Fixing nsCOMPtr misusage.
git-svn-id: svn://10.0.0.236/trunk@21479 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-22 19:06:48 +00:00
slamm%netscape.com
3838e04036 Server isn't ready for this file.
git-svn-id: svn://10.0.0.236/trunk@21478 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-22 19:06:20 +00:00
saari%netscape.com
0a38ef9c39 MacOS menus can support hierarchical menus now. nsWebShellWindow::LoadMenus() needs to be modified to support this.
git-svn-id: svn://10.0.0.236/trunk@21477 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-22 19:05:48 +00:00
hyatt%netscape.com
adaf4c6828 Re-enabling event handlers.
git-svn-id: svn://10.0.0.236/trunk@21476 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-22 19:05:30 +00:00
rods%netscape.com
819a746c89 Changed display type of titlebutton to inline
git-svn-id: svn://10.0.0.236/trunk@21475 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-22 19:01:13 +00:00
slamm%netscape.com
ac8a85f77d Allow 'SaveAs' to have correct name.
git-svn-id: svn://10.0.0.236/trunk@21474 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-22 18:59:18 +00:00
kmcclusk%netscape.com
62807409da Added support for creating a postscript device context for printing under GTK.
Sanitized the GTK nsDeviceContextSpecFactoryG, nsRenderingContextPS, nsDeviceContextPS,
and nsDeviceContextSpecG by removing WIN32 dependencies.
Added checks for null widgets in nsWidget and nsScrollbar GTK implementations.


git-svn-id: svn://10.0.0.236/trunk@21472 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-22 18:56:54 +00:00
slamm%netscape.com
430639dafc If the tree hasn't been pulled, client.mk needs to checkout build/autoconf/myconfig2defs.sh before it does anything else.
git-svn-id: svn://10.0.0.236/trunk@21471 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-22 18:48:51 +00:00
briano%netscape.com
2399e7a018 Automated update
git-svn-id: svn://10.0.0.236/trunk@21470 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-22 18:31:44 +00:00
slamm%netscape.com
8462c67f4e Little patch for -md dependencies.
git-svn-id: svn://10.0.0.236/trunk@21469 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-22 18:26:12 +00:00
bienvenu%netscape.com
6a966cfe55 hook up more db folder info stuff to mdb
git-svn-id: svn://10.0.0.236/trunk@21468 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-22 18:05:23 +00:00
slamm%netscape.com
27b7ce4ca4 Fix incorrect path for NSPR install dir.
git-svn-id: svn://10.0.0.236/trunk@21467 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-22 17:36:36 +00:00
buster%netscape.com
fb7ad5c58c caught up to new ScrollIntoView changes.
most transactions now properly set selection after modifying content, for Do, Undo, Redo.
lots of cleanup and minor bug fixes.


git-svn-id: svn://10.0.0.236/trunk@21466 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-22 15:53:31 +00:00
dcone%netscape.com
294ccdc501 Added fixes to get it to compile under UNIX
git-svn-id: svn://10.0.0.236/trunk@21465 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-22 15:00:59 +00:00
pierre%netscape.com
32d8cf8e04 don't dispatch cursor keys
git-svn-id: svn://10.0.0.236/trunk@21464 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-22 11:21:23 +00:00
pierre%netscape.com
46dac9a429 don't dispatch cursor keys / minor fixes
git-svn-id: svn://10.0.0.236/trunk@21463 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-22 11:20:57 +00:00
pierre%netscape.com
4c1175e4b0 added combobox (= popup) to the Mac
git-svn-id: svn://10.0.0.236/trunk@21462 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-22 10:22:45 +00:00
pierre%netscape.com
1c8fd37df1 inherits from Repeater
git-svn-id: svn://10.0.0.236/trunk@21461 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-22 10:21:51 +00:00
pierre%netscape.com
276c8cb22e numerous changes
git-svn-id: svn://10.0.0.236/trunk@21460 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-22 10:21:37 +00:00
pierre%netscape.com
c52d2e5834 added GetUniqueMenuID() (needed for popups)
git-svn-id: svn://10.0.0.236/trunk@21459 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-22 10:21:20 +00:00
pierre%netscape.com
45b1a40c7a added mMin/mMax (needed for popups)
git-svn-id: svn://10.0.0.236/trunk@21458 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-22 10:20:59 +00:00
pierre%netscape.com
c5e9e52519 removed outdated comments
git-svn-id: svn://10.0.0.236/trunk@21457 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-22 10:20:39 +00:00
grail%cafebabe.org
20526c39e0 Automagically add a scrollpane whenever a jlist is added.
git-svn-id: svn://10.0.0.236/trunk@21456 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-22 07:54:14 +00:00
mjudge%netscape.com
39c608b459 adding comments to interfaces
git-svn-id: svn://10.0.0.236/trunk@21455 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-22 05:19:06 +00:00
mjudge%netscape.com
22b8399dde Added, jump to prev word, modified INIT of nsTextTransformer to better prepare for a start offset at the end of the mFrags list. added implementation of extra parameter to nsIFrame::PeekOffset to keep state for the next word problem of eating ws. nsTextFrame should be all set on implementation of jumping words.
git-svn-id: svn://10.0.0.236/trunk@21454 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-22 04:59:52 +00:00
mjudge%netscape.com
537c9cb5ea adding parameter to nsIFrame for ::PeekOffset to be aware of the state of jumping a word. eating WS ect. also, nsRangeList sends the proper parameter for above change.
git-svn-id: svn://10.0.0.236/trunk@21453 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-22 04:57:44 +00:00
troy%netscape.com
957c46c254 More work-in-progress for table pagination
git-svn-id: svn://10.0.0.236/trunk@21452 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-22 03:28:00 +00:00
mjudge%netscape.com
465cddb814 gettig word jumping to work, adding GetPrevWord to texttransformer
git-svn-id: svn://10.0.0.236/trunk@21451 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-22 03:20:59 +00:00
mjudge%netscape.com
4589e1e0e1 adding word jumping with CNTRL char down now
git-svn-id: svn://10.0.0.236/trunk@21450 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-22 03:20:18 +00:00
mjudge%netscape.com
58cba90e27 adding NPL
git-svn-id: svn://10.0.0.236/trunk@21449 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-22 03:19:24 +00:00
brendan%netscape.com
b844735e32 - Use write rather than dump consistently (dump has unfortunate connotations).
- Avoid gratuitous extra newlines in foo.h compiled from foo.idl.
- Use do-while, not for or while, guarded by if that tests the loop condition.
- Use NS_EXPORT to qualify static InitJSClass and GetJSObject method.
- Turn enum declarations within interfaces into JS class constant numbers.
- Defend against null return from JS_GetPrivate (prototype and user-constructed
  objects have no private data).


git-svn-id: svn://10.0.0.236/trunk@21446 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-22 00:24:34 +00:00
mcmullen%netscape.com
cd5b595562 Took another one for nsIFile.
git-svn-id: svn://10.0.0.236/trunk@21445 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-22 00:15:46 +00:00
rods%netscape.com
0a40cda128 MOved XULCommand to src and it is now acting like a menu delegate,
all that reminas is to rename it.


git-svn-id: svn://10.0.0.236/trunk@21444 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-21 21:04:21 +00:00
rods%netscape.com
55acfd21d7 Remmoved nsIXULCommand.h
git-svn-id: svn://10.0.0.236/trunk@21443 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-21 20:52:29 +00:00
rods%netscape.com
e05f7ca3cb Added static IID method
git-svn-id: svn://10.0.0.236/trunk@21442 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-21 20:52:04 +00:00
rods%netscape.com
0588c407d6 MOved from public to src, it doesn't need to be exported
git-svn-id: svn://10.0.0.236/trunk@21441 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-21 20:51:12 +00:00
mcafee%netscape.com
1fc62fe57b Optionally include .client-defs.mk, client.mk should still work if you don't have this file.
git-svn-id: svn://10.0.0.236/trunk@21440 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-21 20:18:10 +00:00
troy%netscape.com
16495c746c Changed GetRowIndex() so that for continued cell frames the row index is
that of the cell's first-in-flow


git-svn-id: svn://10.0.0.236/trunk@21439 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-21 19:55:22 +00:00
mjudge%netscape.com
c1304ffecc Needed methods to disable the ScrollFrameIntoView because of resizing causing scrolling to snap selection into view. 3 helper fucs, 1 variable, PRBool mEnableScrolling defaulted to true of course
git-svn-id: svn://10.0.0.236/trunk@21438 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-21 19:43:40 +00:00
troy%netscape.com
0d87e040a3 Changed DeleteChildsNextInFlow() to use the nsFrameList::RemoveFrame() function
instead of what it was doing, because the assumption it was making about "aChild"
and "nextInFlow" sharing the same parent frame is not true for continued table cells


git-svn-id: svn://10.0.0.236/trunk@21437 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-21 18:59:00 +00:00
troy%netscape.com
19cf644cc1 Changed GetEffectiveRowSpan()
git-svn-id: svn://10.0.0.236/trunk@21436 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-21 18:38:41 +00:00
pavlov%pavlov.net
c654edd155 minor code cleanups
git-svn-id: svn://10.0.0.236/trunk@21435 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-21 17:40:00 +00:00
rods%netscape.com
694e9f8145 Added Set/GetEnabled and Set/GetChecked methods
git-svn-id: svn://10.0.0.236/trunk@21434 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-21 14:31:19 +00:00
ramiro%netscape.com
20f6409a0f Fixing the stderr brain damage.
This code is obsolete, but it will server as documentation someday.


git-svn-id: svn://10.0.0.236/trunk@21433 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-21 12:24:46 +00:00
mjudge%netscape.com
f405547ad2 fixing leak with selection. didnt realize that ElementAt caused a refcount. this should fix problem of selection not allowing presshell to go away.
git-svn-id: svn://10.0.0.236/trunk@21432 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-21 05:14:36 +00:00
mjudge%netscape.com
57b5f5c79b adding scrolling depending on selection modification. either by key event, or outside event.
git-svn-id: svn://10.0.0.236/trunk@21431 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-21 03:49:32 +00:00
mjudge%netscape.com
988ca9603d depricating the ScrollIntoView call. dont need it. the selection modification assures us of scrolling to view after batching.
git-svn-id: svn://10.0.0.236/trunk@21430 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-21 03:48:52 +00:00
edwin%woudt.nl
a8b27bf38c This patch is to make sure that Giao can work on the prefs code without problems because I'm messing aroung with the multiple personalities code. So now first everything gets stored in the default identity. If you want more identities you'll have to hack
git-svn-id: svn://10.0.0.236/trunk@21429 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-21 03:00:15 +00:00
pierre%netscape.com
7d87b43f95 made gWindowlessMenuEventHandler a private member variable (#3203: RX: Mac widgets)
git-svn-id: svn://10.0.0.236/trunk@21428 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-21 02:48:02 +00:00
edwin%woudt.nl
67226c1e96 I created a new contrib dir for code/data that should not go into the main tree, but which might be of some interest to developers. The first entry is a Codewarrior project file from Wesley Felter.
git-svn-id: svn://10.0.0.236/trunk@21427 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-21 02:22:51 +00:00
pierre%netscape.com
3e39d64a45 added nsDeleteObserver (#3147: crashes on mouseMoved or closeWindow)
git-svn-id: svn://10.0.0.236/trunk@21426 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-21 02:10:36 +00:00
pierre%netscape.com
e6d0867a28 First Checked In.
git-svn-id: svn://10.0.0.236/trunk@21425 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-21 02:01:46 +00:00
pierre%netscape.com
593668da2a returns eConsumeNoDefault after closing a window
git-svn-id: svn://10.0.0.236/trunk@21424 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-21 02:01:16 +00:00
pierre%netscape.com
a51a1d37cb removed outdated comments
git-svn-id: svn://10.0.0.236/trunk@21423 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-21 01:57:48 +00:00
mjudge%netscape.com
581b55a5ac Shift click to continue selection
git-svn-id: svn://10.0.0.236/trunk@21422 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-21 01:23:40 +00:00
jband%netscape.com
83081501e5 lots of cleanup
git-svn-id: svn://10.0.0.236/trunk@21418 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-21 00:20:40 +00:00
grail%cafebabe.org
f4ebc31945 Enhanced gridwidth/gridheight improvements.
git-svn-id: svn://10.0.0.236/trunk@21417 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-20 23:53:48 +00:00
mjudge%netscape.com
46b7661e5e Extra parameter in nsIFrameSeleciton HandleKeyEvent not necessary. nsRangeList mod now allows SHIFT-Key selection. currently bound directly to VK_LEFT,RIGHT should be changed eventually to something more internationaly friendly
git-svn-id: svn://10.0.0.236/trunk@21416 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-20 23:52:05 +00:00
grail%cafebabe.org
3ab15ad3ae Removed lame columns field for mail directory field.
git-svn-id: svn://10.0.0.236/trunk@21414 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-20 23:39:04 +00:00
grail%cafebabe.org
de35e41c69 UserPrefsEditor loads values from xena.pref.
git-svn-id: svn://10.0.0.236/trunk@21413 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-20 22:55:37 +00:00
grail%cafebabe.org
9e6564f1e1 PageUI now supports initAll() and saveAll().
git-svn-id: svn://10.0.0.236/trunk@21412 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-20 22:53:02 +00:00
edwin%woudt.nl
efde44a684 Fixing small itches with quoting and signatures
git-svn-id: svn://10.0.0.236/trunk@21411 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-20 22:19:32 +00:00
edwin%woudt.nl
cea97c5cae Adding the toolbar button pictures for adding the signature. Somebody should draw better ones.
git-svn-id: svn://10.0.0.236/trunk@21410 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-20 22:08:55 +00:00
edwin%woudt.nl
40c48fa727 Grendel now handels signatures (one can have a different signature for every personality)
git-svn-id: svn://10.0.0.236/trunk@21409 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-20 22:07:12 +00:00
buster%netscape.com
4df8a07f61 beginning work on ScrollToFrame
git-svn-id: svn://10.0.0.236/trunk@21408 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-20 21:29:27 +00:00
buster%netscape.com
8a7091809c the pres shell now respects NS_PRESSHELL_SCROLL_ANYWHERE for vertical scrolling.
this is a hack implementation, to be recoded by the layout team


git-svn-id: svn://10.0.0.236/trunk@21407 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-20 21:27:28 +00:00
edwin%woudt.nl
e712d9c08a When replying the message is quoted automatically now, so you don't have to push that 'quote' button.
git-svn-id: svn://10.0.0.236/trunk@21406 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-20 21:03:09 +00:00
pavlov%pavlov.net
e8c5e7c32c nsAppShell isn't an nsWidget, so don't cast it as so. This fixes the
nsRepository::CreateInstance for nsAppShell from viewer so it doesn't return
with an error for me.


git-svn-id: svn://10.0.0.236/trunk@21405 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-20 19:56:01 +00:00
jband%netscape.com
8281f81e8a compiler warning inspired fixes
git-svn-id: svn://10.0.0.236/trunk@21404 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-20 09:00:55 +00:00
jband%netscape.com
a42acfdfd4 compiler warning inspired fixes
git-svn-id: svn://10.0.0.236/trunk@21403 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-20 08:52:00 +00:00
jband%netscape.com
52667cdf63 added file to Makefile.in and fixed typo
git-svn-id: svn://10.0.0.236/trunk@21402 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-20 08:33:21 +00:00
jband%netscape.com
c7bae7988a jsint was supposed to be jsid
git-svn-id: svn://10.0.0.236/trunk@21401 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-20 08:31:36 +00:00
slamm%netscape.com
2870c0620c Get rid of ^M. Stupid windows editor
git-svn-id: svn://10.0.0.236/trunk@21400 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-20 07:52:15 +00:00
slamm%netscape.com
9cbfd8e4f9 Fix the dependencies for running configure.Have it depend on .client-defs.mk and only update that when the myconfig options change.
git-svn-id: svn://10.0.0.236/trunk@21399 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-20 07:47:04 +00:00
slamm%netscape.com
bd4ac0cddb Cleaner presentation.
git-svn-id: svn://10.0.0.236/trunk@21398 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-20 06:36:03 +00:00
mcafee%netscape.com
069fd4d3db Adding license; added do_QueryInterface() wrappers for nsCOMPtr stuff (Solaris)
git-svn-id: svn://10.0.0.236/trunk@21397 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-20 06:05:15 +00:00
terry%netscape.com
0951ed8dd2 Quote link containing username. Was choking if a username happened
to contain a % followed by two hex digits...


git-svn-id: svn://10.0.0.236/trunk@21396 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-20 06:04:57 +00:00
beard%netscape.com
f0dd8fa466 backed out build bustage change
git-svn-id: svn://10.0.0.236/trunk@21395 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-20 04:43:53 +00:00
beard%netscape.com
a7b513e908 class nsIPlugin not struct.
git-svn-id: svn://10.0.0.236/trunk@21394 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-20 04:26:09 +00:00
troy%netscape.com
986751b140 Fixed build bustage
git-svn-id: svn://10.0.0.236/trunk@21393 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-20 04:20:09 +00:00
beard%netscape.com
e964556c5c include nsFileSpec.h on all platforms.
git-svn-id: svn://10.0.0.236/trunk@21392 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-20 03:59:43 +00:00
rjc%netscape.com
de65e8143f *** empty log message ***
git-svn-id: svn://10.0.0.236/trunk@21391 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-20 03:52:26 +00:00
troy%netscape.com
d73ce78fae Pagination work-in-progress
git-svn-id: svn://10.0.0.236/trunk@21390 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-20 03:15:03 +00:00
alecf%netscape.com
bb5fecbdaf add nsIFactory to IDL export list
git-svn-id: svn://10.0.0.236/trunk@21389 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-20 03:12:19 +00:00
alecf%netscape.com
0b6134db08 update IDL files to be closer to real headers
git-svn-id: svn://10.0.0.236/trunk@21388 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-20 03:11:52 +00:00
slamm%netscape.com
967abbbedc Fix 'save as' link
git-svn-id: svn://10.0.0.236/trunk@21386 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-20 02:42:22 +00:00
slamm%netscape.com
0b94b60ff0 Add a couple comments to the script.
git-svn-id: svn://10.0.0.236/trunk@21385 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-20 02:38:06 +00:00
beard%netscape.com
c4737508c1 First Checked In.
git-svn-id: svn://10.0.0.236/trunk@21384 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-20 02:27:18 +00:00
beard%netscape.com
173a8736bd OJI interface changes.
git-svn-id: svn://10.0.0.236/trunk@21383 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-20 02:26:54 +00:00
beard%netscape.com
d7cf5961f9 OJI interface changes
git-svn-id: svn://10.0.0.236/trunk@21382 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-20 02:24:15 +00:00
slamm%netscape.com
820c132b85 Pull configure.in from the tree and parse it live.
git-svn-id: svn://10.0.0.236/trunk@21381 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-20 02:22:38 +00:00
beard%netscape.com
d41def05db XP_MAC: using __comobject as magic base class for all XPCOM objects.
git-svn-id: svn://10.0.0.236/trunk@21380 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-20 02:22:18 +00:00
slamm%netscape.com
a5e6e33af3 Ready for first release.
git-svn-id: svn://10.0.0.236/trunk@21379 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-20 02:20:59 +00:00
edwin%woudt.nl
7891a2e32d Finally fixed the java.awt.List / java.util.List nameclash
git-svn-id: svn://10.0.0.236/trunk@21378 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-20 02:17:48 +00:00
edwin%woudt.nl
565992401b Sanity (jikes falls over these)
git-svn-id: svn://10.0.0.236/trunk@21377 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-20 02:13:18 +00:00
hyatt%netscape.com
fc49802bdb Adding support for Eric Vaughan's buttons.
git-svn-id: svn://10.0.0.236/trunk@21376 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-20 02:08:08 +00:00
rjc%netscape.com
5fdc8d3672 Export nsIRDFFileSystem.h
git-svn-id: svn://10.0.0.236/trunk@21375 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-20 02:04:24 +00:00
hyatt%netscape.com
dc0cd2a930 Switched over to Eric Vaughan's titled buttons on the toolbar.
git-svn-id: svn://10.0.0.236/trunk@21374 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-20 02:01:01 +00:00
hyatt%netscape.com
6ebe77c7d6 Adding the event listener manager to the registry.
git-svn-id: svn://10.0.0.236/trunk@21373 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-20 02:00:12 +00:00
hyatt%netscape.com
afbfdebf96 Implementing event handlers on XUL nodes.
git-svn-id: svn://10.0.0.236/trunk@21372 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-20 01:59:45 +00:00
ftang%netscape.com
9a33e22c4c add sample code for word break into tests
git-svn-id: svn://10.0.0.236/trunk@21371 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-20 01:45:51 +00:00
mcmullen%netscape.com
ce4de2fba0 Took 2 for nsIFileOutputStream and nsIFileInputStream
git-svn-id: svn://10.0.0.236/trunk@21370 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-20 01:45:30 +00:00
rjc%netscape.com
568775e64c FileSystem data source now uses nsFileSpec (in base)
git-svn-id: svn://10.0.0.236/trunk@21369 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-20 01:38:57 +00:00
jband%netscape.com
8e6c568ef4 graphs of all the important objects can now be dumped for diagnostic purposes
git-svn-id: svn://10.0.0.236/trunk@21368 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-20 01:31:02 +00:00
slamm%netscape.com
6351718a4f Almost ready for first release.
git-svn-id: svn://10.0.0.236/trunk@21367 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-20 01:11:02 +00:00
sfraser%netscape.com
83a34ecac9 Backing out my previous change, to enable AutoRegister again on the Mac. sdagley checked in a change to NSPR which fixes the crash on launch.
git-svn-id: svn://10.0.0.236/trunk@21366 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-20 01:07:31 +00:00
larryh%netscape.com
148843f692 per Steve Dagley
git-svn-id: svn://10.0.0.236/trunk@21365 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-20 00:58:42 +00:00
robinf%netscape.com
626d47873d adding Show Example bitmap for net.ini dialog
git-svn-id: svn://10.0.0.236/trunk@21364 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-20 00:41:54 +00:00
robinf%netscape.com
2a66104b97 updated Netcenter dialog text on this screen
git-svn-id: svn://10.0.0.236/trunk@21363 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-20 00:37:15 +00:00
brendan%netscape.com
bb634b1838 Fix goofs caught by alecf in GetJSObject generation.
git-svn-id: svn://10.0.0.236/trunk@21362 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-20 00:10:22 +00:00
mjudge%netscape.com
b52264a83e nsPresShell now listens to changes in the domselection. (also modified nsIEnumerator to use NS_IMETHOD instead of virtual nsresult). Added batching for selection changes. you can move the selection, do things then turn off batching for an update if necessary. also prevented circular referencing by adding listener removal to PresShell::endDocumentListening(sp)
git-svn-id: svn://10.0.0.236/trunk@21359 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 23:47:36 +00:00
buster%netscape.com
adcc22143f work-in-progress for scrolling frames into view. Not called anywhere in layout yet.
git-svn-id: svn://10.0.0.236/trunk@21357 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 23:43:41 +00:00
mjudge%netscape.com
a811da51ec changing nsIEnumerator to use NS_IMETHOD not virtual nsresult
git-svn-id: svn://10.0.0.236/trunk@21356 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 23:43:20 +00:00
mjudge%netscape.com
25715df9ea adding batching for selection.
git-svn-id: svn://10.0.0.236/trunk@21355 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 23:41:49 +00:00
robinf%netscape.com
46236d416a adding bitmap for folder.ini dialog
git-svn-id: svn://10.0.0.236/trunk@21354 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 23:33:02 +00:00
robinf%netscape.com
949daaf880 adding dialogs for new Show Example buttons
git-svn-id: svn://10.0.0.236/trunk@21353 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 23:31:12 +00:00
sfraser%netscape.com
70f30c1dcc This is a temporary fix for the Mac crash on launch; don't call AutoRegister on Mac. Approved by sar
git-svn-id: svn://10.0.0.236/trunk@21352 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 23:28:49 +00:00
robinf%netscape.com
f8f83ecc27 added Show Example buttons to these dialogs
git-svn-id: svn://10.0.0.236/trunk@21351 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 23:28:27 +00:00
slamm%netscape.com
549bc1175f added
git-svn-id: svn://10.0.0.236/trunk@21350 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 23:11:36 +00:00
slamm%netscape.com
75bc03462a Fix bustage: OBJDIR wasn't defined correctly. (also add webconfig target)
git-svn-id: svn://10.0.0.236/trunk@21349 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 22:55:50 +00:00
michaelp%netscape.com
cfec235502 First Checked In.
git-svn-id: svn://10.0.0.236/trunk@21348 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 22:47:36 +00:00
edwin%woudt.nl
f19a7b51fe Mail sending now works. I also added the multiple peronalities feature.
git-svn-id: svn://10.0.0.236/trunk@21347 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 22:41:38 +00:00
edwin%woudt.nl
9ef011c45f Added the DialogAuthenticator back in to get imap/pop3/nntp working.
git-svn-id: svn://10.0.0.236/trunk@21346 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 22:40:12 +00:00
edwin%woudt.nl
a785970646 Added a mail.host property for sending e-mail. Also add the DialogAuthenticator back in to get imap/pop3/nntp working.
git-svn-id: svn://10.0.0.236/trunk@21345 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 22:39:23 +00:00
despotdaemon%netscape.com
a2542f8261 Pseudo-automatic update of changes made by edwin@woudt.nl.
git-svn-id: svn://10.0.0.236/trunk@21343 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 22:17:38 +00:00
slamm%netscape.com
f641e6118d try checking out configure.in.
git-svn-id: svn://10.0.0.236/trunk@21342 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 22:04:11 +00:00
slamm%netscape.com
4e272a0aa9 m4 not in server path. try full path.
git-svn-id: svn://10.0.0.236/trunk@21341 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 21:45:06 +00:00
slamm%netscape.com
171b74a9bd *** empty log message ***
git-svn-id: svn://10.0.0.236/trunk@21339 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 21:39:47 +00:00
jband%netscape.com
62fe220b56 get xpidl building again on Win32
git-svn-id: svn://10.0.0.236/trunk@21338 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 21:39:41 +00:00
slamm%netscape.com
7b20426c78 *** empty log message ***
git-svn-id: svn://10.0.0.236/trunk@21337 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 21:39:20 +00:00
slamm%netscape.com
029be13fd1 test parts of config.cgi
git-svn-id: svn://10.0.0.236/trunk@21336 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 21:34:59 +00:00
slamm%netscape.com
eb3c0ea15d Tweak license.
git-svn-id: svn://10.0.0.236/trunk@21333 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 20:53:45 +00:00
slamm%netscape.com
6e15814840 Tweak license, add comments
git-svn-id: svn://10.0.0.236/trunk@21332 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 20:53:25 +00:00
slamm%netscape.com
2d91b1e859 Not sure if m4 if present. use preparsed file for now
git-svn-id: svn://10.0.0.236/trunk@21331 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 20:26:29 +00:00
slamm%netscape.com
078a90b74d Another pass at it.
git-svn-id: svn://10.0.0.236/trunk@21330 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 20:17:25 +00:00
evaughan%netscape.com
78b1ccb4a7 Fixed out of scope compile bug.
git-svn-id: svn://10.0.0.236/trunk@21329 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 20:12:08 +00:00
slamm%netscape.com
0b9b69291e Make configure dependent on nspr
git-svn-id: svn://10.0.0.236/trunk@21327 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 20:01:56 +00:00
slamm%netscape.com
40d8febe78 Add .client-defs and myconfig.sh
git-svn-id: svn://10.0.0.236/trunk@21326 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 19:53:50 +00:00
despotdaemon%netscape.com
211ac29371 Pseudo-automatic update of changes made by wtc@netscape.com.
git-svn-id: svn://10.0.0.236/trunk@21325 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 19:51:01 +00:00
slamm%netscape.com
c05bfd575d Look for nspr in /usr/lib. Add nspr check to build target. New documentation.
git-svn-id: svn://10.0.0.236/trunk@21324 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 19:49:15 +00:00
slamm%netscape.com
681bb2f47b Only load myconfig.sh if it can be found.
git-svn-id: svn://10.0.0.236/trunk@21323 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 19:40:41 +00:00
akkana%netscape.com
d3dc0c4391 Turn on Unix cout code for doCopy()
git-svn-id: svn://10.0.0.236/trunk@21322 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 19:21:25 +00:00
slamm%netscape.com
22f48fdd7e Remove unused substitutions for MOZ_NETCAST, MOZ_LDAP, SMART_MAIL
git-svn-id: svn://10.0.0.236/trunk@21321 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 18:42:29 +00:00
evaughan%netscape.com
994add6e25 added files: mozilla/layout/html/forms/src/nsButtonFrameRenderer.cpp, mozilla/layout/xul/base/src/nsTitledButtonFrame.cpp
git-svn-id: svn://10.0.0.236/trunk@21320 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 18:29:56 +00:00
evaughan%netscape.com
ece31da4ba Added TitledButton and ProgressMeter
git-svn-id: svn://10.0.0.236/trunk@21319 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 18:23:32 +00:00
evaughan%netscape.com
9ae8b8c3df Added a new XUL TitledButtonFrame
git-svn-id: svn://10.0.0.236/trunk@21318 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 18:23:02 +00:00
saari%netscape.com
4966836d25 enable menus on mac
git-svn-id: svn://10.0.0.236/trunk@21317 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 18:17:24 +00:00
briano%netscape.com
f142222ea3 Automated update
git-svn-id: svn://10.0.0.236/trunk@21316 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 17:31:47 +00:00
slamm%netscape.com
ae4233f4e1 Reorder/group options. Align comments. Remove dead options.
git-svn-id: svn://10.0.0.236/trunk@21315 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 17:29:51 +00:00
slamm%netscape.com
4c9cc55514 Avoid adding duplicate options (which would happen with config.status --recheck). Skip options for client.mk.
git-svn-id: svn://10.0.0.236/trunk@21314 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 17:27:53 +00:00
slamm%netscape.com
7dbcfada76 Add a macro to label a group of options.
git-svn-id: svn://10.0.0.236/trunk@21313 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 17:25:47 +00:00
slamm%netscape.com
8f7e66a512 Convert myconfig.sh into makefile format for client.mk
git-svn-id: svn://10.0.0.236/trunk@21312 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 17:24:48 +00:00
grail%cafebabe.org
b285b21227 On a slow machine, there's a NullException as getGraphics() returns after
UI disappears.


git-svn-id: svn://10.0.0.236/trunk@21311 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 16:18:41 +00:00
brade%netscape.com
6805ba51ec add prototype to reduce warnings on Macintosh compiler
git-svn-id: svn://10.0.0.236/trunk@21310 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 16:13:47 +00:00
brade%netscape.com
0abc84f688 move local variables into #if block where they are needed (reduces warnings on Macintosh compiler)
git-svn-id: svn://10.0.0.236/trunk@21309 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 16:12:58 +00:00
brade%netscape.com
3c77f58b02 move local variable into comment block to reduce warnings on Macintosh compiler
git-svn-id: svn://10.0.0.236/trunk@21308 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 16:11:23 +00:00
brade%netscape.com
1326f793c9 remove unused local variable to reduce warnings on Macintosh compiler
git-svn-id: svn://10.0.0.236/trunk@21307 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 16:09:37 +00:00
mcafee%netscape.com
02df79470f Yanking fe_GetConfigDir() which is now in prefs.
git-svn-id: svn://10.0.0.236/trunk@21306 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 13:34:20 +00:00
mcafee%netscape.com
d16f99e851 Solaris: adding do_QueryInterface() wrapper per scc's carpool.
git-svn-id: svn://10.0.0.236/trunk@21305 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 13:14:26 +00:00
mcafee%netscape.com
38e4c7c52b Solaris needs a constructor for ConverterInfo().
git-svn-id: svn://10.0.0.236/trunk@21304 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 13:05:19 +00:00
mcafee%netscape.com
6d0cd7820b Solaris: newline at end of file.
git-svn-id: svn://10.0.0.236/trunk@21303 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 12:33:44 +00:00
mcafee%netscape.com
a713afe41e Solaris: newline at end of file
git-svn-id: svn://10.0.0.236/trunk@21302 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 12:32:16 +00:00
mcafee%netscape.com
430ad20c2f Solaris: adding do_QueryInterface() wrapper as part of scc's nsCOMPtr carpool. a=scc
git-svn-id: svn://10.0.0.236/trunk@21301 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 12:27:19 +00:00
mcafee%netscape.com
5f84cd50d5 Adding source files to match Win32; Solaris build was failing with 0 source files for the library creation.
git-svn-id: svn://10.0.0.236/trunk@21300 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 12:21:16 +00:00
mcafee%netscape.com
9865bce5b0 Solaris: changing casts to match PREF_GetIntPref() prototype; We should be using PRBool, XP_Bool needs to go away, cast here until PREF_GetBoolPref() is fixed.
git-svn-id: svn://10.0.0.236/trunk@21299 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 12:20:12 +00:00
mcafee%netscape.com
69142ed84b Adding license file.
git-svn-id: svn://10.0.0.236/trunk@21298 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 12:16:35 +00:00
mcafee%netscape.com
92753a46b3 Solaris: adding do_QueryInterface() wrappers to finish scc's nsCOMPtr carpool. a=scc
git-svn-id: svn://10.0.0.236/trunk@21297 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 11:30:31 +00:00
ramiro%netscape.com
d9d58d2259 Fix the row data problem; it was breaking on aix and probably elsewhere.
Also, unhardcoded the item length.


git-svn-id: svn://10.0.0.236/trunk@21296 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 11:09:25 +00:00
ramiro%netscape.com
b57ce47d93 Use NS_STATIC_CAST instead of static_cast.
git-svn-id: svn://10.0.0.236/trunk@21295 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 11:05:16 +00:00
mcafee%netscape.com
5f03bde36f PRBool: use PR_FALSE, PR_TRUE instead of false, true.
git-svn-id: svn://10.0.0.236/trunk@21294 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 10:57:49 +00:00
mcafee%netscape.com
c76e336302 Solaris needs explicit casts here; NULL -> 0 solved some more cast problems.
git-svn-id: svn://10.0.0.236/trunk@21293 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 10:46:20 +00:00
grail%cafebabe.org
11efe4777c Store layout information in preference file.
git-svn-id: svn://10.0.0.236/trunk@21292 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 09:34:08 +00:00
mcafee%netscape.com
36202c86c7 Fixing function prototypes to match implementation; Solaris didn't like the const mis-matches.
git-svn-id: svn://10.0.0.236/trunk@21291 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 09:12:53 +00:00
grail%cafebabe.org
bd068d2900 Added newly introduced classes to the build.
git-svn-id: svn://10.0.0.236/trunk@21290 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 09:05:39 +00:00
grail%cafebabe.org
3ad3dcddb0 Dialogs that builds out of XML descriptions. Test code to verify that
they do work. Need integration into the main UI.


git-svn-id: svn://10.0.0.236/trunk@21289 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 09:05:00 +00:00
grail%cafebabe.org
9654b55745 PageUI class similar to original PageUI class prior to code
release. Many fixes with respect to structures in regards to widget
builders that read from XML.


git-svn-id: svn://10.0.0.236/trunk@21288 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 09:02:35 +00:00
mcafee%netscape.com
f4c6cbaf8d Solaris needs newline at end of file.
git-svn-id: svn://10.0.0.236/trunk@21287 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 08:45:46 +00:00
rickg%netscape.com
07ace3f11e improved broken quote handling
git-svn-id: svn://10.0.0.236/trunk@21286 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 06:48:25 +00:00
warren%netscape.com
b526be3e85 Used new NS_DECL_ISUPPORTS_INHERITED and NS_IMPL_ISUPPORTS_INHERITED macros.
git-svn-id: svn://10.0.0.236/trunk@21285 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 06:34:23 +00:00
warren%netscape.com
b689b92f0c Added NS_DECL_ISUPPORTS_INHERITED and NS_IMPL_ISUPPORTS_INHERITED.
git-svn-id: svn://10.0.0.236/trunk@21284 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 06:33:33 +00:00
rickg%netscape.com
46c4a16a9e support for hex entities
git-svn-id: svn://10.0.0.236/trunk@21283 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 06:33:06 +00:00
rickg%netscape.com
93cd35c059 small mod to handle hex conversion better
git-svn-id: svn://10.0.0.236/trunk@21282 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 06:32:40 +00:00
jband%netscape.com
e3a664c320 in the middle of adding diagnostics
git-svn-id: svn://10.0.0.236/trunk@21281 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 05:59:59 +00:00
warren%netscape.com
737e598624 A bunch of fixes for cursor stuff.
git-svn-id: svn://10.0.0.236/trunk@21280 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 05:27:22 +00:00
troy%netscape.com
6cd8439821 Removed some old code
git-svn-id: svn://10.0.0.236/trunk@21279 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 05:10:59 +00:00
waldemar%netscape.com
48586c4d0f Added traditional and super and changed [] to allow multiple arguments
git-svn-id: svn://10.0.0.236/trunk@21278 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 04:28:16 +00:00
troy%netscape.com
4073fb069c Added GetBrowserWindow to nsWebCrawler, and changed nsViewerApp to only
call SetBrowserWindow() once and to have CloseWindow() check before
setting the web crawler's browser window to NULL (doing so caused a crash)


git-svn-id: svn://10.0.0.236/trunk@21277 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 04:24:12 +00:00
mcafee%netscape.com
997ffb0991 Solaris: Adding do_QueryInterface() wrapper to finish scc's nsCOMPtr carpool.
git-svn-id: svn://10.0.0.236/trunk@21276 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 03:46:06 +00:00
grail%cafebabe.org
d95127f626 Changed access to setStore(Hashtable) to protected rather than default.
git-svn-id: svn://10.0.0.236/trunk@21275 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 03:28:29 +00:00
rickg%netscape.com
cf681fb5f2 fixed build bustage
git-svn-id: svn://10.0.0.236/trunk@21274 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 03:28:27 +00:00
briano%netscape.com
027bce5cae Automated update
git-svn-id: svn://10.0.0.236/trunk@21273 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 03:15:38 +00:00
grail%cafebabe.org
e1c53a6056 Coexistence patches for Java 2 DND and 1.1 non-existent DND.
git-svn-id: svn://10.0.0.236/trunk@21272 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 03:10:40 +00:00
bienvenu%netscape.com
1dc9778116 start getting nntp hooked up to news database
git-svn-id: svn://10.0.0.236/trunk@21271 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 03:09:39 +00:00
bienvenu%netscape.com
bcd3f56bb8 start adding mork impl
git-svn-id: svn://10.0.0.236/trunk@21270 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 03:08:40 +00:00
alecf%netscape.com
92f8b2f140 check in new .deps based dependancy system
git-svn-id: svn://10.0.0.236/trunk@21269 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 03:06:32 +00:00
scc%netscape.com
0bf24da1ba updated for nsCOMPtr; owners should check my changes to see if they agree with my choices for |do_QueryInterface| vs |dont_QueryInterface|
git-svn-id: svn://10.0.0.236/trunk@21267 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 02:56:00 +00:00
mcafee%netscape.com
b4abca0ff2 Switching over to PRBool, PR_TRUE, and PR_FALSE. Keeps us honest, and Solaris happy. a=pinkerton
git-svn-id: svn://10.0.0.236/trunk@21266 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 02:54:53 +00:00
scc%netscape.com
8d172223d3 updating for nsCOMPtr; owners should check my changes to see if they agree with my choices for |do_QueryInterface| vs |dont_QueryInterface|
git-svn-id: svn://10.0.0.236/trunk@21265 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 02:53:45 +00:00
ramiro%netscape.com
5733b62506 Add xpcom/idl/Makefile to the build.
git-svn-id: svn://10.0.0.236/trunk@21264 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 02:51:57 +00:00
sdagley%netscape.com
19eb0cde55 Mac specific fix. Now that dp's code to walk the shared libs to see what is installed is working we've run into a problem that unloading the libs breaks the app (crash on quit, possible general instability). rjc's fix is to make sure PR_LoadLibrary is loading a unique copy of the lib by changing GetDiskFragment to use the option kPrivateCFragCopy instead of kLoadCFrag.
git-svn-id: svn://10.0.0.236/trunk@21263 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 02:45:54 +00:00
mcafee%netscape.com
1f7994d9de Solaris needs newline at end of file.
git-svn-id: svn://10.0.0.236/trunk@21262 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 02:43:26 +00:00
mscott%netscape.com
0ec3a2d8cf More updates for getting the 3-pane looking correctly...
git-svn-id: svn://10.0.0.236/trunk@21261 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 02:43:11 +00:00
grail%cafebabe.org
da252ac5a7 Added in JList to the builder. Use type attribute as "jlist".
git-svn-id: svn://10.0.0.236/trunk@21260 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 02:39:00 +00:00
kostello%netscape.com
68e65f5b6f Fixing build error -- the instance variables
mComputedCRC32 and mExpectedCRC32 were only being defined
in the DEBUG build although they are used throughout
CNavDTD.cpp and it cannot be built in non-debug mode.


git-svn-id: svn://10.0.0.236/trunk@21259 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 02:35:58 +00:00
mcafee%netscape.com
a8d48b571d Fixing return types and swtich to proper PR_TRUE/PR_FALSE types. r=akkana@netscape.com
git-svn-id: svn://10.0.0.236/trunk@21258 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 02:32:58 +00:00
nisheeth%netscape.com
98f27f7f53 Adding test case for attribute changes on the BR element via the DOM.
git-svn-id: svn://10.0.0.236/trunk@21257 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 02:15:03 +00:00
alecf%netscape.com
42a31ae59a MD5 implementation, thanks to mrsam@geocities.com
git-svn-id: svn://10.0.0.236/trunk@21256 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 02:12:44 +00:00
mjudge%netscape.com
8d5b4d8988 fogot to move files out of this makefile.in
git-svn-id: svn://10.0.0.236/trunk@21255 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 02:12:19 +00:00
troy%netscape.com
467691c69c Removed some XXX code that was temporary, but I forgot to delete
git-svn-id: svn://10.0.0.236/trunk@21254 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 02:05:00 +00:00
alecf%netscape.com
a906c1204e add dummy nsISupports.idl so that other IDL files can compile
(Windows makefile.win still needed - volunteers welcome!)


git-svn-id: svn://10.0.0.236/trunk@21253 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 02:04:21 +00:00
mcafee%netscape.com
d9b8c3370e Fixing return types and swtich to proper PR_TRUE/PR_FALSE types. r=akkana@netscape.com
git-svn-id: svn://10.0.0.236/trunk@21252 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 02:03:23 +00:00
bienvenu%netscape.com
62c02dfd14 link with the dll rdf to get rid of linker warnings
git-svn-id: svn://10.0.0.236/trunk@21251 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 01:42:25 +00:00
mcafee%netscape.com
3fda99d774 Solaris: mIsDone is a PRBool, that means use PR_FALSE or PR_TRUE.
git-svn-id: svn://10.0.0.236/trunk@21250 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 01:41:03 +00:00
nhotta%netscape.com
ec9942b6be Fix for Macintosh test.
git-svn-id: svn://10.0.0.236/trunk@21249 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 01:38:27 +00:00
ftang%netscape.com
e12e6236d8 add implementation for word breaker. Add selftest code for word break. Fix GetClass for line breaker
git-svn-id: svn://10.0.0.236/trunk@21248 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 01:38:12 +00:00
nhotta%netscape.com
6c94cdaf95 Added a new sort test.
git-svn-id: svn://10.0.0.236/trunk@21247 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 00:59:42 +00:00
rickg%netscape.com
84b3dd704b added CRC
git-svn-id: svn://10.0.0.236/trunk@21246 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 00:54:27 +00:00
rickg%netscape.com
51cbc8248b minor improvement to CRC
git-svn-id: svn://10.0.0.236/trunk@21245 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 00:54:01 +00:00
troy%netscape.com
92f8d12843 Added pseudo style for 'page' element
git-svn-id: svn://10.0.0.236/trunk@21244 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 00:53:09 +00:00
wtc%netscape.com
b97395c726 Bugsplat bug #343158: corrected a typo in the comment. Thanks to
John Bandhauer <jband@netscape.com> for the bug report and fix.


git-svn-id: svn://10.0.0.236/trunk@21243 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 00:45:35 +00:00
bienvenu%netscape.com
0b75042f6b switch to new mdb interface naming conventions
git-svn-id: svn://10.0.0.236/trunk@21242 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 00:32:39 +00:00
mjudge%netscape.com
978b778be6 moving nsFrameTraversal.* nsFrameList.* to layout/base also adding selection from keyboard.
git-svn-id: svn://10.0.0.236/trunk@21241 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 00:21:22 +00:00
rjc%netscape.com
0be8d28fa8 Remove nsComPtr usage (due to Unix).
git-svn-id: svn://10.0.0.236/trunk@21240 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 00:19:42 +00:00
wtc%netscape.com
354adef46e Test list for nspr.
git-svn-id: svn://10.0.0.236/trunk@21239 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 00:14:41 +00:00
cyeh%netscape.com
dc574bc583 removing special config.mak and rules.mak. special rules have been rolled
into mozilla/config/config.mak and mozilla/config/rules.mak


git-svn-id: svn://10.0.0.236/trunk@21238 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-19 00:10:02 +00:00
scc%netscape.com
726c966a08 updated for nsCOMPtr (no implicit construction from raw pointers) owners should check that they agree with my choices for |dont_QueryInterface|, |do_QueryInterface| and |dont_AddRef|
git-svn-id: svn://10.0.0.236/trunk@21237 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 23:55:10 +00:00
rickg%netscape.com
7d4f2c2c76 new primaryDetect code in DTD detection system; fixes XIF
git-svn-id: svn://10.0.0.236/trunk@21236 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 23:45:44 +00:00
cyeh%netscape.com
67e1d76bc2 if makedep.exe doesn't exist, build it, then continue with rest of depend rule.
git-svn-id: svn://10.0.0.236/trunk@21235 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 23:37:43 +00:00
leaf%mozilla.org
2d2fb1c8b7 (really cyeh) fix syntatical lameness.
git-svn-id: svn://10.0.0.236/trunk@21234 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 23:23:17 +00:00
wtc%netscape.com
fcb29be1ad On BSDI, zero a pthread_mutex_t or pthread_cond_t before initializing
it.  This patch is contributed by Bert Driehuis
<bert_driehuis@nl.compuware.com>.


git-svn-id: svn://10.0.0.236/trunk@21233 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 23:20:11 +00:00
mcafee%netscape.com
0434d32b61 Adding do_QueryInterface() wrapper for Solaris, this is the other part of scc's nsCOMPtr carpool
git-svn-id: svn://10.0.0.236/trunk@21232 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 23:18:56 +00:00
cyeh%netscape.com
fee0afd4ba on win95 and win98, we would blow up echo with too long of a line to print.
if we are on NT, this doesn't happen. now we report status of makedep.exe
dependent of the OS we are on.


git-svn-id: svn://10.0.0.236/trunk@21231 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 23:18:40 +00:00
mcafee%netscape.com
7ecd89e7c3 Solaris needs newline at end of file.
git-svn-id: svn://10.0.0.236/trunk@21230 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 23:09:08 +00:00
buster%netscape.com
0a8d990683 work in progress
git-svn-id: svn://10.0.0.236/trunk@21229 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 23:01:06 +00:00
mcafee%netscape.com
a898a253b9 Solaris needs newline at end of file.
git-svn-id: svn://10.0.0.236/trunk@21228 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 23:00:45 +00:00
alecf%netscape.com
e7e0a25231 link xpidl statically against libxpt so that dist/bin doesn't need to be in your LD_LIBRARY_PATH
git-svn-id: svn://10.0.0.236/trunk@21227 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 22:59:17 +00:00
rjc%netscape.com
9f18f7d524 Now call rdf_qsort on all platforms.
git-svn-id: svn://10.0.0.236/trunk@21226 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 22:55:02 +00:00
rjc%netscape.com
b78067ee85 Add rdf_qsort.c to Unix/Win makefiles.
git-svn-id: svn://10.0.0.236/trunk@21225 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 22:54:16 +00:00
waterson%netscape.com
c71132e043 Removed RDF DLLs from SetupRegistry() b/c RDF self-registers.
git-svn-id: svn://10.0.0.236/trunk@21224 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 22:53:51 +00:00
waterson%netscape.com
f276494411 Fixed to get building on Linux.
git-svn-id: svn://10.0.0.236/trunk@21223 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 22:53:19 +00:00
buster%netscape.com
f92429b874 added nsPresShell::ScrollFrameIntoView(), which forces the given frame to be visible in the current view.
git-svn-id: svn://10.0.0.236/trunk@21222 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 22:52:21 +00:00
buster%netscape.com
72dbac31c5 added ScrollFrameIntoView(), which forces the given frame to be visible in the current view.
git-svn-id: svn://10.0.0.236/trunk@21221 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 22:51:46 +00:00
leaf%mozilla.org
628812f080 fixing the perl hardcoding. looks in the hardcoded places, then pulls perl from the
path if not found.


git-svn-id: svn://10.0.0.236/trunk@21220 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 22:51:05 +00:00
leaf%mozilla.org
6049bf947b fixing the 'unix_date' requirement... can be either unix_date or date in the
%MOZ_TOOLS%\bin directory.


git-svn-id: svn://10.0.0.236/trunk@21219 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 22:49:35 +00:00
rjc%netscape.com
7bfa2b0470 Needed to const strings.
git-svn-id: svn://10.0.0.236/trunk@21218 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 22:45:26 +00:00
mcafee%netscape.com
48000fe302 Solaris needs newline at end of file.
git-svn-id: svn://10.0.0.236/trunk@21217 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 22:43:16 +00:00
mcafee%netscape.com
75b0ae409a Adding do_QueryInterface() wrapper to finish scc's nsCOMPtr carpool
git-svn-id: svn://10.0.0.236/trunk@21216 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 22:39:26 +00:00
dp%netscape.com
30a7157140 Hacked to remove ./ when we PR_LoadLibrary() dlls of the type ./library.so
This improves memory a bit.


git-svn-id: svn://10.0.0.236/trunk@21215 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 22:37:35 +00:00
kmcclusk%netscape.com
103dec6b88 changed pseudo styles file-button, file-text to -moz-file-button -moz-file-text in ua.css
Adjusted nsHTMLAtoms to match.


git-svn-id: svn://10.0.0.236/trunk@21214 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 22:36:59 +00:00
waterson%netscape.com
189eb2cd2e rdfutil.cpp
git-svn-id: svn://10.0.0.236/trunk@21213 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 22:36:41 +00:00
alecf%netscape.com
b0cb95cfba make these libraries build during the export phase
git-svn-id: svn://10.0.0.236/trunk@21212 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 22:36:27 +00:00
dcone%netscape.com
461659931d Added the printer support files for GTK
git-svn-id: svn://10.0.0.236/trunk@21211 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 22:35:11 +00:00
rjc%netscape.com
301d4115d1 Comment out error while I investigate.
git-svn-id: svn://10.0.0.236/trunk@21210 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 22:34:25 +00:00
michaelp%netscape.com
90cf0a152e made GetClipRegion comply with new API definition.
git-svn-id: svn://10.0.0.236/trunk@21209 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 22:34:19 +00:00
mcafee%netscape.com
fab9b8fd0d Adding support for Solaris native compiler. a=scc
git-svn-id: svn://10.0.0.236/trunk@21208 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 22:34:15 +00:00
coop%netscape.com
52d9b10a97 NOT YET PART OF SEAMONKEY:
* now close input file in all cases
* warn user about params with no in/out flag information
* more internal error checking


git-svn-id: svn://10.0.0.236/trunk@21207 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 22:29:59 +00:00
rjc%netscape.com
8c9a8dbd6a Add simple, preliminary way of doing sorting. (Note: using our own local version of qsort due to API changes.)
git-svn-id: svn://10.0.0.236/trunk@21206 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 22:29:16 +00:00
rjc%netscape.com
4d94c79d09 First Checked In.
git-svn-id: svn://10.0.0.236/trunk@21205 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 22:28:10 +00:00
cyeh%netscape.com
b5bb8d7250 enable depend builds with client.mak.
git-svn-id: svn://10.0.0.236/trunk@21204 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 22:27:52 +00:00
cyeh%netscape.com
8abc5148a7 enable depend rules in client.mak. build makedep.exe. change rules.mak
to look for makedep.exe in mozilla/config


git-svn-id: svn://10.0.0.236/trunk@21203 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 22:26:31 +00:00
cyeh%netscape.com
9437ab4528 move this from mozilla/cmd/winfe/mkfiles32 to a more proper home in mozilla/config
git-svn-id: svn://10.0.0.236/trunk@21202 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 22:25:06 +00:00
kipp%netscape.com
77737917d9 removed usless includes
git-svn-id: svn://10.0.0.236/trunk@21201 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 22:23:52 +00:00
kipp%netscape.com
6055d14c33 Added missing ctor/dtor
git-svn-id: svn://10.0.0.236/trunk@21200 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 22:23:36 +00:00
kipp%netscape.com
e378675197 Added support methods to make bullet alignment better
git-svn-id: svn://10.0.0.236/trunk@21199 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 22:23:13 +00:00
kipp%netscape.com
f768475e63 Process bullets better so that they are vertically aligned properly
git-svn-id: svn://10.0.0.236/trunk@21198 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 22:22:55 +00:00
kipp%netscape.com
1e1667142a Renamed bullet pseudo style
git-svn-id: svn://10.0.0.236/trunk@21197 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 22:20:19 +00:00
slamm%netscape.com
a3f468be66 Add this until I get if from the mirror properly.
git-svn-id: svn://10.0.0.236/trunk@21196 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 22:07:43 +00:00
kmcclusk%netscape.com
92c173e493 Fixed call to ProbePseudoStyleContext in nsButtonControlFrame so it will compile
when NS_GFX_RENDER_FORM_ELEMENTS is defined.
Added checks to nsFileControlFrame::Reflow to make sure the pseudo styles actually
could be loaded. If they can't be loaded it uses the file upload elements style.
Changed file-buttonstyle to file-button and file-textstyle to file-text in ua.css


git-svn-id: svn://10.0.0.236/trunk@21195 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 22:07:23 +00:00
rods%netscape.com
77cc46acdc Aded default sizes to TopLevelWindowCreate
git-svn-id: svn://10.0.0.236/trunk@21194 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 22:04:34 +00:00
briano%netscape.com
48f2deb8b8 Automated update
git-svn-id: svn://10.0.0.236/trunk@21193 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 22:00:38 +00:00
rods%netscape.com
f1c36c51a2 Added example/experimental code showing how to change icons during runtime
git-svn-id: svn://10.0.0.236/trunk@21192 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 21:59:05 +00:00
rods%netscape.com
d5b8b13d8c Fixed a debug statement
git-svn-id: svn://10.0.0.236/trunk@21191 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 21:58:17 +00:00
rods%netscape.com
687a599bc1 Added some experimental code for printpreview
git-svn-id: svn://10.0.0.236/trunk@21190 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 21:56:21 +00:00
wtc%netscape.com
1c84f21c45 The code should not have actual functions in the assertions.
The patch is contributed by Matthew Zahorik <maz@albany.net>.


git-svn-id: svn://10.0.0.236/trunk@21189 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 21:55:58 +00:00
rods%netscape.com
0078cba183 Completed work on -width and -height
git-svn-id: svn://10.0.0.236/trunk@21188 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 21:53:31 +00:00
slamm%netscape.com
15708cc95f Remove duplicate flags.
git-svn-id: svn://10.0.0.236/trunk@21187 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 21:53:19 +00:00
rods%netscape.com
7f9d9e2cbd Completed work on -width and -height for specifying the initial size of the window
git-svn-id: svn://10.0.0.236/trunk@21186 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 21:52:27 +00:00
slamm%netscape.com
1061e81618 first test
git-svn-id: svn://10.0.0.236/trunk@21185 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 21:52:11 +00:00
hyatt%netscape.com
e6b7c227b8 Improvements to the broadcasting mechanism so that HTML nodes can properly
observe XUL broadcasters.


git-svn-id: svn://10.0.0.236/trunk@21184 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 21:45:06 +00:00
slamm%netscape.com
768e91fc56 Add directory for build tools.
git-svn-id: svn://10.0.0.236/trunk@21183 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 21:27:26 +00:00
slamm%netscape.com
7fc3f9aa6a Take out checkbox for selected build, since it didn't work.
git-svn-id: svn://10.0.0.236/trunk@21181 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 20:13:30 +00:00
pinkerton%netscape.com
930f143f9c adding nsRepository stuff to exports. permission to fix build bustage during closed tree given by leaf.
git-svn-id: svn://10.0.0.236/trunk@21180 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 20:11:07 +00:00
wtc%netscape.com
c6bb8cfa23 Minor editing.
git-svn-id: svn://10.0.0.236/trunk@21179 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 20:03:51 +00:00
brendan%netscape.com
2f93db442f Finish Get and SetProperty, simplify InitJSClass via globalObject.
git-svn-id: svn://10.0.0.236/trunk@21178 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 19:59:11 +00:00
alecf%netscape.com
7374289593 remove md5 from MOZ_MAIL_NEWS build
git-svn-id: svn://10.0.0.236/trunk@21177 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 19:54:54 +00:00
wtc%netscape.com
cb4214dcdf Bugzilla bug #3144: OPENBSD also needs a leading underscore in the
symbol names.  The patch is contributed by kstailey@kstailey.tzo.com.


git-svn-id: svn://10.0.0.236/trunk@21176 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 19:45:32 +00:00
mscott%netscape.com
01f184ec56 Build news/tests/nntp directory...
git-svn-id: svn://10.0.0.236/trunk@21175 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 19:42:59 +00:00
mscott%netscape.com
9596fcc41f Properly set and color toolbar button which will fetch a hard coded news article from the server and display it to the screen.
git-svn-id: svn://10.0.0.236/trunk@21174 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 19:37:32 +00:00
pinkerton%netscape.com
12f6d07701 fix types and remember to initialize the grippy last highlight to none at creation. Fixes a problem where the first grippy in the toolbar was being drawn highlighted at create time.
git-svn-id: svn://10.0.0.236/trunk@21173 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 19:28:00 +00:00
mscott%netscape.com
4716537e45 Our thread pane xml file was not written right. Updated it to use the correct xul and xml tags to display correctly using the tree widget.
git-svn-id: svn://10.0.0.236/trunk@21172 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 19:23:52 +00:00
mscott%netscape.com
352dba47a1 New style sheet for laying out the tree widget....
git-svn-id: svn://10.0.0.236/trunk@21171 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 19:22:33 +00:00
pinkerton%netscape.com
75a9ff8c89 move url bar to top toolbar.
git-svn-id: svn://10.0.0.236/trunk@21170 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 19:18:25 +00:00
mcmullen%netscape.com
2731eecce6 Reserved a range for file i/o errors.
git-svn-id: svn://10.0.0.236/trunk@21169 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 18:58:25 +00:00
slamm%netscape.com
9d53ca188b Look for '.mozmyconfig' in home directory
git-svn-id: svn://10.0.0.236/trunk@21168 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 18:51:02 +00:00
leaf%mozilla.org
3cf01f0b50 adding the Grendel module
git-svn-id: svn://10.0.0.236/trunk@21167 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 18:49:23 +00:00
ebina%netscape.com
75b8d59d5f Remove the magic files from the MANIFEST
git-svn-id: svn://10.0.0.236/trunk@21166 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 18:45:55 +00:00
ebina%netscape.com
67889cd9e7 removed files: mozilla/network/cnvts/magic.cpp
git-svn-id: svn://10.0.0.236/trunk@21165 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 18:45:37 +00:00
slamm%netscape.com
ba2dfae464 Add 'run_viewer' target.
git-svn-id: svn://10.0.0.236/trunk@21164 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 18:44:48 +00:00
ebina%netscape.com
fe3cfd5ead The magic stuff is gone. The real stuff is in XPCOM/repository now.
git-svn-id: svn://10.0.0.236/trunk@21163 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 18:42:35 +00:00
kipp%netscape.com
d1a27c7e27 Fixed bug #3161 - removed bogus assertion
git-svn-id: svn://10.0.0.236/trunk@21161 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 18:25:45 +00:00
grail%cafebabe.org
e2a08bc361 Added EditHostDialog back into the build.
git-svn-id: svn://10.0.0.236/trunk@21160 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 18:24:28 +00:00
cyeh%netscape.com
7d89e840e2 Remove mozilla/layout/config and use mozilla/config instead.
git-svn-id: svn://10.0.0.236/trunk@21159 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 18:16:21 +00:00
cyeh%netscape.com
ef0cd60b00 don't include liteness.mak anymore, all those flags are obsolete.
git-svn-id: svn://10.0.0.236/trunk@21158 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 18:12:10 +00:00
shaver%netscape.com
608be074b9 Add dependency on libxpt and NSPR for typelib generation.
Only output |static const IID()| if we have an IID defined.
Output forward declarations.
Initial -m typelib stuff (handles methods, barely).


git-svn-id: svn://10.0.0.236/trunk@21156 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 17:43:38 +00:00
shaver%netscape.com
e12b558d1f fix InterfaceDescriptorAddMethods to not randomly overwrite memory, and fix
DoMethodDescriptor to not randomly overwrite md->result


git-svn-id: svn://10.0.0.236/trunk@21155 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 17:36:46 +00:00
ebina%netscape.com
c3ed0b23da Forgot to ifdef USE_REGISTRY which was breaking the MAC.
git-svn-id: svn://10.0.0.236/trunk@21154 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 17:18:06 +00:00
ebina%netscape.com
6ec4d9395d Have generic text, image, and application look for plugins in
NET_PluginStream


git-svn-id: svn://10.0.0.236/trunk@21153 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 17:14:25 +00:00
rods%netscape.com
d18115acba Added temporary menu delegate code. This enables menus to invoke JavaScript
BUT it menus can't observe changes or broadcasts


git-svn-id: svn://10.0.0.236/trunk@21152 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 17:13:30 +00:00
rods%netscape.com
ff8024a3aa Changed default page to navigator.xul
git-svn-id: svn://10.0.0.236/trunk@21151 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 17:12:09 +00:00
ebina%netscape.com
1ec564fccc Remove the "magic" hack because we now have the real thing
in XPCOM/repository


git-svn-id: svn://10.0.0.236/trunk@21150 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 17:09:48 +00:00
ebina%netscape.com
2d56d53627 Clean up an nsnull comparison.
git-svn-id: svn://10.0.0.236/trunk@21149 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 17:02:49 +00:00
ebina%netscape.com
de89022e76 Add public functions RegisterComponent, UnregisterComponent, and ProgIDToCLSID
git-svn-id: svn://10.0.0.236/trunk@21148 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 16:58:22 +00:00
troy%netscape.com
597d5a42e5 Fixed a style context problem
git-svn-id: svn://10.0.0.236/trunk@21147 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 16:56:15 +00:00
rods%netscape.com
522f7e6d93 Status bar is now hooked up.
git-svn-id: svn://10.0.0.236/trunk@21146 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 16:39:32 +00:00
rods%netscape.com
08e00e81f7 Fixed up some indentation issues and added fixed position style attributes.
git-svn-id: svn://10.0.0.236/trunk@21144 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 16:33:56 +00:00
rods%netscape.com
ebb56bf41c Added a little code to find the menus and load them.
They aren't hooked up yet.


git-svn-id: svn://10.0.0.236/trunk@21143 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 16:32:44 +00:00
rods%netscape.com
b79dc92650 Removed the InsertItemAt method that takes a string, this was a conveince
method no one was implementing.
Changed The InsertMenuItemAt to nsISupports because either a nsIMenu or nsIMenuItem
can be inserted.


git-svn-id: svn://10.0.0.236/trunk@21142 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 15:17:11 +00:00
mcafee%netscape.com
0ca9f24e74 Adding newline at end of file for Solaris/CC
git-svn-id: svn://10.0.0.236/trunk@21141 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 12:14:59 +00:00
mcafee%netscape.com
e78d2a9f39 Moving egrep -q to redirect to /dev/null to get around egrep portability problem. Thanks to ramiro for this fix.
git-svn-id: svn://10.0.0.236/trunk@21140 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 11:30:29 +00:00
mcafee%netscape.com
ceeeef188b Icons live in AppCores/xul/resources now.
git-svn-id: svn://10.0.0.236/trunk@21139 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 11:10:18 +00:00
mcafee%netscape.com
7af0dcc61e navigator.xul is referencing toolbar, not Toolbar
git-svn-id: svn://10.0.0.236/trunk@21138 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 11:09:06 +00:00
grail%cafebabe.org
25a5525a24 Added in full toggle button functionality into the PageModel.
git-svn-id: svn://10.0.0.236/trunk@21137 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 10:26:42 +00:00
grail%cafebabe.org
d1a2ab5731 Page builder, page model now works. It's ugly. The entire XML widget
building needs help in general.


git-svn-id: svn://10.0.0.236/trunk@21136 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 10:11:44 +00:00
jband%netscape.com
1f0737e036 added macro to ease defining the static const IID() accessor to xpcom interface class declarations
git-svn-id: svn://10.0.0.236/trunk@21135 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 05:37:50 +00:00
jband%netscape.com
8adf363343 changed MAP_IS_NATIVE to allow for objects that have their own jsObjectOps but still use the slots in the 'normal' manner (this is necessary for XPConnect) - same change as made on SpiderMonkey140_BRANCH
git-svn-id: svn://10.0.0.236/trunk@21134 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 05:36:16 +00:00
hyatt%netscape.com
4ab66b66a5 Commented out some code I shouldn't have in the menu code.
git-svn-id: svn://10.0.0.236/trunk@21133 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 05:18:18 +00:00
hyatt%netscape.com
64946e6ea0 Fixing Mac build bustage.
git-svn-id: svn://10.0.0.236/trunk@21132 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 05:14:30 +00:00
hyatt%netscape.com
1098a58b04 Improvements to the document getElementByID method.
git-svn-id: svn://10.0.0.236/trunk@21131 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 05:03:20 +00:00
hyatt%netscape.com
133b081fb6 Inside an INCLUDE_XUL #ifdef, making sure that HTML atoms get addrefed and
released by the frame constructor.


git-svn-id: svn://10.0.0.236/trunk@21130 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 05:02:50 +00:00
hyatt%netscape.com
6369b8df24 Checking in the new appRunner.
git-svn-id: svn://10.0.0.236/trunk@21129 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 05:01:03 +00:00
hyatt%netscape.com
bb3f825862 Changes to the XUL stylesheet file and tweaks to the makefiles to make
sure that the navigator.xul file is properly installed in the res/samples
directory.


git-svn-id: svn://10.0.0.236/trunk@21128 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 05:00:22 +00:00
hyatt%netscape.com
708b1e47f0 This is the true file that will be loaded by the browser.
git-svn-id: svn://10.0.0.236/trunk@21126 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 04:57:21 +00:00
mscott%netscape.com
bd9d731f1d Change default path for writing tempArticle.eml into to c:\temp.
git-svn-id: svn://10.0.0.236/trunk@21124 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 04:46:54 +00:00
troy%netscape.com
44d563da83 Added support for 'width' and 'height' values of 'inherit'
git-svn-id: svn://10.0.0.236/trunk@21123 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 04:40:16 +00:00
mcafee%netscape.com
5bcfc821ca Backing the egrep part of slamm's change out, solaris egrep doesn't know what -q is
git-svn-id: svn://10.0.0.236/trunk@21122 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 04:33:23 +00:00
briano%netscape.com
f011fbd216 Automated update
git-svn-id: svn://10.0.0.236/trunk@21121 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 04:31:38 +00:00
jband%netscape.com
615071e15e more tests
git-svn-id: svn://10.0.0.236/trunk@21120 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 04:30:20 +00:00
ramiro%netscape.com
1bee575a8c Added --{enable,disable}-build-nspr --{enable,disable}-build-xpfe.
git-svn-id: svn://10.0.0.236/trunk@21118 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 04:19:43 +00:00
alecf%netscape.com
4f1c7d9148 fix initialization ordering to match declaration
git-svn-id: svn://10.0.0.236/trunk@21117 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 03:56:24 +00:00
mscott%netscape.com
23d892e5a2 We need to build mime as part of messenger...
git-svn-id: svn://10.0.0.236/trunk@21116 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 03:54:15 +00:00
mscott%netscape.com
51aacb5ee6 Rebuild our 3-pane UI using iframes..the old code was using HTML frames which caused only one nsIWebShell for the whole mail frame....
git-svn-id: svn://10.0.0.236/trunk@21115 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 03:52:40 +00:00
alecf%netscape.com
d47d8e5b07 ignore generated files
git-svn-id: svn://10.0.0.236/trunk@21114 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 03:46:47 +00:00
alecf%netscape.com
05044b0ee8 fix for egcs/gcc compiler bug
git-svn-id: svn://10.0.0.236/trunk@21113 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 03:46:32 +00:00
kipp%netscape.com
01e3829114 Update window-manager hints so that the window is resizable after its shown
git-svn-id: svn://10.0.0.236/trunk@21112 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 03:33:00 +00:00
kipp%netscape.com
85de11e40a Compute subscript/super-script offsets; support (disabled) scalable fonts
git-svn-id: svn://10.0.0.236/trunk@21111 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 03:32:29 +00:00
kipp%netscape.com
696f13970e Made it build and work on linux
git-svn-id: svn://10.0.0.236/trunk@21110 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 03:29:37 +00:00
kipp%netscape.com
598f1d281f updated hash generator
git-svn-id: svn://10.0.0.236/trunk@21109 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 03:29:24 +00:00
kipp%netscape.com
fa4db70f26 Fixed up alignment mappings
git-svn-id: svn://10.0.0.236/trunk@21108 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 03:28:55 +00:00
kipp%netscape.com
d075589210 Added methods for supporting 2 pass vertical align reflow
git-svn-id: svn://10.0.0.236/trunk@21107 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 03:28:00 +00:00
kipp%netscape.com
ff33b16eb8 Support 2 pass vertical-align reflow for top/bottom better
git-svn-id: svn://10.0.0.236/trunk@21106 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 03:27:41 +00:00
kipp%netscape.com
656c1d08ba Eliminated HAVE_ANONYMOUS_BLOCK code; added in implementations of FindTextRuns and VerticalAlignChildren
git-svn-id: svn://10.0.0.236/trunk@21105 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 03:27:23 +00:00
kipp%netscape.com
59a8c9178d Removed a skid mark
git-svn-id: svn://10.0.0.236/trunk@21104 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 03:26:42 +00:00
kipp%netscape.com
1e83ecb886 Detect errors more often by prioritizing its status over size-available
git-svn-id: svn://10.0.0.236/trunk@21103 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 03:26:19 +00:00
ramiro%netscape.com
0e2ed2303f Build tests on if ENABLE_TESTS is defined.
git-svn-id: svn://10.0.0.236/trunk@21102 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 03:26:16 +00:00
kipp%netscape.com
7f83e9ffe2 Added VerticalAlignFrames for 2nd pass vertical align reflow
git-svn-id: svn://10.0.0.236/trunk@21101 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 03:25:48 +00:00
kipp%netscape.com
18469f80d3 Removed GetAutoMarginSize; added VerticalAlignFrames
git-svn-id: svn://10.0.0.236/trunk@21100 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 03:25:23 +00:00
kipp%netscape.com
c597871027 Removed usage of GetAutoMarginSize
git-svn-id: svn://10.0.0.236/trunk@21099 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 03:24:58 +00:00
kipp%netscape.com
3762fd4a73 Used temporary variables to avoid double-casts and make it easier for compilers to do the right thing
git-svn-id: svn://10.0.0.236/trunk@21098 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 03:24:39 +00:00
alecf%netscape.com
2f203b251c moving mailnews makfiles into mailnews directory
git-svn-id: svn://10.0.0.236/trunk@21097 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 03:22:52 +00:00
kipp%netscape.com
65c05b56e0 Removed obsolete GetAutoMarginSize method
git-svn-id: svn://10.0.0.236/trunk@21096 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 03:19:02 +00:00
brendan%netscape.com
a674934ef9 Fixed wrapper management to be self-contained, requiring no extra interfaces.
git-svn-id: svn://10.0.0.236/trunk@21095 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 03:10:40 +00:00
briano%netscape.com
cb8834ef3a Automated update
git-svn-id: svn://10.0.0.236/trunk@21094 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 03:00:39 +00:00
shaver%netscape.com
7f3aa35988 binary files are required (thanks, jband). also fix typo
git-svn-id: svn://10.0.0.236/trunk@21093 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 02:53:08 +00:00
briano%netscape.com
321fc1b1cf Fix DSO_LDOPTS for AIX (4.2 for now).
git-svn-id: svn://10.0.0.236/trunk@21092 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 02:49:42 +00:00
waterson%netscape.com
231408e37d Implemented most of the rest of the DOM observer methods.
git-svn-id: svn://10.0.0.236/trunk@21090 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 02:02:48 +00:00
cyeh%netscape.com
bd900b8256 change from using layout/config/rules.mak to using config/rules.mak
git-svn-id: svn://10.0.0.236/trunk@21087 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 01:52:09 +00:00
rjc%netscape.com
c5b77f467b Small fix for path separators.
git-svn-id: svn://10.0.0.236/trunk@21086 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 01:43:22 +00:00
mscott%netscape.com
ed40070a63 Makefile to build the nntpTest harness
git-svn-id: svn://10.0.0.236/trunk@21085 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 01:16:12 +00:00
mscott%netscape.com
7fd6fb2575 Oops...build the nntp sub directory as well
git-svn-id: svn://10.0.0.236/trunk@21084 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 01:15:40 +00:00
mscott%netscape.com
916c0d316d Build the stub code as a library.
git-svn-id: svn://10.0.0.236/trunk@21083 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 01:14:05 +00:00
cata%netscape.com
3ab85f2050 Test data from files capability added.
git-svn-id: svn://10.0.0.236/trunk@21080 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 00:55:19 +00:00
mscott%netscape.com
66873c869a build nntp sub directory...
git-svn-id: svn://10.0.0.236/trunk@21079 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 00:54:37 +00:00
cata%netscape.com
53b2d57c3c Hacky ASCII encoder elliminated.
git-svn-id: svn://10.0.0.236/trunk@21078 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 00:54:13 +00:00
mscott%netscape.com
2326f2cf1f NNTP test harness. This code was moved here from news\tests.
git-svn-id: svn://10.0.0.236/trunk@21077 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 00:54:06 +00:00
mscott%netscape.com
e9bf3da007 Removing from repository. This file now lives in tests\nntp.
git-svn-id: svn://10.0.0.236/trunk@21076 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 00:53:29 +00:00
cata%netscape.com
6604db1794 Return value name changed.
git-svn-id: svn://10.0.0.236/trunk@21075 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 00:53:27 +00:00
mscott%netscape.com
0471e422bc Remove some ::IID() calls and replace them with NS_DEFINE_IID macros...
git-svn-id: svn://10.0.0.236/trunk@21073 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 00:47:50 +00:00
mscott%netscape.com
df4a08360c initializing base app core no longer happens in the mail app core....this removes our build dependencies on the base app cores.
git-svn-id: svn://10.0.0.236/trunk@21072 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 00:47:09 +00:00
mscott%netscape.com
7258cdddda Link with nntptest library...
git-svn-id: svn://10.0.0.236/trunk@21071 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 00:46:16 +00:00
mscott%netscape.com
6f4d722db2 Updates to our mail core XUL file to get loading of a hard coded news url to run.
git-svn-id: svn://10.0.0.236/trunk@21070 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 00:45:11 +00:00
mcmullen%netscape.com
cfb2941367 Backing out previous change from the trunk, because it was supposed to have gone in on a branch.
git-svn-id: svn://10.0.0.236/trunk@21069 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 00:45:07 +00:00
mscott%netscape.com
29946279d1 mail shell needs a frame for browser.webwindow
git-svn-id: svn://10.0.0.236/trunk@21068 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 00:43:36 +00:00
saari%netscape.com
d1bffb6304 /m/pub/mozilla/widget/src/mac/nsMenu.cpp
- unleash menu separators for mac


git-svn-id: svn://10.0.0.236/trunk@21067 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 00:42:06 +00:00
shaver%netscape.com
9aaaefcbe2 Report read failure and short reads (should handle short reads better! RSN!).
File length is a size_t now, not an int.


git-svn-id: svn://10.0.0.236/trunk@21066 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 00:42:01 +00:00
mscott%netscape.com
6b65c21255 Add ::IID() methods to these interfaces...
git-svn-id: svn://10.0.0.236/trunk@21065 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 00:36:12 +00:00
mcmullen%netscape.com
8d5ad2e84a Updated to match the header changes I've been making. Also, added the declaration of the persistent filespec class.
git-svn-id: svn://10.0.0.236/trunk@21064 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 00:35:41 +00:00
mscott%netscape.com
da7c584bf4 Adding ::IID() methods to these interfaces...
git-svn-id: svn://10.0.0.236/trunk@21063 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 00:34:33 +00:00
mscott%netscape.com
6f23628ee5 For now, disable the nntp test executable. (I'll look into moving this into a separate makefile...)
Build the test stubs as a stand alone library...


git-svn-id: svn://10.0.0.236/trunk@21062 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 00:29:11 +00:00
mscott%netscape.com
bc682708aa Don't use ::IID() function for the webshell interface because it doesn't support it....
git-svn-id: svn://10.0.0.236/trunk@21061 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 00:28:10 +00:00
waterson%netscape.com
1c931da059 Fixed bug where we were generating HTML kids for each attribute that we iterated over.
git-svn-id: svn://10.0.0.236/trunk@21060 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 00:25:06 +00:00
rjc%netscape.com
b1a6ff20f0 Fix XPCom on Mac so that autoregistration of .shlb files work.
git-svn-id: svn://10.0.0.236/trunk@21059 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 00:24:38 +00:00
waterson%netscape.com
75d3092e20 Force all HTML tags to lower case.
git-svn-id: svn://10.0.0.236/trunk@21058 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 00:24:16 +00:00
vidur%netscape.com
78c8a0019e Backed out bogus update to test
git-svn-id: svn://10.0.0.236/trunk@21057 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 00:19:12 +00:00
vidur%netscape.com
1defb4fd38 Supported XML namespace decls as attributes of HTML content embedded in XML
git-svn-id: svn://10.0.0.236/trunk@21056 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 00:18:50 +00:00
kmcclusk%netscape.com
e999bd483b Added pseudo styles for file input element buttons and text fields to control their
appearance during printing.
Now returns value of file upload element in nsHTMLInputElement::GetValue.
Added :file-textstyle and :file-buttonstyle pseudo style's to ua.css.
Modified nsButtonControlFrame::PaintButton to accept a rectangle describing the
position and size of the button to paint.
Modified nsFileControlFrame::Paint to resolve :file-buttonstyle and :file-textstyle to
paint the file upload's button and text field using settings in ua.css
Added nsFileControlFrame::HasWidget utility method.
Added nsFormControlHelper::GetInputElementValue to get the current value of an input element
from the DOM.
Modified nsTextControlFrame::GetProperty to use nsFormControlHelper::GetInputElementValue
Modified nsTextControlFrame::PaintTextControl to accept a rectangle describing the position
and size of the text control to paint.
Modified nsTextControl::PaintTextControlBackground to include a rectangle describing the
position and size of the text control background to paint.


git-svn-id: svn://10.0.0.236/trunk@21055 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 00:13:39 +00:00
warren%netscape.com
564e53e97d Added constructor for strings.
git-svn-id: svn://10.0.0.236/trunk@21054 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 00:12:08 +00:00
waterson%netscape.com
cf0b064285 Added nsRDFResource.
git-svn-id: svn://10.0.0.236/trunk@21053 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 00:11:53 +00:00
sdagley%netscape.com
d4b4c375df Mac specific fix. Checking in rjc's fix to load libraries if file spec was an alias to a library rather than the actual library file spec. Needed so XPCOM will work on Mac.
git-svn-id: svn://10.0.0.236/trunk@21052 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 00:10:46 +00:00
nhotta%netscape.com
ea5ca906ce nsILocale integration.
git-svn-id: svn://10.0.0.236/trunk@21051 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 00:02:03 +00:00
vidur%netscape.com
0556407675 Implemented the correct content model for the TITLE element and allowed for dynamic change.
git-svn-id: svn://10.0.0.236/trunk@21050 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 23:56:55 +00:00
warren%netscape.com
d44ee154e4 Moved utilities to util directory.
git-svn-id: svn://10.0.0.236/trunk@21049 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 23:42:09 +00:00
waterson%netscape.com
73d0b8257a Added a hack to use the tag's namespace as the default namespace in the lack of any other information. Not sure if this is correct.
git-svn-id: svn://10.0.0.236/trunk@21048 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 23:41:23 +00:00
sfraser%netscape.com
efbf2406c3 Add nsCaret.cpp
git-svn-id: svn://10.0.0.236/trunk@21047 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 23:37:21 +00:00
sfraser%netscape.com
afdfb1b0d3 Adding nsCaretProperties.cpp to Windows and UNIX builds
git-svn-id: svn://10.0.0.236/trunk@21046 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 23:36:54 +00:00
cata%netscape.com
e3dbe4db0b Interface implemented as "public".
git-svn-id: svn://10.0.0.236/trunk@21041 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 23:21:22 +00:00
bienvenu%netscape.com
e04293df2c test PrePopulate method
git-svn-id: svn://10.0.0.236/trunk@21039 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 23:19:31 +00:00
bienvenu%netscape.com
ba6284a483 add PrePopulate method for testing
git-svn-id: svn://10.0.0.236/trunk@21038 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 23:18:46 +00:00
ebina%netscape.com
1501c1cf35 Don't stop looking for converters just because the first one
failed.  This will be necessary for plugin converters.


git-svn-id: svn://10.0.0.236/trunk@21037 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 23:18:13 +00:00
warren%netscape.com
e8b5c1f3f2 Added nsRDFResource.h for the mac
git-svn-id: svn://10.0.0.236/trunk@21036 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 23:02:00 +00:00
saari%netscape.com
6e6893dc91 /m/pub/mozilla/widget/src/mac/nsMenu.cpp
- uncommented MenuSelected implementation
- cleaned up MenuSelected implementation

/m/pub/mozilla/widget/src/mac/nsMenuBar.cpp
- Uncomment MenuSelected() implementation
- Uncomment release of nsIMenuListener to avoid leak

/m/pub/mozilla/widget/src/mac/nsMenuItem.cpp
- #include "nsIMenuListener.h"
- Implement AddMenuListener()
- Implement MenuSelected()

/m/pub/mozilla/widget/src/mac/nsMenuItem.h
- Added nsIMenuListener * mXULCommandListener member


git-svn-id: svn://10.0.0.236/trunk@21033 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 22:45:34 +00:00
brendan%netscape.com
679ff22189 Cope with void return.
git-svn-id: svn://10.0.0.236/trunk@21032 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 22:45:12 +00:00
bienvenu%netscape.com
a5b8b44aa3 dumpt in-memory toy db after reparsing folder
git-svn-id: svn://10.0.0.236/trunk@21031 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 22:38:57 +00:00
bienvenu%netscape.com
ceef1bfd5f get in-memory toy db working
git-svn-id: svn://10.0.0.236/trunk@21030 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 22:38:13 +00:00
hyatt%netscape.com
ba80bd96ca Fixed bug with inline scripts: wasn't truncating the text buffer.
git-svn-id: svn://10.0.0.236/trunk@21028 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 22:33:09 +00:00
hyatt%netscape.com
fd90c045c2 Implemented more DOM methods to get apprunner working with XUL files.
git-svn-id: svn://10.0.0.236/trunk@21027 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 22:32:40 +00:00
warren%netscape.com
c29487ef71 Consolidated DefaultResourceImpl with nsRDFResource.
git-svn-id: svn://10.0.0.236/trunk@21026 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 22:28:15 +00:00
cyeh%netscape.com
1d51efc7a2 step one in removing mozilla/layout/config: move special layout/config configuration
to default WIN32 rules.


git-svn-id: svn://10.0.0.236/trunk@21025 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 22:25:15 +00:00
brendan%netscape.com
b5dca37e01 More stub work checkpointing; expand tabs.
git-svn-id: svn://10.0.0.236/trunk@21024 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 22:13:32 +00:00
warren%netscape.com
39b1d08e3d Updated to use nsRDFResource (is this file obsolete though)?
git-svn-id: svn://10.0.0.236/trunk@21023 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 21:57:15 +00:00
terry%netscape.com
2f367f36a6 Put all the INPUT elements inside of the FORM element, OK?
git-svn-id: svn://10.0.0.236/trunk@21022 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 21:56:14 +00:00
alecf%netscape.com
ebdae2117a new generated javascript with constructor
git-svn-id: svn://10.0.0.236/trunk@21021 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 20:47:29 +00:00
buster%netscape.com
8f155a860a fix mac build for new nsCOMPtr code
git-svn-id: svn://10.0.0.236/trunk@21020 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 20:44:44 +00:00
waterson%netscape.com
c086534bbc Added RDF CIDs as #ifdef XP_MAC until somebody fixes dynamic self-registration for XPCOM DLLs.
git-svn-id: svn://10.0.0.236/trunk@21019 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 20:05:07 +00:00
ducarroz%netscape.com
1f157ad53d no comment
git-svn-id: svn://10.0.0.236/trunk@21018 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 19:59:37 +00:00
ducarroz%netscape.com
1bf8a9850f use nsIMsgSend to send a message
git-svn-id: svn://10.0.0.236/trunk@21017 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 19:57:48 +00:00
ducarroz%netscape.com
8aaa05a493 add lib raptorbase needed by nsMsgSend
git-svn-id: svn://10.0.0.236/trunk@21016 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 19:54:52 +00:00
ducarroz%netscape.com
e9888c15e1 did some work
git-svn-id: svn://10.0.0.236/trunk@21015 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 19:53:29 +00:00
ducarroz%netscape.com
cd5bf020f5 add new interface and member functions
git-svn-id: svn://10.0.0.236/trunk@21014 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 19:52:14 +00:00
ducarroz%netscape.com
69b296aa60 add more glue requested by nsMsgSend
git-svn-id: svn://10.0.0.236/trunk@21013 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 19:50:03 +00:00
ducarroz%netscape.com
8aebeb0c24 add nsMsgSend.cpp & nsMsgSendPart.cpp to the build
git-svn-id: svn://10.0.0.236/trunk@21012 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 19:49:23 +00:00
ducarroz%netscape.com
6e6e17bc43 clean up comment
git-svn-id: svn://10.0.0.236/trunk@21011 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 19:44:54 +00:00
ducarroz%netscape.com
5892636d05 add interface for set/get body
git-svn-id: svn://10.0.0.236/trunk@21010 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 19:43:26 +00:00
buster%netscape.com
f62022c72f Highlights:
updated to new nsCOMPtr usage
nsTextEditor::InsertBreak() implemented
  splits the text node at the caret (deletes any extended selection to force a collapsed selection.)
  inserts a <BR> which I assume we'll convert to a CR when we write to a text stream.
  undo and redo work, except for the bug noted below

More stuff:
interface cleanup
strategic debugging code added
delete selection txn sets the collapses the selection...this is just a placeholder, but I needed it for undo/redo of InsertBreak.
join and split now work for text nodes as well as interior nodes


git-svn-id: svn://10.0.0.236/trunk@21009 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 19:42:29 +00:00
ducarroz%netscape.com
858ef80269 add more glue requested by nsMsgSend
git-svn-id: svn://10.0.0.236/trunk@21008 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 19:42:02 +00:00
ducarroz%netscape.com
ae0105459f add export for nsIMsgSend.h & nsMsgSendFact.h
git-svn-id: svn://10.0.0.236/trunk@21007 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 19:41:12 +00:00
ducarroz%netscape.com
8472c11182 add factory for nsIMsgSend
git-svn-id: svn://10.0.0.236/trunk@21006 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 19:38:44 +00:00
hyatt%netscape.com
5efb69700e Finishing the broadcaster work (at least for now).
git-svn-id: svn://10.0.0.236/trunk@21005 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 19:35:53 +00:00
ducarroz%netscape.com
1bf050c768 add class id for nsMsgSend
git-svn-id: svn://10.0.0.236/trunk@21004 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 19:35:46 +00:00
ducarroz%netscape.com
45c0c4d8b7 add lib secfreenav32
git-svn-id: svn://10.0.0.236/trunk@21003 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 19:32:28 +00:00
ducarroz%netscape.com
1094bcf166 Initial checkin
git-svn-id: svn://10.0.0.236/trunk@21002 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 19:28:25 +00:00
kipp%netscape.com
04601e526f Fix mac build issue
git-svn-id: svn://10.0.0.236/trunk@21001 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 19:24:02 +00:00
hyatt%netscape.com
611f697372 More tweaks to the broadcasting stuff.
git-svn-id: svn://10.0.0.236/trunk@21000 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 18:58:05 +00:00
hyatt%netscape.com
0379cb730c Implemented brain-dead tree walk in GetElementByID.
git-svn-id: svn://10.0.0.236/trunk@20999 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 18:46:23 +00:00
locka%iol.ie
604377454a Update some API calls to handle new const tags
git-svn-id: svn://10.0.0.236/trunk@20998 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 18:45:59 +00:00
buster%netscape.com
2faefdcbe3 private interface for editor, used for common editing operations that
we don't want to expose publically.


git-svn-id: svn://10.0.0.236/trunk@20997 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 18:34:41 +00:00
hyatt%netscape.com
7df67aa0d4 Checking in code that does the broadcaster hookup.
git-svn-id: svn://10.0.0.236/trunk@20996 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 18:33:33 +00:00
nhotta%netscape.com
faf0820419 Added mCharset and mLocale to the class.
git-svn-id: svn://10.0.0.236/trunk@20995 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 18:32:33 +00:00
briano%netscape.com
ee7c2137c9 Automated update
git-svn-id: svn://10.0.0.236/trunk@20994 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 18:31:59 +00:00
kmcclusk%netscape.com
73a159c13d Added <INPUT type=file> to test_pr.html
git-svn-id: svn://10.0.0.236/trunk@20993 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 18:27:38 +00:00
slamm%netscape.com
3302284007 Source allmakefiles.sh instead of running in subshell. This way it can read the variables from configure.
git-svn-id: svn://10.0.0.236/trunk@20992 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 18:25:39 +00:00
harishd%netscape.com
09ea437c91 Added FontMetrics for regression testing.
Will be wired up later


git-svn-id: svn://10.0.0.236/trunk@20991 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 18:21:51 +00:00
warren%netscape.com
bf45e8cf21 Removed INCLUDE definition which was overriding my windows include path.
git-svn-id: svn://10.0.0.236/trunk@20990 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 18:21:40 +00:00
warren%netscape.com
84d3803b00 Added missing definition of nsFilePath::nsFilePath(const nsFilePath&)
git-svn-id: svn://10.0.0.236/trunk@20988 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 18:20:27 +00:00
kipp%netscape.com
12b2eb58ee Renamed calls to FE_SetTimeout to IL_SetTimeout to avoid dll linkage problem on unix
git-svn-id: svn://10.0.0.236/trunk@20987 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 18:14:58 +00:00
rods%netscape.com
f72ebb9ef9 Changed some of the sizing because the font is smaller
git-svn-id: svn://10.0.0.236/trunk@20986 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 18:06:19 +00:00
nhotta%netscape.com
8d4d0a279d nsILocale integration.
git-svn-id: svn://10.0.0.236/trunk@20985 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 18:00:29 +00:00
slamm%netscape.com
d3179f005f Add clean targets. Add windows equivalent targets.
git-svn-id: svn://10.0.0.236/trunk@20984 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 17:59:06 +00:00
nhotta%netscape.com
a807dd4853 Changed MIME encoder from csid base to charset name base.
git-svn-id: svn://10.0.0.236/trunk@20983 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 17:47:25 +00:00
briano%netscape.com
909eb56d25 Automated update
git-svn-id: svn://10.0.0.236/trunk@20982 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 17:45:38 +00:00
slamm%netscape.com
fbf1d1ac0a overhaul. Quit if conflicts during checkout. Make default target pull and build. Set up dependencies rules for configure. Get ready for menu config.
git-svn-id: svn://10.0.0.236/trunk@20981 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 17:36:29 +00:00
coop%netscape.com
6b258d8513 NOT YET PART OF SEAMONKEY:
* replaces reference to unistd.h by stdlib.h


git-svn-id: svn://10.0.0.236/trunk@20980 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 17:36:01 +00:00
slamm%netscape.com
0b3a71de02 Add option for -MMD dependencies.
git-svn-id: svn://10.0.0.236/trunk@20979 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 17:33:07 +00:00
troy%netscape.com
0698a49751 Changes for having OBJECT element render its contents if the OBJECT can't
be rendered


git-svn-id: svn://10.0.0.236/trunk@20978 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 17:02:27 +00:00
troy%netscape.com
ab4336334a Fix for bug #2899
git-svn-id: svn://10.0.0.236/trunk@20977 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 17:01:39 +00:00
rods%netscape.com
d9e8c7f71f Reduced the font size of the buttons
git-svn-id: svn://10.0.0.236/trunk@20976 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 16:55:23 +00:00
rods%netscape.com
fe6e22933b Fixed the termination of the app when a window closes
git-svn-id: svn://10.0.0.236/trunk@20975 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 16:49:43 +00:00
rods%netscape.com
1dbd117587 Added separators
git-svn-id: svn://10.0.0.236/trunk@20974 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 16:49:14 +00:00
rods%netscape.com
1566696e47 Added an ifdef to get exit working because the Register and unregister isn't working right
git-svn-id: svn://10.0.0.236/trunk@20973 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 16:18:17 +00:00
rods%netscape.com
8cae2f7eee Added extra experimental menu and items and added in an extra toolbar
git-svn-id: svn://10.0.0.236/trunk@20972 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 16:17:17 +00:00
rods%netscape.com
6fbb1d5d39 Made AppCoreManager a a Gecko service
git-svn-id: svn://10.0.0.236/trunk@20971 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 16:16:35 +00:00
rods%netscape.com
5db991bd3b Added some experienmental methods BrowserAppCore
for example: newWindow, exit, close, printPreview


git-svn-id: svn://10.0.0.236/trunk@20970 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 16:15:06 +00:00
rods%netscape.com
10e3849823 AppCores are now mantained in a nsVoidArray
git-svn-id: svn://10.0.0.236/trunk@20969 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 16:14:15 +00:00
terry%netscape.com
3cc8cf1a19 Put in better description for Embedding APIs.
git-svn-id: svn://10.0.0.236/trunk@20968 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 16:14:14 +00:00
rods%netscape.com
42420a8c97 Added temporary menu hook up as an experiement
git-svn-id: svn://10.0.0.236/trunk@20967 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 16:12:10 +00:00
rods%netscape.com
7fea89585a Added nsIMenuListener as the base class for nsIXULCommand
git-svn-id: svn://10.0.0.236/trunk@20966 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 16:11:13 +00:00
ftang%netscape.com
aad957545c change font preference code so it will pick the font setting for the defalt charset instead of always latin 1. Reviewed by peterl, kipp and troy
git-svn-id: svn://10.0.0.236/trunk@20965 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 15:52:02 +00:00
ftang%netscape.com
496eec0e01 add nsCategoryImp.cpp
git-svn-id: svn://10.0.0.236/trunk@20964 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 15:42:26 +00:00
ftang%netscape.com
ffd89aa4ee add nsCategory.cpp
git-svn-id: svn://10.0.0.236/trunk@20963 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 15:40:10 +00:00
ftang%netscape.com
95373911cb 1. fix the Prefix file problem for Debug target
2. Add nsCategoryImp.cpp


git-svn-id: svn://10.0.0.236/trunk@20962 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 15:37:28 +00:00
ftang%netscape.com
dd2351f9c4 add CID for lwbrk
git-svn-id: svn://10.0.0.236/trunk@20961 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 15:30:26 +00:00
ftang%netscape.com
d2cbcd36da add lwbrk
git-svn-id: svn://10.0.0.236/trunk@20960 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 15:27:16 +00:00
ftang%netscape.com
3f28058dec First Checked In.
git-svn-id: svn://10.0.0.236/trunk@20959 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 15:20:52 +00:00
ftang%netscape.com
54d5f999f2 add test cases 5-6 and reorg it
git-svn-id: svn://10.0.0.236/trunk@20958 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 15:17:08 +00:00
ftang%netscape.com
c503957b8f fix contextual bug
git-svn-id: svn://10.0.0.236/trunk@20957 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 15:16:23 +00:00
ftang%netscape.com
35b9eb376f add toc file
git-svn-id: svn://10.0.0.236/trunk@20956 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 15:15:39 +00:00
ebina%netscape.com
0059de3371 Update the MANIFEST file for the new headers that get exported.
git-svn-id: svn://10.0.0.236/trunk@20955 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 15:03:04 +00:00
ebina%netscape.com
fe935c1b65 added files: mozilla/network/cnvts/magic.cpp, mozilla/network/cnvts/cvplugin.cpp, mozilla/network/cnvts/nsNetConverterStream.cpp
git-svn-id: svn://10.0.0.236/trunk@20954 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 15:01:18 +00:00
ebina%netscape.com
e4d1c56e4a Build the new plugin converter files on linux.
git-svn-id: svn://10.0.0.236/trunk@20953 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 14:57:34 +00:00
briano%netscape.com
ab3f8c8b0e Automated update
git-svn-id: svn://10.0.0.236/trunk@20952 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 14:45:37 +00:00
ramiro%netscape.com
93a4389e73 Add support for insure.
git-svn-id: svn://10.0.0.236/trunk@20951 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 14:37:18 +00:00
rods%netscape.com
f135ae5edf Added methods for adding and removing nsMenuListeners
and


git-svn-id: svn://10.0.0.236/trunk@20950 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 14:34:33 +00:00
rods%netscape.com
89cdbe170a Changed GetItemAt to return a nsISupports instead of a nsIMenuItem, this is
because a menu can hold both other menus and menu items.
Implemented several more of the menu methods and added the listenr methods to the
menu item.


git-svn-id: svn://10.0.0.236/trunk@20949 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 14:31:26 +00:00
rods%netscape.com
d8a48cb718 Added the dispatch to menu listeners
git-svn-id: svn://10.0.0.236/trunk@20948 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 14:30:47 +00:00
rods%netscape.com
c188f38978 Added methods for adding and removing menu listeners
git-svn-id: svn://10.0.0.236/trunk@20947 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 14:29:51 +00:00
rods%netscape.com
55fd386c70 Changed GetItemAt to return a nsISupports instead of a nsIMenuItem, this is
because a menu can hold both other menus and menu items.


git-svn-id: svn://10.0.0.236/trunk@20946 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 14:29:15 +00:00
waterson%netscape.com
b69922c4d5 Added nsIDOMElementObserver interface, implemented OnSetAttribute(). Fixed so that a shared namespace manager is held.
git-svn-id: svn://10.0.0.236/trunk@20945 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 11:57:57 +00:00
waterson%netscape.com
0067870114 Implemented nsIDOMElement::GetAttribute().
git-svn-id: svn://10.0.0.236/trunk@20944 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 11:56:44 +00:00
waterson%netscape.com
bff20acf78 Added nsIDOMElementObserver interface to QI.
git-svn-id: svn://10.0.0.236/trunk@20943 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 11:56:15 +00:00
waterson%netscape.com
769c236738 Landed RDF_19990217_BRANCH. This includes a bunch of changes to get XUL scriptability up and running; also, nsRDFResourceElement and nsRDFGenericElement have been collapsed into a single class, and most of the state has been turned into attributes on the class.
git-svn-id: svn://10.0.0.236/trunk@20942 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 11:09:57 +00:00
jband%netscape.com
23bb05a6af more tests and type conversion fixes
git-svn-id: svn://10.0.0.236/trunk@20923 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 09:24:12 +00:00
grail%cafebabe.org
926e87ac79 DND compatibility issues.
git-svn-id: svn://10.0.0.236/trunk@20922 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 08:42:21 +00:00
waterson%netscape.com
e6531f8683 Modified generated files so that NS_InitFooClass() is accessable outside of JSDOM.DLL. a=vidur%netscape.com.
git-svn-id: svn://10.0.0.236/trunk@20919 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 08:33:27 +00:00
waterson%netscape.com
f8f837b4fc Made NS_InitFooClass() accessable outside of JSDOM.DLL.
git-svn-id: svn://10.0.0.236/trunk@20918 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 08:32:14 +00:00
grail%cafebabe.org
3530ea3ce6 Removed unbuildable targets out until they're ready to be built.
git-svn-id: svn://10.0.0.236/trunk@20917 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 08:29:18 +00:00
mscott%netscape.com
97de3ac691 Move some convience functions into nsNNTPProtocol. LoadUrl now takes a consumer.
git-svn-id: svn://10.0.0.236/trunk@20916 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 08:19:49 +00:00
leaf%mozilla.org
f8b4c0424a oh, yeah, there needs to be an $FE defined somewhere... could be gutted
i'm sure, but i'd like it to just work right now.


git-svn-id: svn://10.0.0.236/trunk@20915 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 08:18:52 +00:00
mscott%netscape.com
08ea3d78f7 LoadUrl now takes a nsISupports which could be the consumer display stream. Externally declared convience functions for building and runnning a news url (which can be used in our messenger demo). Added code to call webshell->LoadUrl after retrieving a news article and writing it to a temp file. This will cause the url to be displayed in the ui.
git-svn-id: svn://10.0.0.236/trunk@20914 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 08:18:07 +00:00
waterson%netscape.com
b2f701699d Create RDF_19990217_BRANCH from RDF_DOM_19990216_BRANCH to pick up nsCOMPtr changes before doing major whackage.
git-svn-id: svn://10.0.0.236/trunk@20911 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 08:17:56 +00:00
mscott%netscape.com
da55d1f653 LoadUrl now takes a nsISupports which could be the consumer display stream. Externally declared convience functions for building and runnning a news url (which can be used in our messenger demo).
git-svn-id: svn://10.0.0.236/trunk@20910 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 08:17:04 +00:00
mscott%netscape.com
cfee4c3f6e Add some debug code to figure out when the messenger dll gets loaded....
git-svn-id: svn://10.0.0.236/trunk@20909 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 08:14:46 +00:00
mscott%netscape.com
8d04b23b39 Fix some syntax problems (missing '/' at end of some statements). Added some dump debug code to figure out if our JS glue code is even getting called (which it isn't right now).
git-svn-id: svn://10.0.0.236/trunk@20908 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 08:13:56 +00:00
mscott%netscape.com
fa9393926d Add code to build and execute a news url....
git-svn-id: svn://10.0.0.236/trunk@20907 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 08:12:44 +00:00
mscott%netscape.com
a0d6ac02f9 NS_InitMsgAppCoreClass now takes a JSObject for the parent...
git-svn-id: svn://10.0.0.236/trunk@20906 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 08:11:54 +00:00
mscott%netscape.com
16a3f6f994 Add JSObject for the parent to the arguments NS_InitMsgAppCore.
git-svn-id: svn://10.0.0.236/trunk@20905 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 08:09:47 +00:00
jband%netscape.com
ce894be40d more tests and fixed to get the tests to run, clean up of iid stuff for compiling on Linux
git-svn-id: svn://10.0.0.236/trunk@20903 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 07:07:39 +00:00
jband%netscape.com
de84b5da7e get this code compiling in win32
git-svn-id: svn://10.0.0.236/trunk@20902 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 07:05:36 +00:00
leaf%mozilla.org
252f7704b1 Adding makefile.win changes for eric bina. we'll try using camelot to add
the mac project file support.


git-svn-id: svn://10.0.0.236/trunk@20901 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 06:55:48 +00:00
grail%cafebabe.org
584afa89a7 Changed getDropTarget() to match with getGrendelDropTarget()
git-svn-id: svn://10.0.0.236/trunk@20900 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 06:19:28 +00:00
danm%netscape.com
9d9fe04c5a fixing compilation problems with new nsCOMPtr. part of the carpool.
git-svn-id: svn://10.0.0.236/trunk@20899 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 06:18:11 +00:00
warren%netscape.com
a9eeb049e5 Added some RDF accessors for messages.
git-svn-id: svn://10.0.0.236/trunk@20898 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 06:15:13 +00:00
alecf%netscape.com
116d8cfc28 ignore generated files
git-svn-id: svn://10.0.0.236/trunk@20897 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 06:01:24 +00:00
alecf%netscape.com
d6179f96c1 add test directories back to build
git-svn-id: svn://10.0.0.236/trunk@20896 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 05:59:14 +00:00
alecf%netscape.com
5249a5dbda fix for egcs 1.0.x multiple inheritance bug
git-svn-id: svn://10.0.0.236/trunk@20895 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 05:59:01 +00:00
alecf%netscape.com
33c9decae9 fix egcs compiler bustage
git-svn-id: svn://10.0.0.236/trunk@20894 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 05:57:50 +00:00
brendan%netscape.com
db787f8261 Second checkpoint.
git-svn-id: svn://10.0.0.236/trunk@20893 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 05:56:30 +00:00
scc%netscape.com
8690ac32e8 changes for nsCOMPtr
git-svn-id: svn://10.0.0.236/trunk@20891 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 05:45:31 +00:00
warren%netscape.com
0d6b96d3aa Added sidebar xul
git-svn-id: svn://10.0.0.236/trunk@20890 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 05:34:15 +00:00
warren%netscape.com
c774475bf5 Scott Putterman's changes to make the folder pane work.
git-svn-id: svn://10.0.0.236/trunk@20889 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 05:32:08 +00:00
scc%netscape.com
66a0ecf87f changes for nsCOMPtr
git-svn-id: svn://10.0.0.236/trunk@20888 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 05:29:19 +00:00
grail%cafebabe.org
1bd2c84e16 Removed TestDataSource2 from the compilation list.
git-svn-id: svn://10.0.0.236/trunk@20887 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 05:27:47 +00:00
grail%cafebabe.org
5c95e6e025 Patches from Edwin to clarify method calls for inner methods.
git-svn-id: svn://10.0.0.236/trunk@20886 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 05:26:17 +00:00
scc%netscape.com
1c36e9851a added methods of |nsCOMPtr|
git-svn-id: svn://10.0.0.236/trunk@20884 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 05:00:24 +00:00
danm%netscape.com
d4b9511aad changed nsCOMPtr comparison operators to explicitly use get(). part of nsCOMPtr carpool.
git-svn-id: svn://10.0.0.236/trunk@20883 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 04:39:22 +00:00
scc%netscape.com
cc96f52e14 missing '&' found, returned to rightful home
git-svn-id: svn://10.0.0.236/trunk@20862 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 03:12:03 +00:00
mjudge%netscape.com
519bd126c3 fix for nsCOMPtr Carpool change
git-svn-id: svn://10.0.0.236/trunk@20860 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 02:56:26 +00:00
mcafee%netscape.com
368637b894 Adding do_QueryInterface() wrapper for nsCOMPtr carpool
git-svn-id: svn://10.0.0.236/trunk@20858 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 02:31:01 +00:00
mcafee%netscape.com
0c1cb525c7 Adding do_QueryInterface() wrapper for nsCOMPtr carpool
git-svn-id: svn://10.0.0.236/trunk@20857 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 02:23:56 +00:00
danm%netscape.com
1aaae0af52 activate exception handling for tests: TestCOMPtr uses them
git-svn-id: svn://10.0.0.236/trunk@20854 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 02:18:40 +00:00
sfraser%netscape.com
379713ae18 Do the addref in a better way; part of the nsCOMPtr carpool
git-svn-id: svn://10.0.0.236/trunk@20853 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 02:13:54 +00:00
sfraser%netscape.com
5e58b8a2af Part of the great nsCOMPtr carpool. Approved by those in power.
git-svn-id: svn://10.0.0.236/trunk@20852 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 02:08:01 +00:00
mcafee%netscape.com
8e4341cd89 Adding do_QueryInterface() wrapper for nsCOMPtr carpool. r=scc a=sar
git-svn-id: svn://10.0.0.236/trunk@20851 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 02:08:00 +00:00
alecf%netscape.com
9c5cc9a256 move function declaration
git-svn-id: svn://10.0.0.236/trunk@20850 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 02:03:23 +00:00
mjudge%netscape.com
935f3ddcd6 new modifications to nsCOMPtr to explicitly change to QueryInterface
git-svn-id: svn://10.0.0.236/trunk@20849 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 01:59:56 +00:00
mjudge%netscape.com
1f5055f815 checking for nsCOMPtr change
git-svn-id: svn://10.0.0.236/trunk@20848 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 01:59:01 +00:00
scc%netscape.com
4e937fc0aa updated to new interface for nsCOMPtr
git-svn-id: svn://10.0.0.236/trunk@20847 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 01:58:25 +00:00
scc%netscape.com
4f503f2e63 First Checked In.
git-svn-id: svn://10.0.0.236/trunk@20846 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 01:57:07 +00:00
alecf%netscape.com
8162b7aeb8 add InitMsgAppCoreclass to exported header
git-svn-id: svn://10.0.0.236/trunk@20845 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 01:56:45 +00:00
mcafee%netscape.com
4cc240caf4 Adding nsCOMPtr.cpp for nsCOMPtr carpool
git-svn-id: svn://10.0.0.236/trunk@20844 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 01:55:00 +00:00
ebina%netscape.com
bb4a16eaef Use PR_TRUE and PR_FALSE instead of True and False.
git-svn-id: svn://10.0.0.236/trunk@20841 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 01:27:10 +00:00
kmcclusk%netscape.com
b932514d5e added #ifdef XP_PC in nsSelectControlFrame::GetProperty to fix MAC crash
on www.city.net


git-svn-id: svn://10.0.0.236/trunk@20840 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 01:24:16 +00:00
brendan%netscape.com
166c8a5abe Checkpoint xpidl -m stub work.
git-svn-id: svn://10.0.0.236/trunk@20839 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 01:17:52 +00:00
bienvenu%netscape.com
28d559cdf5 call base class line handler to get parsing to work
git-svn-id: svn://10.0.0.236/trunk@20838 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 00:36:07 +00:00
bienvenu%netscape.com
6035d614ae fix memory crunch freeing memory I don't own
git-svn-id: svn://10.0.0.236/trunk@20837 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 00:35:25 +00:00
briano%netscape.com
5c7f970359 Fixed Kipp's hack to allow CPP_PROG_LINK to be overridden when necessary.
git-svn-id: svn://10.0.0.236/trunk@20836 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 00:32:17 +00:00
bienvenu%netscape.com
c77b725d99 get this to compile for debug me
git-svn-id: svn://10.0.0.236/trunk@20834 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 00:10:48 +00:00
bienvenu%netscape.com
12a50ad32b make pop3 protocol use mailbox parse and line buffer
git-svn-id: svn://10.0.0.236/trunk@20833 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 00:09:22 +00:00
alecf%netscape.com
a835c68f8e add commands for loading urls through the MsgAppCore
git-svn-id: svn://10.0.0.236/trunk@20832 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 00:09:01 +00:00
alecf%netscape.com
26600ad5c3 Add new OpenURL method and reflect it into JavaScript
git-svn-id: svn://10.0.0.236/trunk@20831 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 23:52:22 +00:00
alecf%netscape.com
ed4bbfbcbe fix for egcs compiler bugs
git-svn-id: svn://10.0.0.236/trunk@20830 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 23:10:46 +00:00
terry%netscape.com
8e221c4fa3 Fixed up NGLayout components (see bug 3139).
git-svn-id: svn://10.0.0.236/trunk@20829 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 23:04:08 +00:00
terry%netscape.com
abfcd4652c Added five new components to Mozilla and to MailNews (see bug 3155).
git-svn-id: svn://10.0.0.236/trunk@20826 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 22:27:30 +00:00
erik%netscape.com
0e5165eb02 temporarily disable the string resource test until the nsIProperties
crash(?) is resolved


git-svn-id: svn://10.0.0.236/trunk@20825 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 22:09:43 +00:00
alecf%netscape.com
d972ef6fb2 export nsMsgLineBuffer.h
git-svn-id: svn://10.0.0.236/trunk@20824 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 20:08:06 +00:00
michaelp%netscape.com
d1f2203c7c added unknown content quality. fixed potential crash because of bug in timer
code. now uses rootscrollable for all scrollable view notifications.


git-svn-id: svn://10.0.0.236/trunk@20823 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 19:57:45 +00:00
waterson%netscape.com
462489fc94 Removed rdfDebug and domDebug from opt build. These were included by mistake.
git-svn-id: svn://10.0.0.236/trunk@20820 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 19:56:18 +00:00
dp%netscape.com
1215f65f26 Fixed dll not being unloaded if registrations filed. Also, returning more appropriate error messages
git-svn-id: svn://10.0.0.236/trunk@20819 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 19:34:10 +00:00
briano%netscape.com
101bac8b27 Automated update
git-svn-id: svn://10.0.0.236/trunk@20818 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 19:31:43 +00:00
waterson%netscape.com
9debf69f1f Landed RDFDOM_19990215_BRANCH. Began implementing DOM-to-RDF functionality.
git-svn-id: svn://10.0.0.236/trunk@20817 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 19:30:04 +00:00
slamm%netscape.com
0fc815c181 Move makefile list into allmakefiles.sh
git-svn-id: svn://10.0.0.236/trunk@20816 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 19:29:21 +00:00
slamm%netscape.com
99198fec39 add intl/lwbrk directories
git-svn-id: svn://10.0.0.236/trunk@20815 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 19:28:33 +00:00
ftang%netscape.com
29f7619162 fix the export problem
git-svn-id: svn://10.0.0.236/trunk@20814 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 19:24:09 +00:00
briano%netscape.com
5f7c1dc839 Automated update
git-svn-id: svn://10.0.0.236/trunk@20811 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 19:15:38 +00:00
sar%netscape.com
af5c10b815 add allmakefile.sh per a request by slamm. This file complements configure.in --sarah
git-svn-id: svn://10.0.0.236/trunk@20810 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 19:10:31 +00:00
nhotta%netscape.com
5d29924ceb Bug fix, changed NSILOCALE_TIME to NSILOCALE_COLLATE.
git-svn-id: svn://10.0.0.236/trunk@20809 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 19:09:15 +00:00
rods%netscape.com
5b0507d693 Changed the registered name AppCoresManager to XPAppCoresManager
git-svn-id: svn://10.0.0.236/trunk@20808 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 19:08:56 +00:00
nhotta%netscape.com
ba9f84445b nsILocale integration.
git-svn-id: svn://10.0.0.236/trunk@20807 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 19:05:10 +00:00
ftang%netscape.com
f6dd72944f add intl/lwbrk directories
git-svn-id: svn://10.0.0.236/trunk@20806 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 19:04:05 +00:00
ftang%netscape.com
0ea1b31dd3 add UNIX build
git-svn-id: svn://10.0.0.236/trunk@20805 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 19:02:26 +00:00
ftang%netscape.com
ad361b0034 add UNIX makefile
git-svn-id: svn://10.0.0.236/trunk@20804 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 19:01:40 +00:00
kmcclusk%netscape.com
6782e965de Added code to get the selected item from the content model during Paint.
Factored code to paint option elements. Listboxes, single+multiselect and
combo boxes now print their state correctly.


git-svn-id: svn://10.0.0.236/trunk@20803 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 18:57:44 +00:00
guha%netscape.com
97d456b38c Some opendir related fixes
git-svn-id: svn://10.0.0.236/trunk@20802 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 18:54:18 +00:00
coop%netscape.com
2e906139b0 NOT YET PART OF SEAMONKEY:
* eliminated compiler warnings on Linux
* added extra error checking for file manipulation in SimpleTypeLib and xpt_dump
* removed erroneous comment from xpt_struct.h


git-svn-id: svn://10.0.0.236/trunk@20801 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 18:41:30 +00:00
nhotta%netscape.com
80dfbdbaea Added charset conversion wrappers.
git-svn-id: svn://10.0.0.236/trunk@20800 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 18:40:08 +00:00
nhotta%netscape.com
00b6cd61a9 Initial check in.
git-svn-id: svn://10.0.0.236/trunk@20799 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 18:37:10 +00:00
ftang%netscape.com
ee4593df3e change the test code to use service manager
git-svn-id: svn://10.0.0.236/trunk@20798 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 18:37:01 +00:00
ftang%netscape.com
2b67a2ec3f add comment, remove InitUnicodeDecoder method
git-svn-id: svn://10.0.0.236/trunk@20797 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 18:32:02 +00:00
briano%netscape.com
e63ce482f2 Automated update
git-svn-id: svn://10.0.0.236/trunk@20796 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 18:31:20 +00:00
slamm%netscape.com
f59cd2ba61 Move defines from Makefile control to autoconf control.
git-svn-id: svn://10.0.0.236/trunk@20795 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 18:29:55 +00:00
slamm%netscape.com
ab37511cae Separate the list of makefiles into a new file.
git-svn-id: svn://10.0.0.236/trunk@20794 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 18:29:51 +00:00
slamm%netscape.com
f1039dd4e2 Move defines from CFLAGS to DEFINES.
git-svn-id: svn://10.0.0.236/trunk@20793 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 18:29:47 +00:00
ftang%netscape.com
719c61207f first check in
git-svn-id: svn://10.0.0.236/trunk@20792 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 18:13:35 +00:00
alecf%netscape.com
fe0412f001 remove pop3/mailbox tests from unix build until unix makefiles are written
git-svn-id: svn://10.0.0.236/trunk@20791 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 18:12:52 +00:00
ftang%netscape.com
2d74859e05 check in new changes
git-svn-id: svn://10.0.0.236/trunk@20790 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 18:11:14 +00:00
briano%netscape.com
b1121113f1 Automated update
git-svn-id: svn://10.0.0.236/trunk@20789 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 18:00:39 +00:00
alecf%netscape.com
ee9600b772 BSD/OS 4.0 patch, thanks to bert_triehuis@nl.compuware.com
git-svn-id: svn://10.0.0.236/trunk@20788 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 17:46:33 +00:00
terry%netscape.com
60d84be151 Add info about MysqlPerl stuff.
git-svn-id: svn://10.0.0.236/trunk@20787 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 17:41:42 +00:00
pinkerton%netscape.com
732551a79a no longer exports nsIToolbarItem because this interface is obsolete.
git-svn-id: svn://10.0.0.236/trunk@20786 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 17:37:40 +00:00
pinkerton%netscape.com
243fa7c315 No longer exports nsIToolbarItem because this interface is obsolete.
git-svn-id: svn://10.0.0.236/trunk@20785 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 17:37:00 +00:00
pinkerton%netscape.com
4374557e9f no longer implements nsIToolbarItem because this interface is obsolete.
git-svn-id: svn://10.0.0.236/trunk@20784 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 17:35:53 +00:00
pinkerton%netscape.com
8ef0996ea9 remove nsJSAppCores and add nsJSAppCoresManager.
git-svn-id: svn://10.0.0.236/trunk@20783 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 16:48:30 +00:00
rods%netscape.com
5eed8ff9e0 Rename AppCores.idl to AppCoresManager.idl
and renamed all the CIDs to uppercase


git-svn-id: svn://10.0.0.236/trunk@20782 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 16:46:19 +00:00
jfrancis%netscape.com
794f3762f2 new content subtree iterator
git-svn-id: svn://10.0.0.236/trunk@20781 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 15:48:13 +00:00
jfrancis%netscape.com
01d4e109e7 registering content iterators
git-svn-id: svn://10.0.0.236/trunk@20780 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 15:47:54 +00:00
jfrancis%netscape.com
4edfdaf9b5 replaced IsNodeInsideRange() with CompareNodeToRange()
git-svn-id: svn://10.0.0.236/trunk@20779 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 15:46:37 +00:00
jfrancis%netscape.com
f17a23ddd9 Replaced IsNodeInsideRange() with CompareNodeToRange() and also removed forward class declarations to make VC5 happy
git-svn-id: svn://10.0.0.236/trunk@20778 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 15:43:28 +00:00
rickg%netscape.com
2e468226f6 fixed bad define
git-svn-id: svn://10.0.0.236/trunk@20777 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 08:14:48 +00:00
rickg%netscape.com
3d297b0ba4 fixed bad define
git-svn-id: svn://10.0.0.236/trunk@20776 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 08:11:21 +00:00
rickg%netscape.com
781f6ccb10 added v-dtor to taghander
git-svn-id: svn://10.0.0.236/trunk@20775 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 08:07:20 +00:00
rickg%netscape.com
d2122ed2b0 fixed backward define
git-svn-id: svn://10.0.0.236/trunk@20774 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 08:04:01 +00:00
hyatt%netscape.com
cf06c5d0e9 Added the sync-up when the broadcast listener first gets added.
git-svn-id: svn://10.0.0.236/trunk@20773 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 07:57:55 +00:00
rickg%netscape.com
d444ccf989 fixed a wad of little bugs and added regression test
git-svn-id: svn://10.0.0.236/trunk@20772 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 07:38:27 +00:00
rickg%netscape.com
334907990d allow plain text file to be handled by HTML document
git-svn-id: svn://10.0.0.236/trunk@20771 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 07:37:53 +00:00
rickg%netscape.com
8cb5d3e503 removed bug from deque, and added replaceChar call to string
git-svn-id: svn://10.0.0.236/trunk@20767 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 06:47:00 +00:00
jband%netscape.com
86dcf85db0 NOT YET PART Of SEAMONKEY - fixes for conversions, added 'load' to test program to breakout js code into its own file, added support for global object being a wrapped native, fixed parent interface support, change makefiles for JS_THREADSAFE, add missing dropProperty support to my Ops, added more tests
git-svn-id: svn://10.0.0.236/trunk@20766 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 06:29:29 +00:00
brendan%netscape.com
b03b95e2a4 prep for -m stub; misc code cleanups.
git-svn-id: svn://10.0.0.236/trunk@20765 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 05:10:40 +00:00
troy%netscape.com
e0e1a0be11 Added code to set/get the view manager's root scrollable view
git-svn-id: svn://10.0.0.236/trunk@20764 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 04:41:15 +00:00
troy%netscape.com
bb010a6114 Minor clean up
git-svn-id: svn://10.0.0.236/trunk@20761 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 04:07:27 +00:00
shaver%netscape.com
7ac3f074af make includes work right; support `-\' as stdin for input file
git-svn-id: svn://10.0.0.236/trunk@20760 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 03:47:24 +00:00
mjudge%netscape.com
549c1927f3 fixing some things for selection to allow keyboard navigation. not hooked up to caret yet. also removed some not used calls in nsFrame for the "old" selection model.
git-svn-id: svn://10.0.0.236/trunk@20759 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 02:42:08 +00:00
rickg%netscape.com
fcae472e5d added mtbf to tools directory
git-svn-id: svn://10.0.0.236/trunk@20758 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 02:41:05 +00:00
michaelp%netscape.com
2c3dc317a4 turned off timers when our damage count goes to zero.
git-svn-id: svn://10.0.0.236/trunk@20757 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 02:25:20 +00:00
mcafee%netscape.com
96d9fe0464 Ignore generated files
git-svn-id: svn://10.0.0.236/trunk@20756 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 01:50:51 +00:00
mcafee%netscape.com
193cea7624 Fixing libreg breakage
git-svn-id: svn://10.0.0.236/trunk@20755 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 01:40:50 +00:00
mcafee%netscape.com
3261298090 More portable makefile, fixing -lreg breakage.
git-svn-id: svn://10.0.0.236/trunk@20754 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 01:35:23 +00:00
nisheeth%netscape.com
865f26a97a Test file for changing attributes on the PRE tag via the DOM.
git-svn-id: svn://10.0.0.236/trunk@20752 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 01:02:21 +00:00
michaelp%netscape.com
1b2aa59d45 added Get/SetScrollableRoot() to nsIViewManager. fixed bug where maximizing
window would cause junk to be shown below/to the right of the real content
if the document was scrolled towards bottom/right. fixed flashing scrollbar
problem. made quality control work again.


git-svn-id: svn://10.0.0.236/trunk@20751 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 00:57:06 +00:00
michaelp%netscape.com
07e545d59e turned on quality control again, but until someone who better understands
thr browser window better has a look at this, it won't work across
frame sets.


git-svn-id: svn://10.0.0.236/trunk@20750 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 00:55:15 +00:00
michaelp%netscape.com
356a0ea5bd all scrollbar recomputation is now the responsibility of the owner of the
scrolled view.


git-svn-id: svn://10.0.0.236/trunk@20749 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 00:53:15 +00:00
michaelp%netscape.com
e6e101dfd1 made nsRenderingContextWin::GetClipRegion() work.
git-svn-id: svn://10.0.0.236/trunk@20748 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 00:50:32 +00:00
nisheeth%netscape.com
3b81ed11ce Test for changing attributes on the DIV, P, and HEADING tags via the DOM.
git-svn-id: svn://10.0.0.236/trunk@20747 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-16 00:24:29 +00:00
nisheeth%netscape.com
cb1a27b8f7 Test file for changing attributes on the FONT and BASEFONT elements using the
DOM.


git-svn-id: svn://10.0.0.236/trunk@20744 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-15 23:51:32 +00:00
nisheeth%netscape.com
cd8aba491a Added style hints for DOM attribute changes to the FONT and BASEFONT content objects.
git-svn-id: svn://10.0.0.236/trunk@20743 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-15 23:48:09 +00:00
waterson%netscape.com
80bf7397a5 Got rid of #include's, too.
git-svn-id: svn://10.0.0.236/trunk@20733 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-15 19:56:47 +00:00
waterson%netscape.com
6d9e8212a0 Got rid of nsIRDFDocument: we never use it here anyway.
git-svn-id: svn://10.0.0.236/trunk@20732 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-15 19:53:55 +00:00
beard%netscape.com
334061690b Synced with current stream interfaces.
git-svn-id: svn://10.0.0.236/trunk@20731 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-15 18:29:06 +00:00
buster%netscape.com
0bda0d910f minor fixes and lots of comments
git-svn-id: svn://10.0.0.236/trunk@20730 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-15 18:25:30 +00:00
buster%netscape.com
72d2391591 merges text insertions again, based on new aggregate insert txn
git-svn-id: svn://10.0.0.236/trunk@20729 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-15 18:24:58 +00:00
buster%netscape.com
b12b27a6f0 removed unnecessary parent param from DeleteNode
git-svn-id: svn://10.0.0.236/trunk@20728 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-15 18:22:58 +00:00
buster%netscape.com
00c25964ec changed some forward class declarations to #include of the class
declaration.  These classes are used in nsCOMPtr's, and
VC 5.0 needs the full class declaration to compile.


git-svn-id: svn://10.0.0.236/trunk@20727 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-15 16:26:04 +00:00
cyeh%netscape.com
32f9067d0e complete botched file rename attempted by danm.
git-svn-id: svn://10.0.0.236/trunk@20726 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-15 15:31:38 +00:00
danm%netscape.com
b42b001008 renaming. cursed mixed-case filenames.
git-svn-id: svn://10.0.0.236/trunk@20725 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-15 07:15:48 +00:00
nisheeth%netscape.com
e3f2944049 - Changed name of getter function for style hints to GetStyleHintForAttributeChange().
- Plugged in style hint for changes to the <HR NOSHADE> attribute.


git-svn-id: svn://10.0.0.236/trunk@20724 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-15 06:42:44 +00:00
danm%netscape.com
2cf50fdc88 added beginnings of toolkit dialog factory
git-svn-id: svn://10.0.0.236/trunk@20723 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-15 05:38:15 +00:00
danm%netscape.com
19dabdfcc0 matching Troy's recent checkins adding const to some method parameters. Didn't compile for me using VC6 until I made these changes. They seem harmless enough.
git-svn-id: svn://10.0.0.236/trunk@20722 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-15 05:21:53 +00:00
bienvenu%netscape.com
c4a5b54c35 add Reset method for byte array
git-svn-id: svn://10.0.0.236/trunk@20721 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-15 03:08:04 +00:00
bienvenu%netscape.com
f41e196da3 add stubs for mdb
git-svn-id: svn://10.0.0.236/trunk@20720 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-15 03:06:55 +00:00
bienvenu%netscape.com
52be604435 change default mailbox path
git-svn-id: svn://10.0.0.236/trunk@20719 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-15 03:05:20 +00:00
pavlov%pavlov.net
8f032bc5b5 apply patch from Tomi Leppikangas <Tomi.Leppikangas@oulu.fi> to fix
nsTextHelper::SetText()


git-svn-id: svn://10.0.0.236/trunk@20718 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-15 01:54:08 +00:00
nisheeth%netscape.com
8b0af6d00b Test for DOM attribute changes on the HR element.
git-svn-id: svn://10.0.0.236/trunk@20717 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-15 01:50:01 +00:00
bienvenu%netscape.com
1c43108e78 we need rdfbase now
git-svn-id: svn://10.0.0.236/trunk@20716 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-14 22:34:47 +00:00
bienvenu%netscape.com
b6d1e1997d get rid of duplicate m_mailDB in derived class
git-svn-id: svn://10.0.0.236/trunk@20715 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-14 22:34:00 +00:00
bienvenu%netscape.com
483f2f6e2e more work to get mailbox parsing working
git-svn-id: svn://10.0.0.236/trunk@20714 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-14 22:33:19 +00:00
bienvenu%netscape.com
a5f5eca604 hack up to get rid of pure virtual classes and virtual routines so I can link
git-svn-id: svn://10.0.0.236/trunk@20713 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-14 22:31:28 +00:00
bienvenu%netscape.com
132eb72d57 override IID method
git-svn-id: svn://10.0.0.236/trunk@20712 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-14 19:45:41 +00:00
bienvenu%netscape.com
cbb92c1430 override IID method
git-svn-id: svn://10.0.0.236/trunk@20711 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-14 19:31:54 +00:00
bienvenu%netscape.com
246b4ad1aa override IID method
git-svn-id: svn://10.0.0.236/trunk@20710 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-14 19:16:49 +00:00
troy%netscape.com
f89f085421 Fixed some more memory leaks
git-svn-id: svn://10.0.0.236/trunk@20709 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-14 18:02:38 +00:00
locka%iol.ie
c0b2628626 Simple plugin test file
git-svn-id: svn://10.0.0.236/trunk@20708 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-14 13:29:37 +00:00
locka%iol.ie
cce0fb751a Added object implementing IPropertyBag
git-svn-id: svn://10.0.0.236/trunk@20707 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-14 13:26:57 +00:00
locka%iol.ie
b5bf0ccfd2 Plugin .def file
git-svn-id: svn://10.0.0.236/trunk@20706 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-14 13:25:52 +00:00
locka%iol.ie
702edc0ecd Added plugin headers
git-svn-id: svn://10.0.0.236/trunk@20705 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-14 13:24:48 +00:00
locka%iol.ie
e56aadc0cf no message
git-svn-id: svn://10.0.0.236/trunk@20704 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-14 13:24:11 +00:00
locka%iol.ie
b4e7db6808 Change version info to be plugin compatible
git-svn-id: svn://10.0.0.236/trunk@20703 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-14 13:24:03 +00:00
locka%iol.ie
5238153785 Renamed MozillaControl as npmozctl
git-svn-id: svn://10.0.0.236/trunk@20702 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-14 13:23:18 +00:00
locka%iol.ie
a6d1f68128 Moved PropertyList out into its own header
git-svn-id: svn://10.0.0.236/trunk@20701 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-14 13:22:29 +00:00
locka%iol.ie
5a2c3dcaaa Added conditional plugin compilation support
git-svn-id: svn://10.0.0.236/trunk@20700 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-14 13:21:44 +00:00
locka%iol.ie
175570e428 Basic impl of a plugin
git-svn-id: svn://10.0.0.236/trunk@20699 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-14 13:21:05 +00:00
locka%iol.ie
08c4894406 Simple inplace frame object implementation
git-svn-id: svn://10.0.0.236/trunk@20698 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-14 13:20:35 +00:00
locka%iol.ie
ddbf643c52 Added support for IPersistPropertyBag and other things
git-svn-id: svn://10.0.0.236/trunk@20697 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-14 13:20:07 +00:00
locka%iol.ie
b8fd7c2564 Added some extra macros
git-svn-id: svn://10.0.0.236/trunk@20696 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-14 13:19:08 +00:00
locka%iol.ie
74455c95c4 Updated to reflect changes in plugin api
git-svn-id: svn://10.0.0.236/trunk@20695 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-14 13:18:42 +00:00
jfrancis%netscape.com
0890c9fce8 I wish VC++ would give me a @#$*&^#! break.
git-svn-id: svn://10.0.0.236/trunk@20694 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-14 12:51:29 +00:00
jfrancis%netscape.com
c461188a76 some (NULL != nsCOMPtr<Foo>'s) snuck thru - VC++ no like. I don't like 'em either.
git-svn-id: svn://10.0.0.236/trunk@20693 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-14 11:14:55 +00:00
jfrancis%netscape.com
dd3bd0cca0 VC++ not hip to mixing goto's with automatics that have contructor/destructors.
git-svn-id: svn://10.0.0.236/trunk@20692 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-14 10:18:20 +00:00
jfrancis%netscape.com
665de0a76a ground work for new content subtree iterator
git-svn-id: svn://10.0.0.236/trunk@20691 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-14 09:15:13 +00:00
jfrancis%netscape.com
209384aa9e nsCOMPtr conversion plus some new utility functions
git-svn-id: svn://10.0.0.236/trunk@20690 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-14 09:14:50 +00:00
leaf%mozilla.org
c46c9dde47 Adding the badly hacked up, barely working tinderbox scripts.
(build-moz-smoke.pl is ok, build-grendel.pl needs more work)


git-svn-id: svn://10.0.0.236/trunk@20689 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-14 07:15:44 +00:00
jfrancis%netscape.com
dd054b4642 grabbed an id for nsContentSubtreeIterator_CID
git-svn-id: svn://10.0.0.236/trunk@20688 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-14 06:47:43 +00:00
troy%netscape.com
4ff873c623 Made some things const
git-svn-id: svn://10.0.0.236/trunk@20687 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-14 06:38:24 +00:00
troy%netscape.com
fa56f043ef Added const to definition
git-svn-id: svn://10.0.0.236/trunk@20686 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-14 06:37:24 +00:00
troy%netscape.com
6dd2f2c957 Fixed a bunch of "const" problems
git-svn-id: svn://10.0.0.236/trunk@20685 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-14 06:35:01 +00:00
196 changed files with 5237 additions and 55252 deletions

View File

@@ -1,305 +0,0 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "License"); you may not use this file except in
* compliance with the License. You may obtain a copy of the License at
* http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS IS"
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
* the License for the specific language governing rights and limitations
* under the License.
*
* The Original Code is Mozilla Communicator client code.
*
* The Initial Developer of the Original Code is Netscape Communications
* Corporation. Portions created by Netscape are Copyright (C) 1998
* Netscape Communications Corporation. All Rights Reserved.
*/
/*
Helper class to implement the nsIDOMNodeList interface.
XXX It's probably wrong in some sense, as it uses the "naked"
content interface to look for kids. (I assume in general this is
bad because there may be pseudo-elements created for presentation
that aren't visible to the DOM.)
*/
#include "nsDOMCID.h"
#include "nsIDOMNode.h"
#include "nsIDOMHTMLCollection.h"
#include "nsIDOMScriptObjectFactory.h"
#include "nsIScriptGlobalObject.h"
#include "nsIServiceManager.h"
#include "nsISupportsArray.h"
#include "nsRDFDOMNodeList.h"
////////////////////////////////////////////////////////////////////////
// GUID definitions
static NS_DEFINE_IID(kIDOMNodeIID, NS_IDOMNODE_IID);
static NS_DEFINE_IID(kIDOMNodeListIID, NS_IDOMNODELIST_IID);
static NS_DEFINE_IID(kIDOMScriptObjectFactoryIID, NS_IDOM_SCRIPT_OBJECT_FACTORY_IID);
static NS_DEFINE_CID(kDOMScriptObjectFactoryCID, NS_DOM_SCRIPT_OBJECT_FACTORY_CID);
////////////////////////////////////////////////////////////////////////
//
class RDFHTMLCollectionImpl : public nsIDOMHTMLCollection
{
private:
nsRDFDOMNodeList* mOuter;
public:
RDFHTMLCollectionImpl(nsRDFDOMNodeList* aOuter);
virtual ~RDFHTMLCollectionImpl();
// nsISupports interface
NS_IMETHOD_(nsrefcnt) AddRef(void);
NS_IMETHOD_(nsrefcnt) Release(void);
NS_IMETHOD QueryInterface(REFNSIID aIID, void** aResult);
// nsIDOMHTMLCollection interface
NS_DECL_IDOMHTMLCOLLECTION
};
RDFHTMLCollectionImpl::RDFHTMLCollectionImpl(nsRDFDOMNodeList* aOuter)
: mOuter(aOuter)
{
}
RDFHTMLCollectionImpl::~RDFHTMLCollectionImpl(void)
{
}
NS_IMETHODIMP_(nsrefcnt)
RDFHTMLCollectionImpl::AddRef(void)
{
return mOuter->AddRef();
}
NS_IMETHODIMP_(nsrefcnt)
RDFHTMLCollectionImpl::Release(void)
{
return mOuter->Release();
}
NS_IMETHODIMP
RDFHTMLCollectionImpl::QueryInterface(REFNSIID aIID, void** aResult)
{
NS_PRECONDITION(aResult != nsnull, "null ptr");
if (! aResult)
return NS_ERROR_NULL_POINTER;
if (aIID.Equals(nsIDOMHTMLCollection::IID())) {
*aResult = NS_STATIC_CAST(nsIDOMHTMLCollection*, this);
NS_ADDREF(this);
return NS_OK;
}
else {
return mOuter->QueryInterface(aIID, aResult);
}
}
NS_IMETHODIMP
RDFHTMLCollectionImpl::GetLength(PRUint32* aLength)
{
return mOuter->GetLength(aLength);
}
NS_IMETHODIMP
RDFHTMLCollectionImpl::Item(PRUint32 aIndex, nsIDOMNode** aReturn)
{
return mOuter->Item(aIndex, aReturn);
}
NS_IMETHODIMP
RDFHTMLCollectionImpl::NamedItem(const nsString& aName, nsIDOMNode** aReturn)
{
NS_NOTYETIMPLEMENTED("write me!");
return NS_ERROR_NOT_IMPLEMENTED;
}
////////////////////////////////////////////////////////////////////////
// ctors & dtors
nsRDFDOMNodeList::nsRDFDOMNodeList(void)
: mInner(nsnull),
mElements(nsnull),
mScriptObject(nsnull)
{
NS_INIT_REFCNT();
}
nsRDFDOMNodeList::~nsRDFDOMNodeList(void)
{
NS_IF_RELEASE(mElements);
delete mInner;
}
nsresult
nsRDFDOMNodeList::Create(nsRDFDOMNodeList** aResult)
{
NS_PRECONDITION(aResult != nsnull, "null ptr");
if (! aResult)
return NS_ERROR_NULL_POINTER;
nsRDFDOMNodeList* list = new nsRDFDOMNodeList();
if (! list)
return NS_ERROR_OUT_OF_MEMORY;
nsresult rv;
if (NS_FAILED(rv = list->Init())) {
delete list;
return rv;
}
NS_ADDREF(list);
*aResult = list;
return NS_OK;
}
////////////////////////////////////////////////////////////////////////
// nsISupports interface
NS_IMPL_ADDREF(nsRDFDOMNodeList);
NS_IMPL_RELEASE(nsRDFDOMNodeList);
nsresult
nsRDFDOMNodeList::QueryInterface(REFNSIID aIID, void** aResult)
{
static NS_DEFINE_IID(kISupportsIID, NS_ISUPPORTS_IID);
static NS_DEFINE_IID(kIScriptObjectOwnerIID, NS_ISCRIPTOBJECTOWNER_IID);
NS_PRECONDITION(aResult != nsnull, "null ptr");
if (! aResult)
return NS_ERROR_NULL_POINTER;
if (aIID.Equals(nsIDOMNodeList::IID()) ||
aIID.Equals(kISupportsIID)) {
*aResult = NS_STATIC_CAST(nsIDOMNodeList*, this);
NS_ADDREF(this);
return NS_OK;
}
else if (aIID.Equals(kIScriptObjectOwnerIID)) {
*aResult = NS_STATIC_CAST(nsIScriptObjectOwner*, this);
NS_ADDREF(this);
return NS_OK;
}
else if (aIID.Equals(nsIDOMHTMLCollection::IID())) {
// Aggregate this interface
if (! mInner) {
if (! (mInner = new RDFHTMLCollectionImpl(this)))
return NS_ERROR_OUT_OF_MEMORY;
}
return mInner->QueryInterface(aIID, aResult);
}
return NS_NOINTERFACE;
}
////////////////////////////////////////////////////////////////////////
// nsIDOMNodeList interface
NS_IMETHODIMP
nsRDFDOMNodeList::GetLength(PRUint32* aLength)
{
NS_ASSERTION(aLength != nsnull, "null ptr");
if (! aLength)
return NS_ERROR_NULL_POINTER;
*aLength = mElements->Count();
return NS_OK;
}
NS_IMETHODIMP
nsRDFDOMNodeList::Item(PRUint32 aIndex, nsIDOMNode** aReturn)
{
NS_PRECONDITION(aReturn != nsnull, "null ptr");
if (! aReturn)
return NS_ERROR_NULL_POINTER;
NS_PRECONDITION(aIndex < (PRUint32) mElements->Count(), "invalid arg");
if (aIndex >= (PRUint32) mElements->Count())
return NS_ERROR_INVALID_ARG;
// Cast is okay because we're in a closed system.
*aReturn = (nsIDOMNode*) mElements->ElementAt(aIndex);
return NS_OK;
}
////////////////////////////////////////////////////////////////////////
// nsIScriptObjectOwner interface
NS_IMETHODIMP
nsRDFDOMNodeList::GetScriptObject(nsIScriptContext *aContext, void** aScriptObject)
{
nsresult rv = NS_OK;
nsIScriptGlobalObject* global = aContext->GetGlobalObject();
if (nsnull == mScriptObject) {
nsIDOMScriptObjectFactory *factory;
if (NS_SUCCEEDED(rv = nsServiceManager::GetService(kDOMScriptObjectFactoryCID,
kIDOMScriptObjectFactoryIID,
(nsISupports **)&factory))) {
rv = factory->NewScriptHTMLCollection(aContext,
(nsISupports*)(nsIDOMNodeList*)this,
global,
(void**)&mScriptObject);
nsServiceManager::ReleaseService(kDOMScriptObjectFactoryCID, factory);
}
}
*aScriptObject = mScriptObject;
NS_RELEASE(global);
return rv;
}
NS_IMETHODIMP
nsRDFDOMNodeList::SetScriptObject(void* aScriptObject)
{
mScriptObject = aScriptObject;
return NS_OK;
}
////////////////////////////////////////////////////////////////////////
// Implementation methods
nsresult
nsRDFDOMNodeList::Init(void)
{
nsresult rv;
if (NS_FAILED(rv = NS_NewISupportsArray(&mElements))) {
NS_ERROR("unable to create elements array");
return rv;
}
return NS_OK;
}
nsresult
nsRDFDOMNodeList::AppendNode(nsIDOMNode* aNode)
{
NS_PRECONDITION(aNode != nsnull, "null ptr");
if (! aNode)
return NS_ERROR_NULL_POINTER;
return mElements->AppendElement(aNode);
}

View File

@@ -1,58 +0,0 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "License"); you may not use this file except in
* compliance with the License. You may obtain a copy of the License at
* http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS IS"
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
* the License for the specific language governing rights and limitations
* under the License.
*
* The Original Code is Mozilla Communicator client code.
*
* The Initial Developer of the Original Code is Netscape Communications
* Corporation. Portions created by Netscape are Copyright (C) 1998
* Netscape Communications Corporation. All Rights Reserved.
*/
#ifndef nsRDFDOMNodeList_h__
#define nsRDFDOMNodeList_h__
#include "nsIDOMNodeList.h"
#include "nsIScriptObjectOwner.h"
class nsIDOMNode;
class nsISupportsArray;
class nsRDFDOMNodeList : public nsIDOMNodeList,
public nsIScriptObjectOwner
{
private:
nsISupports* mInner;
nsISupportsArray* mElements;
void* mScriptObject;
nsRDFDOMNodeList(void);
nsresult Init(void);
public:
static nsresult Create(nsRDFDOMNodeList** aResult);
virtual ~nsRDFDOMNodeList(void);
// nsISupports interface
NS_DECL_ISUPPORTS
// nsIDOMNodeList interface
NS_DECL_IDOMNODELIST
// nsIScriptObjectOwner interface
NS_IMETHOD GetScriptObject(nsIScriptContext *aContext, void** aScriptObject);
NS_IMETHOD SetScriptObject(void* aScriptObject);
// Implementation methods
nsresult AppendNode(nsIDOMNode* aNode);
};
#endif // nsRDFDOMNodeList_h__

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,134 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#include "Fundamentals.h"
#include "BitSet.h"
// Return the next bit after index set to true or -1 if none.
//
Int32 BitSet::nextOne(Int32 pos) const
{
++pos;
if (pos < 0 || Uint32(pos) >= universeSize)
return -1;
Uint32 offset = getWordOffset(pos);
Uint8 index = getBitOffset(pos);
Word* ptr = &word[offset];
Word currentWord = *ptr++ >> index;
if (currentWord != Word(0)) {
while ((currentWord & Word(1)) == 0) {
++index;
currentWord >>= 1;
}
return (offset << nBitsInWordLog2) + index;
}
Word* limit = &word[getSizeInWords(universeSize)];
while (ptr < limit) {
++offset;
currentWord = *ptr++;
if (currentWord != Word(0)) {
index = 0;
while ((currentWord & Word(1)) == 0) {
++index;
currentWord >>= 1;
}
return (offset << nBitsInWordLog2) + index;
}
}
return -1;
}
// Return the next bit after index set to false or -1 if none.
//
Int32 BitSet::nextZero(Int32 pos) const
{
++pos;
if (pos < 0 || Uint32(pos) >= universeSize)
return -1;
Uint32 offset = getWordOffset(pos);
Uint8 index = getBitOffset(pos);
Word* ptr = &word[offset];
Word currentWord = *ptr++ >> index;
if (currentWord != Word(~0)) {
for (; index < nBitsInWord; ++index) {
if ((currentWord & Word(1)) == 0) {
Int32 ret = (offset << nBitsInWordLog2) + index;
return (Uint32(ret) < universeSize) ? ret : -1;
}
currentWord >>= 1;
}
}
Word* limit = &word[getSizeInWords(universeSize)];
while (ptr < limit) {
++offset;
currentWord = *ptr++;
if (currentWord != Word(~0)) {
for (index = 0; index < nBitsInWord; ++index) {
if ((currentWord & Word(1)) == 0) {
Int32 ret = (offset << nBitsInWordLog2) + index;
return (Uint32(ret) < universeSize) ? ret : -1;
}
currentWord >>= 1;
}
}
}
return -1;
}
#ifdef DEBUG_LOG
// Print the set.
//
void BitSet::printPretty(LogModuleObject log)
{
UT_OBJECTLOG(log, PR_LOG_ALWAYS, ("[ "));
for (Int32 i = firstOne(); i != -1; i = nextOne(i)) {
Int32 currentBit = i;
UT_OBJECTLOG(log, PR_LOG_ALWAYS, ("%d", currentBit));
Int32 nextBit = nextOne(currentBit);
if (nextBit != currentBit + 1) {
UT_OBJECTLOG(log, PR_LOG_ALWAYS, (" "));
continue;
}
while ((nextBit != -1) && (nextBit == (currentBit + 1))) {
currentBit = nextBit;
nextBit = nextOne(nextBit);
}
if (currentBit > (i+1))
UT_OBJECTLOG(log, PR_LOG_ALWAYS, ("-%d ", currentBit));
else
UT_OBJECTLOG(log, PR_LOG_ALWAYS, (" %d ", currentBit));
i = currentBit;
}
UT_OBJECTLOG(log, PR_LOG_ALWAYS, ("]\n"));
}
#endif // DEBUG_LOG

View File

@@ -0,0 +1,195 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#ifndef _BITSET_H_
#define _BITSET_H_
#include "Fundamentals.h"
#include "LogModule.h"
#include "Pool.h"
#include <string.h>
//------------------------------------------------------------------------------
// BitSet -
class BitSet
{
private:
#if (PR_BITS_PER_WORD == 64)
typedef Uint64 Word;
#elif (PR_BITS_PER_WORD == 32)
typedef Uint32 Word;
#endif
static const nBitsInWord = PR_BITS_PER_WORD;
static const nBytesInWord = PR_BYTES_PER_WORD;
static const nBitsInWordLog2 = PR_BITS_PER_WORD_LOG2;
static const nBytesInWordLog2 = PR_BYTES_PER_WORD_LOG2;
// Return the number of Word need to store the universe.
static Uint32 getSizeInWords(Uint32 sizeOfUniverse) {return (sizeOfUniverse + (nBitsInWord - 1)) >> nBitsInWordLog2;}
// Return the given element offset in its containing Word.
static Uint32 getBitOffset(Uint32 element) {return element & (nBitsInWord - 1);}
// Return the Word offset for the given element int the universe.
static Uint32 getWordOffset(Uint32 element) {return element >> nBitsInWordLog2;}
// Return the mask for the given bit index.
static Word getMask(Uint8 index) {return Word(1) << index;}
private:
Uint32 universeSize; // Size of the universe
Word* word; // universe memory.
private:
// No copy constructor.
BitSet(const BitSet&);
// Check if the given set's universe is of the same size than this universe.
void checkUniverseCompatibility(const BitSet& set) const {assert(set.universeSize == universeSize);}
// Check if pos is valid for this set's universe.
void checkMember(Int32 pos) const {assert(pos >=0 && Uint32(pos) < universeSize);}
public:
// Create a bitset of universeSize bits.
BitSet(Pool& pool, Uint32 universeSize) : universeSize(universeSize) {word = new(pool) Word[getSizeInWords(universeSize)]; clear();}
// Return the size of this bitset.
Uint32 getSize() const {return universeSize;}
// Clear the bitset.
void clear() {memset(word, 0x00, getSizeInWords(universeSize) << nBytesInWordLog2);}
// Clear the bit at index.
void clear(Uint32 index) {checkMember(index); word[getWordOffset(index)] &= ~getMask(index);}
// Set the bitset.
void set() {memset(word, 0xFF, getSizeInWords(universeSize) << nBytesInWordLog2);}
// Set the bit at index.
void set(Uint32 index) {checkMember(index); word[getWordOffset(index)] |= getMask(index);}
// Return true if the bit at index is set.
bool test(Uint32 index) const {checkMember(index); return (word[getWordOffset(index)] & getMask(index)) != 0;}
// Union with the given bitset.
inline void or(const BitSet& set);
// Intersection with the given bitset.
inline void and(const BitSet& set);
// Difference with the given bitset.
inline void difference(const BitSet& set);
// Copy set.
inline BitSet& operator = (const BitSet& set);
// Return true if the bitset are identical.
friend bool operator == (const BitSet& set1, const BitSet& set2);
// Return true if the bitset are different.
friend bool operator != (const BitSet& set1, const BitSet& set2);
// Logical operators.
BitSet& operator |= (const BitSet& set) {or(set); return *this;}
BitSet& operator &= (const BitSet& set) {and(set); return *this;}
BitSet& operator -= (const BitSet& set) {difference(set); return *this;}
// Return the first bit at set to true or -1 if none.
Int32 firstOne() const {return nextOne(-1);}
// Return the next bit after index set to true or -1 if none.
Int32 nextOne(Int32 pos) const;
// Return the first bit at set to false or -1 if none.
Int32 firstZero() const {return nextZero(-1);}
// Return the next bit after index set to false or -1 if none.
Int32 nextZero(Int32 pos) const;
// Iterator to conform with the set API.
typedef Int32 iterator;
// Return true if the walk is ordered.
static bool isOrdered() {return true;}
// Return the iterator for the first element of this set.
iterator begin() const {return firstOne();}
// Return the next iterator.
iterator advance(iterator pos) const {return nextOne(pos);}
// Return true if the iterator is at the end of the set.
bool done(iterator pos) const {return pos == -1;}
// Return the element corresponding to the given iterator.
Uint32 get(iterator pos) const {return pos;}
#ifdef DEBUG_LOG
// Print the set.
void printPretty(LogModuleObject log);
#endif // DEBUG_LOG
};
// Union with the given bitset.
//
inline void BitSet::or(const BitSet& set)
{
checkUniverseCompatibility(set);
Word* src = set.word;
Word* dst = word;
Word* limit = &src[getSizeInWords(universeSize)];
while (src < limit)
*dst++ |= *src++;
}
// Intersection with the given bitset.
//
inline void BitSet::and(const BitSet& set)
{
checkUniverseCompatibility(set);
Word* src = set.word;
Word* dst = word;
Word* limit = &src[getSizeInWords(universeSize)];
while (src < limit)
*dst++ &= *src++;
}
// Difference with the given bitset.
//
inline void BitSet::difference(const BitSet& set)
{
checkUniverseCompatibility(set);
Word* src = set.word;
Word* dst = word;
Word* limit = &src[getSizeInWords(universeSize)];
while (src < limit)
*dst++ &= ~*src++;
}
// Copy the given set into this set.
//
inline BitSet& BitSet::operator = (const BitSet& set)
{
checkUniverseCompatibility(set);
if (this != &set)
memcpy(word, set.word, getSizeInWords(universeSize) << nBytesInWordLog2);
return *this;
}
// Return true if the given set is identical to this set.
inline bool operator == (const BitSet& set1, const BitSet& set2)
{
set1.checkUniverseCompatibility(set2);
if (&set1 == &set2)
return true;
return memcmp(set1.word, set2.word, BitSet::getSizeInWords(set1.universeSize) << BitSet::nBytesInWordLog2) == 0;
}
inline bool operator != (const BitSet& set1, const BitSet& set2) {return !(set1 == set2);}
#endif // _BITSET_H

View File

@@ -0,0 +1,159 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#ifndef _COALESCING_H_
#define _COALESCING_H_
#include "Fundamentals.h"
#include "Pool.h"
#include "RegisterPressure.h"
#include "InterferenceGraph.h"
#include "ControlGraph.h"
#include "ControlNodes.h"
#include "Instruction.h"
#include "SparseSet.h"
#include "RegisterAllocator.h"
#include "RegisterAllocatorTools.h"
#if 1
// Performing an ultra conservative coalescing meens that when we look at
// candidates (source,destination) for coalescing we need to make sure
// that the combined interference of the source and destination register
// will not exceed the total number of register available for the register
// class.
#define ULTRA_CONSERVATIVE_COALESCING
#else
// If we are not doing an ultra conservative coalescing we have to make sure
// that the total number of neighbor whose degree is greater than the total
// number of register is not greater than the total number of register.
#undef ULTRA_CONSERVATIVE_COALESCING
#endif
template <class RegisterPressure>
struct Coalescing
{
static bool coalesce(RegisterAllocator& registerAllocator);
};
template <class RegisterPressure>
bool Coalescing<RegisterPressure>::coalesce(RegisterAllocator& registerAllocator)
{
Pool& pool = registerAllocator.pool;
// Initialize the lookup table
//
Uint32 rangeCount = registerAllocator.rangeCount;
RegisterName* newRange = new RegisterName[2 * rangeCount];
RegisterName* coalescedRange = &newRange[rangeCount];
RegisterName* name2range = registerAllocator.name2range;
init(coalescedRange, rangeCount);
SparseSet interferences(pool, rangeCount);
InterferenceGraph<RegisterPressure>& iGraph = registerAllocator.iGraph;
bool removedInstructions = false;
ControlGraph& controlGraph = registerAllocator.controlGraph;
ControlNode** nodes = controlGraph.lndList;
Uint32 nNodes = controlGraph.nNodes;
// Walk the nodes in the loop nesting depth list.
for (Int32 n = nNodes - 1; n >= 0; n--) {
InstructionList& instructions = nodes[n]->getInstructions();
InstructionList::iterator it = instructions.begin();
while (!instructions.done(it)) {
Instruction& instruction = instructions.get(it);
it = instructions.advance(it);
if ((instruction.getFlags() & ifCopy) != 0) {
assert(instruction.getInstructionUseBegin() != instruction.getInstructionUseEnd() && instruction.getInstructionUseBegin()[0].isRegister());
assert(instruction.getInstructionDefineBegin() != instruction.getInstructionDefineEnd() && instruction.getInstructionDefineBegin()[0].isRegister());
RegisterName source = findRoot(name2range[instruction.getInstructionUseBegin()[0].getRegisterName()], coalescedRange);
RegisterName destination = findRoot(name2range[instruction.getInstructionDefineBegin()[0].getRegisterName()], coalescedRange);
if (source == destination) {
instruction.remove();
} else if (!iGraph.interfere(source, destination)) {
InterferenceVector* sourceVector = iGraph.getInterferenceVector(source);
InterferenceVector* destinationVector = iGraph.getInterferenceVector(destination);
#ifdef ULTRA_CONSERVATIVE_COALESCING
interferences.clear();
InterferenceVector* vector;
for (vector = sourceVector; vector != NULL; vector = vector->next) {
RegisterName* neighbors = vector->neighbors;
for (Uint32 i = 0; i < vector->count; i++)
interferences.set(findRoot(neighbors[i], coalescedRange));
}
for (vector = destinationVector; vector != NULL; vector = vector->next) {
RegisterName* neighbors = vector->neighbors;
for (Uint32 i = 0; i < vector->count; i++)
interferences.set(findRoot(neighbors[i], coalescedRange));
}
Uint32 count = interferences.getSize();
#else // ULTRA_CONSERVATIVE_COALESCING
trespass("not implemented");
Uint32 count = 0;
#endif // ULTRA_CONSERVATIVE_COALESCING
if (count < 6 /* FIX: should get the number from the class */) {
// Update the interferences vector.
if (sourceVector == NULL) {
iGraph.setInterferenceVector(source, destinationVector);
sourceVector = destinationVector;
} else if (destinationVector == NULL)
iGraph.setInterferenceVector(destination, sourceVector);
else {
InterferenceVector* last = NULL;
for (InterferenceVector* v = sourceVector; v != NULL; v = v->next)
last = v;
assert(last);
last->next = destinationVector;
iGraph.setInterferenceVector(destination, sourceVector);
}
// Update the interference matrix.
for (InterferenceVector* v = sourceVector; v != NULL; v = v->next) {
RegisterName* neighbors = v->neighbors;
for (Uint32 i = 0; i < v->count; i++) {
RegisterName neighbor = findRoot(neighbors[i], coalescedRange);
iGraph.setInterference(neighbor, source);
iGraph.setInterference(neighbor, destination);
}
}
instruction.remove();
coalescedRange[source] = destination;
removedInstructions = true;
}
}
}
}
}
registerAllocator.rangeCount = compress(registerAllocator.name2range, coalescedRange, registerAllocator.nameCount, rangeCount);
delete newRange;
return removedInstructions;
}
#endif // _COALESCING_H_

View File

@@ -0,0 +1,283 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#ifndef NEW_LAURENTM_CODE
#include "Coloring.h"
#include "VirtualRegister.h"
#include "FastBitSet.h"
#include "FastBitMatrix.h"
#include "CpuInfo.h"
bool Coloring::
assignRegisters(FastBitMatrix& interferenceMatrix)
{
PRUint32 *stackPtr = new(pool) PRUint32[vRegManager.count()];
return select(interferenceMatrix, stackPtr, simplify(interferenceMatrix, stackPtr));
}
PRInt32 Coloring::
getLowestSpillCostRegister(FastBitSet& bitset)
{
PRInt32 lowest = bitset.firstOne();
if (lowest != -1)
{
Flt32 cost = vRegManager.getVirtualRegister(lowest).spillInfo.spillCost;
for (PRInt32 r = bitset.nextOne(lowest); r != -1; r = bitset.nextOne(r))
{
VirtualRegister& vReg = vRegManager.getVirtualRegister(r);
if (!vReg.spillInfo.infiniteSpillCost && (vReg.spillInfo.spillCost < cost))
{
cost = vReg.spillInfo.spillCost;
lowest = r;
}
}
}
return lowest;
}
PRUint32* Coloring::
simplify(FastBitMatrix interferenceMatrix, PRUint32* stackPtr)
{
// first we construct the sets low and high. low contains all nodes of degree
// inferior to the number of register available on the processor. All the
// nodes with an high degree and a finite spill cost are placed in high.
// Nodes of high degree and infinite spill cost are not included in either sets.
PRUint32 nRegisters = vRegManager.count();
FastBitSet low(pool, nRegisters);
FastBitSet high(pool, nRegisters);
FastBitSet stack(pool, nRegisters);
for (VirtualRegisterManager::iterator i = vRegManager.begin(); !vRegManager.done(i); i = vRegManager.advance(i))
{
VirtualRegister& vReg = vRegManager.getVirtualRegister(i);
if (vReg.getClass() == vrcStackSlot)
{
stack.set(i);
vReg.colorRegister(nRegisters);
}
else
{
if (vReg.colorInfo.interferenceDegree < NUMBER_OF_REGISTERS)
low.set(i);
else // if (!vReg.spillInfo.infiniteSpillCost)
high.set(i);
// Set coloring info.
vReg.spillInfo.willSpill = false;
switch(vReg.getClass())
{
case vrcInteger:
vReg.colorRegister(LAST_GREGISTER + 1);
break;
case vrcFloatingPoint:
case vrcFixedPoint:
vReg.colorRegister(LAST_FPREGISTER + 1);
break;
default:
PR_ASSERT(false); // Cannot happen.
}
}
}
// push the stack registers
PRInt32 j;
for (j = stack.firstOne(); j != -1; j = stack.nextOne(j))
*stackPtr++ = j;
// simplify
while (true)
{
PRInt32 r;
while ((r = getLowestSpillCostRegister(low)) != -1)
{
VirtualRegister& vReg = vRegManager.getVirtualRegister(r);
/* update low and high */
FastBitSet inter(interferenceMatrix.getRow(r), nRegisters);
for (j = inter.firstOne(); j != -1; j = inter.nextOne(j))
{
VirtualRegister& neighbor = vRegManager.getVirtualRegister(j);
// if the new interference degree of one of his neighbor becomes
// NUMBER_OF_REGISTERS - 1 then it is added to the set 'low'.
PRUint32 maxInterference = 0;
switch (neighbor.getClass())
{
case vrcInteger:
maxInterference = NUMBER_OF_GREGISTERS;
break;
case vrcFloatingPoint:
case vrcFixedPoint:
maxInterference = NUMBER_OF_FPREGISTERS;
break;
default:
PR_ASSERT(false);
}
if ((vRegManager.getVirtualRegister(j).colorInfo.interferenceDegree-- == maxInterference))
{
high.clear(j);
low.set(j);
}
vReg.colorInfo.interferenceDegree--;
interferenceMatrix.clear(r, j);
interferenceMatrix.clear(j, r);
}
low.clear(r);
// Push this register.
*stackPtr++ = r;
}
if ((r = getLowestSpillCostRegister(high)) != -1)
{
high.clear(r);
low.set(r);
}
else
break;
}
return stackPtr;
}
bool Coloring::
select(FastBitMatrix& interferenceMatrix, PRUint32* stackBase, PRUint32* stackPtr)
{
PRUint32 nRegisters = vRegManager.count();
FastBitSet usedRegisters(NUMBER_OF_REGISTERS + 1); // usedRegisters if used for both GR & FPR.
FastBitSet preColoredRegisters(NUMBER_OF_REGISTERS + 1);
FastBitSet usedStack(nRegisters + 1);
bool success = true;
Int32 lastUsedSSR = -1;
// select
while (stackPtr != stackBase)
{
// Pop one register.
PRUint32 r = *--stackPtr;
VirtualRegister& vReg = vRegManager.getVirtualRegister(r);
FastBitSet neighbors(interferenceMatrix.getRow(r), nRegisters);
if (vReg.getClass() == vrcStackSlot)
// Stack slots coloring.
{
usedStack.clear();
for (PRInt32 i = neighbors.firstOne(); i != -1; i = neighbors.nextOne(i))
usedStack.set(vRegManager.getVirtualRegister(i).getColor());
Int32 color = usedStack.firstZero();
vReg.colorRegister(color);
if (color > lastUsedSSR)
lastUsedSSR = color;
}
else
// Integer & Floating point register coloring.
{
usedRegisters.clear();
preColoredRegisters.clear();
for (PRInt32 i = neighbors.firstOne(); i != -1; i = neighbors.nextOne(i))
{
VirtualRegister& nvReg = vRegManager.getVirtualRegister(i);
usedRegisters.set(nvReg.getColor());
if (nvReg.isPreColored())
preColoredRegisters.set(nvReg.getPreColor());
}
if (vReg.hasSpecialInterference)
usedRegisters |= vReg.specialInterference;
PRInt8 c = -1;
PRInt8 maxColor = 0;
PRInt8 firstColor = 0;
switch (vReg.getClass())
{
case vrcInteger:
firstColor = FIRST_GREGISTER;
maxColor = LAST_GREGISTER;
break;
case vrcFloatingPoint:
case vrcFixedPoint:
firstColor = FIRST_FPREGISTER;
maxColor = LAST_FPREGISTER;
break;
default:
PR_ASSERT(false);
}
if (vReg.isPreColored())
{
c = vReg.getPreColor();
if (usedRegisters.test(c))
c = -1;
}
else
{
for (c = usedRegisters.nextZero(firstColor - 1); (c >= 0) && (c <= maxColor) && (preColoredRegisters.test(c));
c = usedRegisters.nextZero(c)) {}
}
if ((c >= 0) && (c <= maxColor))
{
vReg.colorRegister(c);
}
else
{
VirtualRegister& stackRegister = vRegManager.newVirtualRegister(vrcStackSlot);
vReg.equivalentRegister[vrcStackSlot] = &stackRegister;
vReg.spillInfo.willSpill = true;
success = false;
}
}
}
#ifdef DEBUG
if (success)
{
for (VirtualRegisterManager::iterator i = vRegManager.begin(); !vRegManager.done(i); i = vRegManager.advance(i))
{
VirtualRegister& vReg = vRegManager.getVirtualRegister(i);
switch (vReg.getClass())
{
case vrcInteger:
if (vReg.getColor() > LAST_GREGISTER)
PR_ASSERT(false);
break;
case vrcFloatingPoint:
case vrcFixedPoint:
#if NUMBER_OF_FPREGISTERS != 0
if (vReg.getColor() > LAST_FPREGISTER)
PR_ASSERT(false);
#endif
break;
default:
break;
}
}
}
#endif
vRegManager.nUsedStackSlots = lastUsedSSR + 1;
return success;
}
#endif // NEW_LAURENTM_CODE

View File

@@ -0,0 +1,284 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#include "Fundamentals.h"
#include "ControlGraph.h"
#include "ControlNodes.h"
#include "Instruction.h"
#include "RegisterAllocator.h"
#include "VirtualRegister.h"
#include "InterferenceGraph.h"
#include "SparseSet.h"
#include "Spilling.h"
#include "Splits.h"
UT_EXTERN_LOG_MODULE(RegAlloc);
template <class RegisterPressure>
class Coloring
{
private:
static RegisterName* simplify(RegisterAllocator& registerAllocator, RegisterName* coloringStack);
static bool select(RegisterAllocator& registerAllocator, RegisterName* coloringStack, RegisterName* coloringStackPtr);
public:
static bool color(RegisterAllocator& registerAllocator);
static void finalColoring(RegisterAllocator& registerAllocator);
};
template <class RegisterPressure>
void Coloring<RegisterPressure>::finalColoring(RegisterAllocator& registerAllocator)
{
RegisterName* color = registerAllocator.color;
RegisterName* name2range = registerAllocator.name2range;
ControlGraph& controlGraph = registerAllocator.controlGraph;
ControlNode** nodes = controlGraph.dfsList;
Uint32 nNodes = controlGraph.nNodes;
for (Uint32 n = 0; n < nNodes; n++) {
InstructionList& instructions = nodes[n]->getInstructions();
for (InstructionList::iterator i = instructions.begin(); !instructions.done(i); i = instructions.advance(i)) {
Instruction& instruction = instructions.get(i);
InstructionUse* useEnd = instruction.getInstructionUseEnd();
for (InstructionUse* usePtr = instruction.getInstructionUseBegin(); usePtr < useEnd; usePtr++)
if (usePtr->isRegister()) {
usePtr->setRegisterName(color[name2range[usePtr->getRegisterName()]]);
#ifdef DEBUG
RegisterID rid = usePtr->getRegisterID();
setColoredRegister(rid);
usePtr->setRegisterID(rid);
#endif // DEBUG
}
InstructionDefine* defineEnd = instruction.getInstructionDefineEnd();
for (InstructionDefine* definePtr = instruction.getInstructionDefineBegin(); definePtr < defineEnd; definePtr++)
if (definePtr->isRegister()) {
definePtr->setRegisterName(color[name2range[definePtr->getRegisterName()]]);
#ifdef DEBUG
RegisterID rid = definePtr->getRegisterID();
setColoredRegister(rid);
definePtr->setRegisterID(rid);
#endif // DEBUG
}
}
}
}
template <class RegisterPressure>
bool Coloring<RegisterPressure>::select(RegisterAllocator& registerAllocator, RegisterName* coloringStack, RegisterName* coloringStackPtr)
{
Uint32 rangeCount = registerAllocator.rangeCount;
RegisterName* color = new RegisterName[rangeCount];
registerAllocator.color = color;
for (Uint32 r = 1; r < rangeCount; r++)
color[r] = RegisterName(6); // FIX;
// Color the preColored registers.
//
VirtualRegisterManager& vrManager = registerAllocator.vrManager;
RegisterName* name2range = registerAllocator.name2range;
PreColoredRegister* machineEnd = vrManager.getMachineRegistersEnd();
for (PreColoredRegister* machinePtr = vrManager.getMachineRegistersBegin(); machinePtr < machineEnd; machinePtr++)
if (machinePtr->id != invalidID) {
color[name2range[getName(machinePtr->id)]] = machinePtr->color;
UT_OBJECTLOG(UT_LOG_MODULE(RegAlloc), PR_LOG_ALWAYS, ("\twill preColor range %d as %d\n", name2range[getName(machinePtr->id)], machinePtr->color));
}
SpillCost* cost = registerAllocator.spillCost;
Pool& pool = registerAllocator.pool;
SparseSet& spill = *new(pool) SparseSet(pool, rangeCount);
registerAllocator.willSpill = &spill;
SparseSet neighborColors(pool, 6); // FIX
InterferenceGraph<RegisterPressure>& iGraph = registerAllocator.iGraph;
bool coloringFailed = false;
while (coloringStackPtr > coloringStack) {
RegisterName range = *--coloringStackPtr;
if (!cost[range].infinite && cost[range].cost < 0) {
coloringFailed = true;
spill.set(range);
UT_OBJECTLOG(UT_LOG_MODULE(RegAlloc), PR_LOG_ALWAYS, ("\tfailed to color %d, will spill.\n", range));
} else {
neighborColors.clear();
for (InterferenceVector* vector = iGraph.getInterferenceVector(range); vector != NULL; vector = vector->next)
for (Int32 i = vector->count - 1; i >= 0; --i) {
RegisterName neighborColor = color[vector->neighbors[i]];
if (neighborColor < 6) // FIX
neighborColors.set(neighborColor);
}
if (neighborColors.getSize() == 6) { // FIX
coloringFailed = true;
UT_OBJECTLOG(UT_LOG_MODULE(RegAlloc), PR_LOG_ALWAYS, ("\tfailed to color %d, ", range));
if (!Splits<RegisterPressure>::findSplit(registerAllocator, color, range)) {
UT_OBJECTLOG(UT_LOG_MODULE(RegAlloc), PR_LOG_ALWAYS, ("will spill.\n"));
spill.set(range);
} else
UT_OBJECTLOG(UT_LOG_MODULE(RegAlloc), PR_LOG_ALWAYS, ("will split.\n"));
} else {
for (Uint32 i = 0; i < 6; i++) // FIX
if (!neighborColors.test(i)) {
fprintf(stdout, "\twill color %d as %d\n", range, i);
color[range] = RegisterName(i);
break;
}
}
}
}
#ifdef DEBUG_LOG
if (coloringFailed) {
UT_OBJECTLOG(UT_LOG_MODULE(RegAlloc), PR_LOG_ALWAYS, ("Coloring failed:\n"));
UT_OBJECTLOG(UT_LOG_MODULE(RegAlloc), PR_LOG_ALWAYS, ("\twill spill: "));
spill.printPretty(UT_LOG_MODULE(RegAlloc));
} else {
UT_OBJECTLOG(UT_LOG_MODULE(RegAlloc), PR_LOG_ALWAYS, ("Coloring succeeded:\n"));
for (Uint32 i = 1; i < rangeCount; i++)
UT_OBJECTLOG(UT_LOG_MODULE(RegAlloc), PR_LOG_ALWAYS, ("\trange %d colored as %d\n", i, color[i]));
}
#endif
return !coloringFailed;
}
template <class RegisterPressure>
RegisterName* Coloring<RegisterPressure>::simplify(RegisterAllocator& registerAllocator, RegisterName* coloringStack)
{
InterferenceGraph<RegisterPressure>& iGraph = registerAllocator.iGraph;
SpillCost* spillCost = registerAllocator.spillCost;
Uint32 rangeCount = registerAllocator.rangeCount;
Uint32* degree = new Uint32[rangeCount];
for (RegisterName i = RegisterName(1); i < rangeCount; i = RegisterName(i + 1)) {
InterferenceVector* vector = iGraph.getInterferenceVector(i);
degree[i] = (vector != NULL) ? vector->count : 0;
}
Pool& pool = registerAllocator.pool;
SparseSet low(pool, rangeCount);
SparseSet high(pool, rangeCount);
SparseSet highInfinite(pool, rangeCount);
SparseSet preColored(pool, rangeCount);
// Get the precolored registers.
//
VirtualRegisterManager& vrManager = registerAllocator.vrManager;
RegisterName* name2range = registerAllocator.name2range;
PreColoredRegister* machineEnd = vrManager.getMachineRegistersEnd();
for (PreColoredRegister* machinePtr = vrManager.getMachineRegistersBegin(); machinePtr < machineEnd; machinePtr++)
if (machinePtr->id != invalidID)
preColored.set(name2range[getName(machinePtr->id)]);
// Insert the live ranges in the sets.
//
for (Uint32 range = 1; range < rangeCount; range++)
if (!preColored.test(range))
if (degree[range] < 6) // FIX
low.set(range);
else if (!spillCost[range].infinite)
high.set(range);
else
highInfinite.set(range);
#ifdef DEBUG_LOG
UT_OBJECTLOG(UT_LOG_MODULE(RegAlloc), PR_LOG_ALWAYS, ("Coloring sets:\n\tlow = "));
low.printPretty(UT_LOG_MODULE(RegAlloc));
UT_OBJECTLOG(UT_LOG_MODULE(RegAlloc), PR_LOG_ALWAYS, ("\thigh = "));
high.printPretty(UT_LOG_MODULE(RegAlloc));
UT_OBJECTLOG(UT_LOG_MODULE(RegAlloc), PR_LOG_ALWAYS, ("\thighInfinite = "));
highInfinite.printPretty(UT_LOG_MODULE(RegAlloc));
UT_OBJECTLOG(UT_LOG_MODULE(RegAlloc), PR_LOG_ALWAYS, ("\tpreColored = "));
preColored.printPretty(UT_LOG_MODULE(RegAlloc));
#endif // DEBUG_LOG
RegisterName* coloringStackPtr = coloringStack;
while (low.getSize() != 0 || high.getSize() != 0) {
while (low.getSize() != 0) {
RegisterName range = RegisterName(low.getOne());
low.clear(range);
*coloringStackPtr++ = range;
for (InterferenceVector* vector = iGraph.getInterferenceVector(range); vector != NULL; vector = vector->next)
for (Int32 i = (vector->count - 1); i >= 0; --i) {
RegisterName neighbor = vector->neighbors[i];
degree[neighbor]--;
if (degree[neighbor] < 6) // FIX
if (high.test(neighbor)) {
high.clear(neighbor);
low.set(neighbor);
} else if (highInfinite.test(neighbor)) {
highInfinite.clear(neighbor);
low.set(neighbor);
}
}
}
if (high.getSize() != 0) {
RegisterName best = RegisterName(high.getOne());
double bestCost = spillCost[best].cost;
double bestDegree = degree[best];
// Choose the next best candidate.
//
for (SparseSet::iterator i = high.begin(); !high.done(i); i = high.advance(i)) {
RegisterName range = RegisterName(high.get(i));
double thisCost = spillCost[range].cost;
double thisDegree = degree[range];
if (thisCost * bestDegree < bestCost * thisDegree) {
best = range;
bestCost = thisCost;
bestDegree = thisDegree;
}
}
high.clear(best);
low.set(best);
}
}
assert(highInfinite.getSize() == 0);
delete degree;
#ifdef DEBUG_LOG
UT_OBJECTLOG(UT_LOG_MODULE(RegAlloc), PR_LOG_ALWAYS, ("Coloring stack:\n\t"));
for (RegisterName* sp = coloringStack; sp < coloringStackPtr; ++sp)
UT_OBJECTLOG(UT_LOG_MODULE(RegAlloc), PR_LOG_ALWAYS, ("%d ", *sp));
UT_OBJECTLOG(UT_LOG_MODULE(RegAlloc), PR_LOG_ALWAYS, ("\n"));
#endif // DEBUG_LOG
return coloringStackPtr;
}
template <class RegisterPressure>
bool Coloring<RegisterPressure>::color(RegisterAllocator& registerAllocator)
{
RegisterName* coloringStack = new RegisterName[registerAllocator.rangeCount];
return select(registerAllocator, coloringStack, simplify(registerAllocator, coloringStack));
}

View File

@@ -0,0 +1,212 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#include "Fundamentals.h"
#include <string.h>
#include "ControlGraph.h"
#include "ControlNodes.h"
#include "DominatorGraph.h"
DominatorGraph::DominatorGraph(ControlGraph& controlGraph) : controlGraph(controlGraph)
{
Uint32 nNodes = controlGraph.nNodes;
GtoV = new Uint32[nNodes + 1];
VtoG = new Uint32[nNodes + 1];
Uint32 v = 1;
for (Uint32 n = 0; n < nNodes; n++) {
VtoG[v] = n;
GtoV[n] = v++;
}
// Initialize all the 1-based arrays.
//
parent = new Uint32[v];
semi = new Uint32[v];
vertex = new Uint32[v];
label = new Uint32[v];
size = new Uint32[v];
ancestor = new Uint32[v];
child = new Uint32[v];
dom = new Uint32[v];
bucket = new DGLinkedList*[v];
memset(semi, '\0', v * sizeof(Uint32));
memset(bucket, '\0', v * sizeof(DGLinkedList*));
vCount = v;
build();
delete parent;
delete semi;
delete vertex;
delete label;
delete size;
delete ancestor;
delete child;
delete dom;
delete bucket;
}
Uint32 DominatorGraph::DFS(Uint32 vx, Uint32 n)
{
semi[vx] = ++n;
vertex[n] = label[vx] = vx;
ancestor[vx] = child[vx] = 0;
size[vx] = 1;
ControlNode& node = *controlGraph.dfsList[VtoG[vx]];
ControlEdge* successorEnd = node.getSuccessorsEnd();
for (ControlEdge* successorPtr = node.getSuccessorsBegin(); successorPtr < successorEnd; successorPtr++) {
Uint32 w = GtoV[successorPtr->getTarget().dfsNum];
if (semi[w] == 0) {
parent[w] = vx;
n = DFS(w, n);
}
}
return n;
}
void DominatorGraph::LINK(Uint32 vx, Uint32 w)
{
Uint32 s = w;
while (semi[label[w]] < semi[label[child[s]]]) {
if (size[s] + size[child[child[s]]] >= (size[child[s]] << 1)) {
ancestor[child[s]] = s;
child[s] = child[child[s]];
} else {
size[child[s]] = size[s];
s = ancestor[s] = child[s];
}
}
label[s] = label[w];
size[vx] += size[w];
if(size[vx] < (size[w] << 1)) {
Uint32 t = s;
s = child[vx];
child[vx] = t;
}
while( s != 0 ) {
ancestor[s] = vx;
s = child[s];
}
}
void DominatorGraph::COMPRESS(Uint32 vx)
{
if(ancestor[ancestor[vx]] != 0) {
COMPRESS(ancestor[vx]);
if(semi[label[ancestor[vx]]] < semi[label[vx]])
label[vx] = label[ancestor[vx]];
ancestor[vx] = ancestor[ancestor[vx]];
}
}
Uint32 DominatorGraph::EVAL(Uint32 vx)
{
if(ancestor[vx] == 0)
return label[vx];
COMPRESS(vx);
return (semi[label[ancestor[vx]]] >= semi[label[vx]]) ? label[vx] : label[ancestor[vx]];
}
void DominatorGraph::build()
{
Uint32 n = DFS(GtoV[0], 0);
size[0] = label[0] = semi[0];
for (Uint32 i = n; i >= 2; i--) {
Uint32 w = vertex[i];
ControlNode& node = *controlGraph.dfsList[VtoG[w]];
const DoublyLinkedList<ControlEdge>& predecessors = node.getPredecessors();
for (DoublyLinkedList<ControlEdge>::iterator p = predecessors.begin(); !predecessors.done(p); p = predecessors.advance(p)) {
Uint32 vx = GtoV[predecessors.get(p).getSource().dfsNum];
Uint32 u = EVAL(vx);
if(semi[u] < semi[w])
semi[w] = semi[u];
}
DGLinkedList* elem = new DGLinkedList();
elem->next = bucket[vertex[semi[w]]];
elem->index = w;
bucket[vertex[semi[w]]] = elem;
LINK(parent[w], w);
elem = bucket[parent[w]];
while(elem != NULL) {
Uint32 vx = elem->index;
Uint32 u = EVAL(vx);
dom[vx] = (semi[u] < semi[vx]) ? u : parent[w];
elem = elem->next;
}
}
memset(size, '\0', n * sizeof(Uint32));
Pool& pool = controlGraph.pool;
nodes = new(pool) DGNode[n];
for(Uint32 j = 2; j <= n; j++) {
Uint32 w = vertex[j];
Uint32 d = dom[w];
if(d != vertex[semi[w]]) {
d = dom[d];
dom[w] = d;
}
size[d]++;
}
dom[GtoV[0]] = 0;
for (Uint32 k = 1; k <= n; k++) {
DGNode& node = nodes[VtoG[k]];
Uint32 count = size[k];
node.successorsEnd = node.successorsBegin = (count) ? new(pool) Uint32[count] : (Uint32*) 0;
}
for (Uint32 l = 2; l <= n; l++)
*(nodes[VtoG[dom[l]]].successorsEnd)++ = VtoG[l];
}
#ifdef DEBUG_LOG
void DominatorGraph::printPretty(LogModuleObject log)
{
UT_OBJECTLOG(log, PR_LOG_ALWAYS, ("Dominator Graph:\n"));
Uint32 nNodes = controlGraph.nNodes;
for (Uint32 i = 0; i < nNodes; i++) {
DGNode& node = nodes[i];
if (node.successorsBegin != node.successorsEnd) {
UT_OBJECTLOG(log, PR_LOG_ALWAYS, ("\tN%d dominates ", i));
for (Uint32* successorsPtr = node.successorsBegin; successorsPtr < node.successorsEnd; successorsPtr++)
UT_OBJECTLOG(log, PR_LOG_ALWAYS, ("N%d ", *successorsPtr));
UT_OBJECTLOG(log, PR_LOG_ALWAYS, ("\n"));
}
}
}
#endif // DEBUG_LOG

View File

@@ -0,0 +1,80 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#ifndef _DOMINATOR_GRAPH_H_
#define _DOMINATOR_GRAPH_H_
#include "LogModule.h"
class ControlGraph;
struct DGNode
{
Uint32* successorsBegin;
Uint32* successorsEnd;
};
struct DGLinkedList
{
DGLinkedList* next;
Uint32 index;
};
class DominatorGraph
{
private:
ControlGraph& controlGraph;
Uint32 vCount;
Uint32* VtoG;
Uint32* GtoV;
Uint32* parent;
Uint32* semi;
Uint32* vertex;
Uint32* label;
Uint32* size;
Uint32* ancestor;
Uint32* child;
Uint32* dom;
DGLinkedList** bucket;
DGNode* nodes;
private:
void build();
Uint32 DFS(Uint32 vx, Uint32 n);
void LINK(Uint32 vx, Uint32 w);
void COMPRESS(Uint32 vx);
Uint32 EVAL(Uint32 vx);
public:
DominatorGraph(ControlGraph& controlGraph);
Uint32* getSuccessorsBegin(Uint32 n) const {return nodes[n].successorsBegin;}
Uint32* getSuccessorsEnd(Uint32 n) const {return nodes[n].successorsEnd;}
#ifdef DEBUG_LOG
void printPretty(LogModuleObject log);
#endif // DEBUG_LOG
};
#endif // _DOMINATOR_GRAPH_H_

View File

@@ -0,0 +1,20 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#include "Fundamentals.h"
#include "HashSet.h"

View File

@@ -0,0 +1,97 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#ifndef _HASH_SET_H_
#define _HASH_SET_H_
#include "Fundamentals.h"
#include "Pool.h"
#include <string.h>
struct HashSetElement
{
Uint32 index;
HashSetElement* next;
};
class HashSet
{
private:
static const hashSize = 64;
// Return the hash code for the given element index.
static Uint32 getHashCode(Uint32 index) {return index & (hashSize - 1);} // Could be better !
private:
Pool& allocationPool;
HashSetElement** bucket;
HashSetElement* free;
private:
// No copy constructor.
HashSet(const HashSet&);
// No copy operator.
void operator = (const HashSet&);
public:
// Create a new HashSet.
inline HashSet(Pool& pool, Uint32 universeSize);
// Clear the hashset.
void clear();
// Clear the element for the given index.
void clear(Uint32 index);
// Set the element for the given index.
void set(Uint32 index);
// Return true if the element at index is a member.
bool test(Uint32 index) const;
// Union with the given hashset.
inline void or(const HashSet& set);
// Intersection with the given hashset.
inline void and(const HashSet& set);
// Difference with the given hashset.
inline void difference(const HashSet& set);
// Logical operators.
HashSet& operator |= (const HashSet& set) {or(set); return *this;}
HashSet& operator &= (const HashSet& set) {and(set); return *this;}
HashSet& operator -= (const HashSet& set) {difference(set); return *this;}
// Iterator to conform with the set API.
typedef HashSetElement* iterator;
// Return the iterator for the first element of this set.
iterator begin() const;
// Return the next iterator.
iterator advance(iterator pos) const;
// Return true if the iterator is at the end of the set.
bool done(iterator pos) const {return pos == NULL;}
};
inline HashSet::HashSet(Pool& pool, Uint32 /*universeSize*/)
: allocationPool(pool), free(NULL)
{
bucket = new(pool) HashSetElement*[hashSize];
memset(bucket, '\0', sizeof(HashSetElement*));
}
#endif // _HASH_SET_H_

View File

@@ -0,0 +1,213 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#ifndef _INDEXED_POOL_H_
#define _INDEXED_POOL_H_
#include "Fundamentals.h"
#include <string.h>
#include <stdlib.h>
//------------------------------------------------------------------------------
// IndexedPool<IndexedObjectSubclass> is an indexed pool of objects. The
// template parameter 'IndexedObjectSubclass' must be a subclass of the struct
// IndexedObject.
//
// When the indexed pool is ask to allocate and initialize a new object (using
// the operator new(anIndexedPool) it will zero the memory used to store the
// object and initialize the field 'index' of this object to its position in
// the pool.
//
// An object allocated by the indexed pool can be freed by calling the method
// IndexedPool::release(IndexedElement& objectIndex).
//
// example:
//
// IndexedPool<IndexedElement> elementPool;
//
// IndexedElement& element1 = *new(elementPool) IndexedElement();
// IndexedElement& element2 = *new(elementPool) IndexedElement();
//
// indexedPool.release(element1);
// IndexedElement& element3 = *new(elementPool) IndexedElement();
//
// At this point element1 is no longer a valid object, element2 is at
// index 2 and element3 is at index 1.
//
//------------------------------------------------------------------------------
// IndexedObject -
//
template<class Object>
struct IndexedObject
{
Uint32 index; // Index in the pool.
Object* next; // Used to link IndexedObject together.
Uint32 getIndex() {return index;}
};
//------------------------------------------------------------------------------
// IndexedPool<IndexedObject> -
//
template <class IndexedObject>
class IndexedPool
{
private:
static const blockSize = 4; // Size of one block.
Uint32 nBlocks; // Number of blocks in the pool.
IndexedObject** block; // Array of block pointers.
IndexedObject* freeObjects; // Chained list of free IndexedObjects.
Uint32 nextIndex; // Index of the next free object in the last block.
private:
void allocateAnotherBlock();
IndexedObject& newObject();
public:
IndexedPool() : nBlocks(0), block(NULL), freeObjects(NULL), nextIndex(1) {}
~IndexedPool();
IndexedObject& get(Uint32 index) const;
void release(IndexedObject& object);
void setSize(Uint32 size) {assert(size < nextIndex); nextIndex = size;}
// Return the universe size.
Uint32 getSize() {return nextIndex;}
friend void* operator new(size_t, IndexedPool<IndexedObject>& pool); // Needs to call newObject().
};
// Free all the memory allocated for this object.
//
template <class IndexedObject>
IndexedPool<IndexedObject>::~IndexedPool()
{
for (Uint32 n = 0; n < nBlocks; n++)
free(&((IndexedObject **) &block[n][n*blockSize])[-(n + 1)]);
}
// Release the given. This object will be iserted in the chained
// list of free IndexedObjects. To minimize the fragmentation the chained list
// is ordered by ascending indexes.
//
template <class IndexedObject>
void IndexedPool<IndexedObject>::release(IndexedObject& object)
{
Uint32 index = object.index;
IndexedObject* list = freeObjects;
assert(&object == &get(index)); // Make sure that object is owned by this pool.
if (list == NULL) { // The list is empty.
freeObjects = &object;
object.next = NULL;
} else { // The list contains at least 1 element.
if (index < list->index) { // insert as first element.
freeObjects = &object;
object.next = list;
} else { // Find this object's place.
while ((list->next) != NULL && (list->next->index < index))
list = list->next;
object.next = list->next;
list->next = &object;
}
}
#ifdef DEBUG
// Sanity check to be sure that the list is correctly ordered.
for (IndexedObject* obj = freeObjects; obj != NULL; obj = obj->next)
if (obj->next != NULL)
assert(obj->index < obj->next->index);
#endif
}
// Create a new block of IndexedObjects. We will allocate the memory to
// store IndexedPool::blockSize IndexedObject and the new Array of block
// pointers.
// The newly created IndexedObjects will not be initialized.
//
template <class IndexedObject>
void IndexedPool<IndexedObject>::allocateAnotherBlock()
{
void* memory = (void *) malloc((nBlocks + 1) * sizeof(Uint32) + blockSize * sizeof(IndexedObject));
memcpy(memory, block, nBlocks * sizeof(Uint32));
block = (IndexedObject **) memory;
IndexedObject* objects = (IndexedObject *) &block[nBlocks + 1];
block[nBlocks] = &objects[-(nBlocks * blockSize)];
nBlocks++;
}
// Return the IndexedObject at the position 'index' in the pool.
//
template <class IndexedObject>
IndexedObject& IndexedPool<IndexedObject>::get(Uint32 index) const
{
Uint32 blockIndex = index / blockSize;
assert(blockIndex < nBlocks);
return block[blockIndex][index];
}
// Return the reference of an unused object in the pool.
//
template <class IndexedObject>
IndexedObject& IndexedPool<IndexedObject>::newObject()
{
if (freeObjects != NULL) {
IndexedObject& newObject = *freeObjects;
freeObjects = newObject.next;
return newObject;
}
Uint32 nextIndex = this->nextIndex++;
Uint32 blockIndex = nextIndex / blockSize;
while (blockIndex >= nBlocks)
allocateAnotherBlock();
IndexedObject& newObject = block[blockIndex][nextIndex];
newObject.index = nextIndex;
return newObject;
}
// Return the address of the next unsused object in the given
// indexed pool. The field index of the newly allocated object
// will be initialized to the corresponding index of this object
// in the pool.
//
template <class IndexedObject>
void* operator new(size_t size, IndexedPool<IndexedObject>& pool)
{
assert(size == sizeof(IndexedObject));
return (void *) &pool.newObject();
}
#endif // _INDEXED_POOL_H_

View File

@@ -0,0 +1,258 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#ifndef _INTERFERENCE_GRAPH_H_
#define _INTERFERENCE_GRAPH_H_
#include "Fundamentals.h"
#include "ControlGraph.h"
#include "Primitives.h"
#include "Instruction.h"
#include "VirtualRegister.h"
#include "RegisterPressure.h"
#include "SparseSet.h"
#include <string.h>
struct InterferenceVector
{
Uint32 count;
InterferenceVector* next;
RegisterName* neighbors;
InterferenceVector() : count(0), next(NULL) {}
};
class RegisterAllocator;
template <class RegisterPressure>
class InterferenceGraph
{
private:
RegisterAllocator& registerAllocator;
RegisterPressure::Set* interferences;
InterferenceVector** vector;
Uint32* offset;
Uint32 rangeCount;
private:
// No copy constructor.
InterferenceGraph(const InterferenceGraph&);
// No copy operator.
void operator = (const InterferenceGraph&);
// Check if reg is a member of the universe.
void checkMember(RegisterName name) {assert(name < rangeCount);}
// Return the edge index for the interference between name1 and name2.
Uint32 getEdgeIndex(RegisterName name1, RegisterName name2);
public:
InterferenceGraph(RegisterAllocator& registerAllocator) : registerAllocator(registerAllocator) {}
// Calculate the interferences.
void build();
// Return true if reg1 and reg2 interfere.
bool interfere(RegisterName name1, RegisterName name2);
// Return the interference vector for the given register or NULL if there is none.
InterferenceVector* getInterferenceVector(RegisterName name) {return vector[name];}
// Set the interference between name1 and name2.
void setInterference(RegisterName name1, RegisterName name2);
// Set the interference vector for the given register.
void setInterferenceVector(RegisterName name, InterferenceVector* v) {vector[name] = v;}
#ifdef DEBUG_LOG
// Print the interferences.
void printPretty(LogModuleObject log);
#endif // DEBUG_LOG
};
template <class RegisterPressure>
void InterferenceGraph<RegisterPressure>::build()
{
Pool& pool = registerAllocator.pool;
Uint32 rangeCount = registerAllocator.rangeCount;
this->rangeCount = rangeCount;
// Initialize the structures.
//
offset = new(pool) Uint32[rangeCount + 1];
vector = new(pool) InterferenceVector*[rangeCount];
memset(vector, '\0', sizeof(InterferenceVector*) * rangeCount);
Uint32 o = 0;
offset[0] = 0;
for (Uint32 i = 1; i <= rangeCount; ++i) {
offset[i] = o;
o += i;
}
interferences = new(pool) RegisterPressure::Set(pool, (rangeCount * rangeCount) / 2);
ControlGraph& controlGraph = registerAllocator.controlGraph;
ControlNode** nodes = controlGraph.dfsList;
Uint32 nNodes = controlGraph.nNodes;
RegisterName* name2range = registerAllocator.name2range;
LivenessInfo<RegisterPressure> liveness = Liveness<RegisterPressure>::analysis(controlGraph, rangeCount, name2range);
registerAllocator.liveness = liveness;
SparseSet currentLive(pool, rangeCount);
for (Uint32 n = 0; n < nNodes; n++) {
ControlNode& node = *nodes[n];
currentLive = liveness.liveOut[n];
InstructionList& instructions = node.getInstructions();
for (InstructionList::iterator i = instructions.end(); !instructions.done(i); i = instructions.retreat(i)) {
Instruction& instruction = instructions.get(i);
InstructionUse* useBegin = instruction.getInstructionUseBegin();
InstructionUse* useEnd = instruction.getInstructionUseEnd();
InstructionUse* usePtr;
InstructionDefine* defineBegin = instruction.getInstructionDefineBegin();
InstructionDefine* defineEnd = instruction.getInstructionDefineEnd();
InstructionDefine* definePtr;
// Handle the copy instruction to avoid unnecessary interference between the 2 registers.
if ((instruction.getFlags() & ifCopy) != 0) {
assert(useBegin != useEnd && useBegin[0].isRegister());
currentLive.clear(name2range[useBegin[0].getRegisterName()]);
}
// Create the interferences.
for (definePtr = defineBegin; definePtr < defineEnd; definePtr++)
if (definePtr->isRegister()) {
RegisterName define = name2range[definePtr->getRegisterName()];
for (SparseSet::iterator e = currentLive.begin(); !currentLive.done(e); e = currentLive.advance(e)) {
RegisterName live = RegisterName(currentLive.get(e));
if ((live != define) && !interfere(live, define) && registerAllocator.canInterfere(live, define)) {
if (vector[define] == NULL)
vector[define] = new(pool) InterferenceVector();
vector[define]->count++;
if (vector[live] == NULL)
vector[live] = new(pool) InterferenceVector();
vector[live]->count++;
setInterference(live, define);
}
}
}
// Now update the liveness.
//
for (definePtr = defineBegin; definePtr < defineEnd; definePtr++)
if (definePtr->isRegister())
currentLive.clear(name2range[definePtr->getRegisterName()]);
for (usePtr = useBegin; usePtr < useEnd; usePtr++)
if (usePtr->isRegister())
currentLive.set(name2range[usePtr->getRegisterName()]);
}
}
// Allocate the memory to store the interferences.
//
for (Uint32 e = 0; e < rangeCount; e++)
if (vector[e] != NULL) {
InterferenceVector& v = *vector[e];
v.neighbors = new(pool) RegisterName[v.count];
v.count = 0;
}
// Initialize the edges.
//
if (RegisterPressure::Set::isOrdered()) {
RegisterName name1 = RegisterName(0);
for (RegisterPressure::Set::iterator i = interferences->begin(); !interferences->done(i); i = interferences->advance(i)) {
Uint32 interferenceIndex = interferences->get(i);
while(interferenceIndex >= offset[name1 + 1])
name1 = RegisterName(name1 + 1);
assert((interferenceIndex >= offset[name1]) && (interferenceIndex < offset[name1 + 1]));
RegisterName name2 = RegisterName(interferenceIndex - offset[name1]);
assert(interfere(name1, name2));
InterferenceVector& vector1 = *vector[name1];
vector1.neighbors[vector1.count++] = name2;
InterferenceVector& vector2 = *vector[name2];
vector2.neighbors[vector2.count++] = name1;
}
} else {
trespass("not Implemented"); // FIX: need one more pass to initialize the vectors.
}
}
template <class RegisterPressure>
Uint32 InterferenceGraph<RegisterPressure>::getEdgeIndex(RegisterName name1, RegisterName name2)
{
checkMember(name1); checkMember(name2);
assert(name1 != name2); // This is not possible.
return (name1 < name2) ? offset[name2] + name1 : offset[name1] + name2;
}
template <class RegisterPressure>
void InterferenceGraph<RegisterPressure>::setInterference(RegisterName name1, RegisterName name2)
{
interferences->set(getEdgeIndex(name1, name2));
}
template <class RegisterPressure>
bool InterferenceGraph<RegisterPressure>::interfere(RegisterName name1, RegisterName name2)
{
return interferences->test(getEdgeIndex(name1, name2));
}
#ifdef DEBUG_LOG
template <class RegisterPressure>
void InterferenceGraph<RegisterPressure>::printPretty(LogModuleObject log)
{
UT_OBJECTLOG(log, PR_LOG_ALWAYS, ("Interference Vectors:\n"));
for (Uint32 i = 1; i < rangeCount; i++) {
if (vector[i] != NULL) {
UT_OBJECTLOG(log, PR_LOG_ALWAYS, ("\tvr%d: (", i));
for (InterferenceVector* v = vector[i]; v != NULL; v = v->next)
for (Uint32 j = 0; j < v->count; j++) {
UT_OBJECTLOG(log, PR_LOG_ALWAYS, ("%d", v->neighbors[j]));
if (v->next != NULL || j != (v->count - 1))
UT_OBJECTLOG(log, PR_LOG_ALWAYS, (","));
}
UT_OBJECTLOG(log, PR_LOG_ALWAYS, (")\n"));
}
}
UT_OBJECTLOG(log, PR_LOG_ALWAYS, ("Interference Matrix:\n"));
for (RegisterName name1 = RegisterName(1); name1 < rangeCount; name1 = RegisterName(name1 + 1)) {
UT_OBJECTLOG(log, PR_LOG_ALWAYS, ("\t%d:\t", name1));
for (RegisterName name2 = RegisterName(1); name2 < rangeCount; name2 = RegisterName(name2 + 1))
UT_OBJECTLOG(log, PR_LOG_ALWAYS, ("%c", ((name1 != name2) && interfere(name1, name2)) ? '1' : '0'));
UT_OBJECTLOG(log, PR_LOG_ALWAYS, ("\n"));
}
}
#endif // DEBUG_LOG
#endif // _INTERFERENCE_GRAPH_H_

View File

@@ -0,0 +1,87 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#ifndef _LIVE_RANGE_H_
#define _LIVE_RANGE_H_
#include "Fundamentals.h"
#include "ControlGraph.h"
#include "ControlNodes.h"
#include "Primitives.h"
#include "Instruction.h"
#include "RegisterAllocator.h"
#include "RegisterAllocatorTools.h"
template <class RegisterPressure>
struct LiveRange
{
static void build(RegisterAllocator& registerAllocator);
};
template <class RegisterPressure>
void LiveRange<RegisterPressure>::build(RegisterAllocator& registerAllocator)
{
// Intialize the lookup table.
//
Uint32 nameCount = registerAllocator.nameCount;
RegisterName* nameTable = new(registerAllocator.pool) RegisterName[2*nameCount];
RegisterName* rangeName = &nameTable[nameCount];
init(rangeName, nameCount);
// Walk the graph.
//
ControlGraph& controlGraph = registerAllocator.controlGraph;
ControlNode** nodes = controlGraph.dfsList;
Uint32 nNodes = controlGraph.nNodes;
SparseSet destination(registerAllocator.pool, nameCount);
for (Uint32 n = 0; n < nNodes; n++) {
InstructionList& phiNodes = nodes[n]->getPhiNodeInstructions();
destination.clear();
for (InstructionList::iterator i = phiNodes.begin(); !phiNodes.done(i); i = phiNodes.advance(i)) {
Instruction& phiNode = phiNodes.get(i);
assert(phiNode.getInstructionDefineBegin() != phiNode.getInstructionDefineEnd() && phiNode.getInstructionDefineBegin()[0].isRegister());
destination.set(findRoot(phiNode.getInstructionDefineBegin()[0].getRegisterName(), rangeName));
}
for (InstructionList::iterator p = phiNodes.begin(); !phiNodes.done(p); p = phiNodes.advance(p)) {
Instruction& phiNode = phiNodes.get(p);
assert(phiNode.getInstructionDefineBegin() != phiNode.getInstructionDefineEnd() && phiNode.getInstructionDefineBegin()[0].isRegister());
RegisterName destinationName = phiNode.getInstructionDefineBegin()[0].getRegisterName();
RegisterName destinationRoot = findRoot(destinationName, rangeName);
InstructionUse* useEnd = phiNode.getInstructionUseEnd();
for (InstructionUse* usePtr = phiNode.getInstructionUseBegin(); usePtr < useEnd; usePtr++) {
assert(usePtr->isRegister());
RegisterName sourceName = usePtr->getRegisterName();
RegisterName sourceRoot = findRoot(sourceName, rangeName);
if (sourceRoot != destinationRoot && !destination.test(sourceRoot))
rangeName[sourceRoot] = destinationRoot;
}
}
}
registerAllocator.rangeCount = compress(registerAllocator.name2range, rangeName, nameCount, nameCount);
}
#endif // _LIVE_RANGE_H_

View File

@@ -0,0 +1,163 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#ifndef _LIVE_RANGE_GRAPH_
#define _LIVE_RANGE_GRAPH_
#include "Fundamentals.h"
#include "Pool.h"
#include "ControlGraph.h"
#include "ControlNodes.h"
#include "Instruction.h"
#include "RegisterTypes.h"
class RegisterAllocator;
template <class RegisterPressure>
class LiveRangeGraph
{
private:
RegisterAllocator& registerAllocator;
RegisterPressure::Set* edges;
Uint32 rangeCount;
public:
//
//
LiveRangeGraph(RegisterAllocator& registerAllocator) : registerAllocator(registerAllocator) {}
//
//
void build();
//
//
void addEdge(RegisterName name1, RegisterName name2);
//
//
bool haveEdge(RegisterName name1, RegisterName name2);
#ifdef DEBUG_LOG
//
//
void printPretty(LogModuleObject log);
#endif // DEBUG_LOG
};
template <class RegisterPressure>
void LiveRangeGraph<RegisterPressure>::build()
{
Pool& pool = registerAllocator.pool;
Uint32 rangeCount = registerAllocator.rangeCount;
this->rangeCount = rangeCount;
edges = new(pool) RegisterPressure::Set(pool, rangeCount * rangeCount);
ControlGraph& controlGraph = registerAllocator.controlGraph;
ControlNode** nodes = controlGraph.dfsList;
Uint32 nNodes = controlGraph.nNodes;
RegisterName* name2range = registerAllocator.name2range;
LivenessInfo<RegisterPressure>& liveness = registerAllocator.liveness;
SparseSet currentLive(pool, rangeCount);
for (Uint32 n = 0; n < nNodes; n++) {
ControlNode& node = *nodes[n];
currentLive = liveness.liveOut[n];
InstructionList& instructions = node.getInstructions();
for (InstructionList::iterator i = instructions.end(); !instructions.done(i); i = instructions.retreat(i)) {
Instruction& instruction = instructions.get(i);
InstructionUse* useBegin = instruction.getInstructionUseBegin();
InstructionUse* useEnd = instruction.getInstructionUseEnd();
InstructionUse* usePtr;
InstructionDefine* defineBegin = instruction.getInstructionDefineBegin();
InstructionDefine* defineEnd = instruction.getInstructionDefineEnd();
InstructionDefine* definePtr;
if ((instruction.getFlags() & ifCopy) != 0) {
assert(useBegin != useEnd && useBegin[0].isRegister());
currentLive.clear(name2range[useBegin[0].getRegisterName()]);
}
for (definePtr = defineBegin; definePtr < defineEnd; definePtr++)
if (definePtr->isRegister()) {
RegisterName define = name2range[definePtr->getRegisterName()];
for (SparseSet::iterator l = currentLive.begin(); !currentLive.done(l); l = currentLive.advance(l)) {
RegisterName live = RegisterName(currentLive.get(l));
if (define != live && registerAllocator.canInterfere(define, live))
addEdge(define, live);
}
}
for (definePtr = defineBegin; definePtr < defineEnd; definePtr++)
if (definePtr->isRegister())
currentLive.clear(name2range[definePtr->getRegisterName()]);
for (usePtr = useBegin; usePtr < useEnd; usePtr++)
if (usePtr->isRegister())
currentLive.set(name2range[usePtr->getRegisterName()]);
for (usePtr = useBegin; usePtr < useEnd; usePtr++)
if (usePtr->isRegister()) {
RegisterName use = name2range[usePtr->getRegisterName()];
for (SparseSet::iterator l = currentLive.begin(); !currentLive.done(l); l = currentLive.advance(l)) {
RegisterName live = RegisterName(currentLive.get(l));
if (use != live && registerAllocator.canInterfere(use, live))
addEdge(use, live);
}
}
}
}
}
template <class RegisterPressure>
void LiveRangeGraph<RegisterPressure>::addEdge(RegisterName name1, RegisterName name2)
{
assert(name1 != name2);
edges->set(name1 * rangeCount + name2);
}
template <class RegisterPressure>
bool LiveRangeGraph<RegisterPressure>::haveEdge(RegisterName name1, RegisterName name2)
{
assert(name1 != name2);
return edges->test(name1 * rangeCount + name2);
}
#ifdef DEBUG_LOG
template <class RegisterPressure>
void LiveRangeGraph<RegisterPressure>::printPretty(LogModuleObject log)
{
UT_OBJECTLOG(log, PR_LOG_ALWAYS, ("Live ranges graph:\n"));
for (RegisterName name1 = RegisterName(1); name1 < rangeCount; name1 = RegisterName(name1 + 1)) {
UT_OBJECTLOG(log, PR_LOG_ALWAYS, ("\t%d:\t", name1));
for (RegisterName name2 = RegisterName(1); name2 < rangeCount; name2 = RegisterName(name2 + 1))
UT_OBJECTLOG(log, PR_LOG_ALWAYS, ("%c", ((name1 != name2) && haveEdge(name1, name2)) ? '1' : '0'));
UT_OBJECTLOG(log, PR_LOG_ALWAYS, ("\n"));
}
}
#endif // DEBUG_LOG
#endif // _LIVE_RANGE_GRAPH_

View File

@@ -0,0 +1,21 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#include "Fundamentals.h"
#include "Liveness.h"

View File

@@ -0,0 +1,301 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#ifndef _LIVENESS_H_
#define _LIVENESS_H_
#include "Fundamentals.h"
#include "ControlGraph.h"
#include "ControlNodes.h"
#include "Instruction.h"
#include "RegisterTypes.h"
// ----------------------------------------------------------------------------
// LivenessInfo -
template <class RegisterPressure>
struct LivenessInfo
{
RegisterPressure::Set* liveIn;
RegisterPressure::Set* liveOut;
DEBUG_LOG_ONLY(Uint32 size);
#ifdef DEBUG_LOG
void printPretty(LogModuleObject log);
#endif // DEBUG_LOG
};
// ----------------------------------------------------------------------------
// Liveness
//
// The liveness is defined by the following data-flow equations:
//
// LiveIn(n) = LocalLive(n) U (LiveOut(n) - Killed(n)).
// LiveOut(n) = U LiveIn(s) (s a successor of n).
//
// where LocalLive(n) is the set of used registers in the block n, Killed(n)
// is the set of defined registers in the block n, LiveIn(n) is the set of
// live registers at the begining of the block n and LiveOut(n) is the set
// of live registers at the end of the block n.
//
//
// We will compute the liveness analysis in two stages:
//
// 1- Build LocalLive(n) (wich is an approximation of LiveIn(n)) and Killed(n)
// for each block n.
// 2- Perform a backward data-flow analysis to propagate the liveness information
// through the entire control-flow graph.
//
template <class RegisterPressure>
struct Liveness
{
static LivenessInfo<RegisterPressure> analysis(ControlGraph& controlGraph, Uint32 rangeCount, const RegisterName* name2range);
static LivenessInfo<RegisterPressure> analysis(ControlGraph& controlGraph, Uint32 nameCount);
};
template <class RegisterPressure>
LivenessInfo<RegisterPressure> Liveness<RegisterPressure>::analysis(ControlGraph& controlGraph, Uint32 rangeCount, const RegisterName* name2range)
{
Pool& pool = controlGraph.pool;
ControlNode** nodes = controlGraph.dfsList;
Uint32 nNodes = controlGraph.nNodes;
// Allocate the temporary sets.
RegisterPressure::Set* killed = new(pool) RegisterPressure::Set[nNodes](pool, rangeCount);
// Allocate the globals sets.
RegisterPressure::Set* liveIn = new(pool) RegisterPressure::Set[nNodes](pool, rangeCount);
RegisterPressure::Set* liveOut = new(pool) RegisterPressure::Set[nNodes](pool, rangeCount);
// First stage of the liveness analysis: Compute the sets LocalLive(stored in LiveIn) and Killed.
//
for (Uint32 n = 0; n < (nNodes - 1); n++) {
ControlNode& node = *nodes[n];
RegisterPressure::Set& currentLocalLive = liveIn[n];
RegisterPressure::Set& currentKilled = killed[n];
// Find the instructions contributions to the sets LocalLive and Killed.
//
InstructionList& instructions = node.getInstructions();
for (InstructionList::iterator i = instructions.begin(); !instructions.done(i); i = instructions.advance(i)) {
Instruction& instruction = instructions.get(i);
// If a VirtualRegister is 'used' before being 'defined' then we add it to set LocalLive.
InstructionUse* useEnd = instruction.getInstructionUseEnd();
for (InstructionUse* usePtr = instruction.getInstructionUseBegin(); usePtr < useEnd; usePtr++)
if (usePtr->isRegister()) {
Uint32 index = name2range[usePtr->getRegisterName()];
if (!currentKilled.test(index))
currentLocalLive.set(index);
}
// If a Virtualregister is 'defined' then we add it to the set Killed.
InstructionDefine* defineEnd = instruction.getInstructionDefineEnd();
for (InstructionDefine* definePtr = instruction.getInstructionDefineBegin(); definePtr < defineEnd; definePtr++)
if (definePtr->isRegister())
currentKilled.set(name2range[definePtr->getRegisterName()]);
}
}
// Second stage of the liveness analysis: We propagate the LiveIn & LiveOut through the entire
// control-flow graph.
//
RegisterPressure::Set temp(pool, rangeCount);
bool changed;
do {
changed = false;
// For all nodes is this graph except the endNode.
for (Int32 n = (nNodes - 2); n >= 0; n--) {
ControlNode& node = *nodes[n];
RegisterPressure::Set& currentLiveIn = liveIn[n];
RegisterPressure::Set& currentLiveOut = liveOut[n];
// Compute temp = Union of LiveIn(s) (s a successor of this node) | usedByPhiNodes(n).
// temp will be the new LiveOut(n).
Uint32 nSuccessors = node.nSuccessors();
if (nSuccessors != 0) {
temp = liveIn[node.nthSuccessor(0).getTarget().dfsNum];
for (Uint32 s = 1; s < nSuccessors; s++)
temp |= liveIn[node.nthSuccessor(s).getTarget().dfsNum];
} else
temp.clear();
// If temp and LiveOut(n) differ then set LiveOut(n) = temp and recalculate the
// new LiveIn(n).
if (currentLiveOut != temp) {
currentLiveOut = temp;
temp -= killed[n]; // FIX: could be optimized with one call to unionDiff !
temp |= currentLiveIn;
if (currentLiveIn != temp) {
currentLiveIn = temp;
changed = true;
}
}
}
} while(changed);
LivenessInfo<RegisterPressure> liveness;
liveness.liveIn = liveIn;
liveness.liveOut = liveOut;
DEBUG_LOG_ONLY(liveness.size = nNodes);
return liveness;
}
template <class RegisterPressure>
LivenessInfo<RegisterPressure> Liveness<RegisterPressure>::analysis(ControlGraph& controlGraph, Uint32 nameCount)
{
Pool& pool = controlGraph.pool;
ControlNode** nodes = controlGraph.dfsList;
Uint32 nNodes = controlGraph.nNodes;
// Allocate the temporary sets.
RegisterPressure::Set* killed = new(pool) RegisterPressure::Set[nNodes](pool, nameCount);
RegisterPressure::Set* usedByPhiNodes = NULL;
// Allocate the globals sets.
RegisterPressure::Set* liveIn = new(pool) RegisterPressure::Set[nNodes](pool, nameCount);
RegisterPressure::Set* liveOut = new(pool) RegisterPressure::Set[nNodes](pool, nameCount);
// First stage of the liveness analysis: Compute the sets LocalLive(stored in LiveIn) and Killed.
//
for (Uint32 n = 0; n < (nNodes - 1); n++) {
ControlNode& node = *nodes[n];
RegisterPressure::Set& currentLocalLive = liveIn[n];
RegisterPressure::Set& currentKilled = killed[n];
InstructionList& phiNodes = node.getPhiNodeInstructions();
if ((usedByPhiNodes == NULL) && !phiNodes.empty())
usedByPhiNodes = new(pool) RegisterPressure::Set[nNodes](pool, nameCount);
for (InstructionList::iterator p = phiNodes.begin(); !phiNodes.done(p); p = phiNodes.advance(p)) {
Instruction& phiNode = phiNodes.get(p);
InstructionDefine& define = phiNode.getInstructionDefineBegin()[0];
currentKilled.set(define.getRegisterName());
typedef DoublyLinkedList<ControlEdge> ControlEdgeList;
const ControlEdgeList& predecessors = node.getPredecessors();
ControlEdgeList::iterator p = predecessors.begin();
InstructionUse* useEnd = phiNode.getInstructionUseEnd();
for (InstructionUse* usePtr = phiNode.getInstructionUseBegin(); usePtr < useEnd; usePtr++, p = predecessors.advance(p))
if (usePtr->isRegister())
usedByPhiNodes[predecessors.get(p).getSource().dfsNum].set(usePtr->getRegisterName());
}
// Find the instructions contributions to the sets LocalLive and Killed.
//
InstructionList& instructions = node.getInstructions();
for (InstructionList::iterator i = instructions.begin(); !instructions.done(i); i = instructions.advance(i)) {
Instruction& instruction = instructions.get(i);
// If a VirtualRegister is 'used' before being 'defined' then we add it to set LocalLive.
InstructionUse* useEnd = instruction.getInstructionUseEnd();
for (InstructionUse* usePtr = instruction.getInstructionUseBegin(); usePtr < useEnd; usePtr++)
if (usePtr->isRegister()) {
Uint32 index = usePtr->getRegisterName();
if (!currentKilled.test(index))
currentLocalLive.set(index);
}
// If a Virtualregister is 'defined' then we add it to the set Killed.
InstructionDefine* defineEnd = instruction.getInstructionDefineEnd();
for (InstructionDefine* definePtr = instruction.getInstructionDefineBegin(); definePtr < defineEnd; definePtr++)
if (definePtr->isRegister())
currentKilled.set(definePtr->getRegisterName());
}
}
// Second stage of the liveness analysis: We propagate the LiveIn & LiveOut through the entire
// control-flow graph.
//
RegisterPressure::Set temp(pool, nameCount);
bool changed;
do {
changed = false;
// For all nodes is this graph except the endNode.
for (Int32 n = (nNodes - 2); n >= 0; n--) {
ControlNode& node = *nodes[n];
RegisterPressure::Set& currentLiveIn = liveIn[n];
RegisterPressure::Set& currentLiveOut = liveOut[n];
// Compute temp = Union of LiveIn(s) (s a successor of this node) | usedByPhiNodes(n).
// temp will be the new LiveOut(n).
Uint32 nSuccessors = node.nSuccessors();
if (nSuccessors != 0) {
temp = liveIn[node.nthSuccessor(0).getTarget().dfsNum];
for (Uint32 s = 1; s < nSuccessors; s++)
temp |= liveIn[node.nthSuccessor(s).getTarget().dfsNum];
} else
temp.clear();
// Insert the phiNodes contribution.
if (usedByPhiNodes != NULL)
temp |= usedByPhiNodes[n];
// If temp and LiveOut(n) differ then set LiveOut(n) = temp and recalculate the
// new LiveIn(n).
if (currentLiveOut != temp) {
currentLiveOut = temp;
temp -= killed[n]; // FIX: could be optimized with one call to unionDiff !
temp |= currentLiveIn;
if (currentLiveIn != temp) {
currentLiveIn = temp;
changed = true;
}
}
}
} while(changed);
LivenessInfo<RegisterPressure> liveness;
liveness.liveIn = liveIn;
liveness.liveOut = liveOut;
DEBUG_LOG_ONLY(liveness.size = nNodes);
return liveness;
}
#ifdef DEBUG_LOG
template <class RegisterPressure>
void LivenessInfo<RegisterPressure>::printPretty(LogModuleObject log)
{
for (Uint32 n = 0; n < size; n++) {
UT_OBJECTLOG(log, PR_LOG_ALWAYS, ("Node N%d:\n\tliveIn = ", n));
liveIn[n].printPretty(log);
UT_OBJECTLOG(log, PR_LOG_ALWAYS, ("\tliveOut = "));
liveOut[n].printPretty(log);
UT_OBJECTLOG(log, PR_LOG_ALWAYS, ("\n"));
}
}
#endif // DEBUG_LOG
#endif // _LIVENESS_H_

View File

@@ -0,0 +1,40 @@
#! gmake
DEPTH = ../..
MODULE_NAME = RegisterAllocator
include $(DEPTH)/config/config.mk
INCLUDES += \
-I$(DEPTH)/Utilities/General \
-I$(DEPTH)/Utilities/zlib \
-I$(DEPTH)/Runtime/ClassReader \
-I$(DEPTH)/Runtime/NativeMethods \
-I$(DEPTH)/Runtime/System \
-I$(DEPTH)/Runtime/ClassInfo \
-I$(DEPTH)/Runtime/FileReader \
-I$(DEPTH)/Compiler/PrimitiveGraph \
-I$(DEPTH)/Compiler/FrontEnd \
-I$(DEPTH)/Compiler/Optimizer \
-I$(DEPTH)/Compiler/CodeGenerator \
-I$(DEPTH)/Compiler/CodeGenerator/md \
-I$(DEPTH)/Compiler/CodeGenerator/md/$(CPU_ARCH) \
-I$(DEPTH)/Compiler/RegisterAllocator \
-I$(DEPTH)/Driver/StandAloneJava \
-I$(DEPTH)/Debugger \
$(NULL)
CXXSRCS = \
RegisterAllocator.cpp \
RegisterAllocatorTools.cpp \
DominatorGraph.cpp \
VirtualRegister.cpp \
BitSet.cpp \
SparseSet.cpp \
$(NULL)
include $(DEPTH)/config/rules.mk
libs:: $(MODULE)

View File

@@ -0,0 +1,392 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#ifndef _PHI_NODE_REMOVER_H_
#define _PHI_NODE_REMOVER_H_
#include "Fundamentals.h"
#include "Pool.h"
#include "ControlGraph.h"
#include "DominatorGraph.h"
#include "VirtualRegister.h"
#include "RegisterPressure.h"
#include "Liveness.h"
#include "Instruction.h"
#include "InstructionEmitter.h"
#include "SparseSet.h"
#include <string.h>
//------------------------------------------------------------------------------
// RegisterNameNode -
struct RegisterNameNode
{
RegisterNameNode* next;
RegisterName newName;
Uint32 nextPushed;
};
//------------------------------------------------------------------------------
// CopyData -
struct CopyData
{
RegisterName source;
RegisterClassKind classKind;
Uint32 useCount;
bool isLiveOut;
RegisterName sourceNameToUse;
RegisterName temporaryName;
RegisterNameNode* newName;
};
//------------------------------------------------------------------------------
// PhiNodeRemover<RegisterPressure> -
template <class RegisterPressure>
struct PhiNodeRemover
{
// Replace the phi nodes by copy instructions.
static void replacePhiNodes(ControlGraph& controlGraph, VirtualRegisterManager& vrManager, InstructionEmitter& emitter);
};
// Split some of the critical edges and return true if there are still some
// in the graph after that.
//
static bool splitCriticalEdges(ControlGraph& /*cg*/)
{
// FIX: not implemented.
return true;
}
inline void pushName(Pool& pool, RegisterNameNode** stack, SparseSet& pushed, Uint32* nodeListPointer, RegisterName oldName, RegisterName newName)
{
RegisterNameNode& newNode = *new(pool) RegisterNameNode();
if (pushed.test(oldName))
(*stack)->newName = newName;
else {
newNode.newName = newName;
newNode.nextPushed = *nodeListPointer;
*nodeListPointer = oldName;
newNode.next = *stack;
*stack = &newNode;
pushed.set(oldName);
}
}
template <class RegisterPressure>
void PhiNodeRemover<RegisterPressure>::replacePhiNodes(ControlGraph& controlGraph, VirtualRegisterManager& vrManager, InstructionEmitter& emitter)
{
Pool& pool = controlGraph.pool;
ControlNode** nodes = controlGraph.dfsList;
Uint32 nNodes = controlGraph.nNodes;
// Initialize the local variables.
//
// When we insert the copies we will also need to create new VirtualRegisters for
// the insertion of temporaries. The maximum number of temporary register will not
// exceed the number of phiNodes in the primitive graph.
Uint32 nameCount = vrManager.getSize();
Uint32 maxNameCount = nameCount;
for (Uint32 n = 0; n < nNodes; n++)
maxNameCount += nodes[n]->getPhiNodes().length();
// If the CFG contains some critical edges (backward edge which source has more than one
// outgoing edge and destination has more than one incomimg edge) then we need the liveness
// information to be able to insert temporary copies.
RegisterPressure::Set* liveOut = NULL;
if (splitCriticalEdges(controlGraph))
liveOut = Liveness<LowRegisterPressure>::analysis(controlGraph, nameCount).liveOut;
DominatorGraph dGraph(controlGraph);
SparseSet pushed(pool, maxNameCount);
SparseSet destinationList(pool, maxNameCount);
SparseSet workList(pool, maxNameCount);
CopyData* copyStats = new(pool) CopyData[maxNameCount];
memset(copyStats, '\0', maxNameCount*sizeof(CopyData));
struct NodeStack {
Uint32* next;
Uint32* limit;
Uint32 pushedList;
};
// Allocate the node stack and initialize the node stack pointer.
NodeStack* nodeStack = new(pool) NodeStack[nNodes + 1];
NodeStack* nodeStackPtr = nodeStack;
// We start by the begin node.
Uint32 startNode = 0;
Uint32* next = &startNode;
Uint32* limit = &startNode + 1;
while (true) {
if (next == limit) {
// If there are no more node in the sibling, we have to pop the current
// frame from the stack and update the copyStats of the pushed nodes.
//
if (nodeStackPtr == nodeStack)
// We are at the bottom of the stack and there are no more nodes
// to look at. We are done !
break;
--nodeStackPtr;
// We are done with all the children of this node in the dominator tree.
// We need to update the copy information of all the new names pushed
// during the walk over this node.
Uint32 pushedList = nodeStackPtr->pushedList;
while (pushedList != 0) {
Uint32 nextName = copyStats[pushedList].newName->nextPushed;
copyStats[pushedList].newName = copyStats[pushedList].newName->next;
pushedList = nextName;
}
// restore the previous frame.
next = nodeStackPtr->next;
limit = nodeStackPtr->limit;
} else {
Uint32 currentNode = *next++;
Uint32 pushedList = 0;
// Initialize the sets.
pushed.clear();
destinationList.clear();
// STEP1:
// Walk the instruction list and to replace all the instruction uses with their new name.
// If the instruction is a phi node and its defined register is alive at the end of this
// block then we push the defined register into the stack.
//
ControlNode& node = *nodes[currentNode];
RegisterPressure::Set* currentLiveOut = (liveOut != NULL) ? &liveOut[currentNode] : (RegisterPressure::Set*) 0;
InstructionList& phiNodes = node.getPhiNodeInstructions();
for (InstructionList::iterator p = phiNodes.begin(); !phiNodes.done(p); p = phiNodes.advance(p)) {
Instruction& phiNode = phiNodes.get(p);
InstructionUse* useEnd = phiNode.getInstructionUseEnd();
for (InstructionUse* usePtr = phiNode.getInstructionUseBegin(); usePtr < useEnd; usePtr++) {
assert(usePtr->isRegister());
RegisterName name = usePtr->getRegisterName();
if (copyStats[name].newName != NULL && copyStats[name].newName->newName != name)
usePtr->setRegisterName(copyStats[name].newName->newName);
}
if (currentLiveOut != NULL) {
// This is a phi node and we have to push its defined name if it is live
// at the end of the node. We only need to do this if the CFG has critical edges.
assert(phiNode.getInstructionDefineBegin() != phiNode.getInstructionDefineEnd() && phiNode.getInstructionDefineBegin()[0].isRegister());
RegisterName name = phiNode.getInstructionDefineBegin()[0].getRegisterName();
if (currentLiveOut->test(name))
pushName(pool, &(copyStats[name].newName), pushed, &pushedList, name, name);
}
}
InstructionList& instructions = node.getInstructions();
for (InstructionList::iterator i = instructions.begin(); !instructions.done(i); i = instructions.advance(i)) {
Instruction& instruction = instructions.get(i);
InstructionUse* useEnd = instruction.getInstructionUseEnd();
for (InstructionUse* usePtr = instruction.getInstructionUseBegin(); usePtr < useEnd; usePtr++)
if (usePtr->isRegister()) {
RegisterName name = usePtr->getRegisterName();
if (copyStats[name].newName != NULL && copyStats[name].newName->newName != name)
usePtr->setRegisterName(copyStats[name].newName->newName);
}
}
// STEP2:
// Look at this node's successors' phiNodes. We keep track of the number of time
// a VR will be used by another copy instruction and insert each definition into the
// destinationList. This is the only pass over this node's successors as we will
// get all the information we need in the CopyData structures.
//
ControlEdge* successorEdgeEnd = node.getSuccessorsEnd();
for (ControlEdge* successorEdgePtr = node.getSuccessorsBegin(); successorEdgePtr < successorEdgeEnd; successorEdgePtr++) {
Uint32 useIndex = successorEdgePtr->getIndex();
ControlNode& successor = successorEdgePtr->getTarget();
// Look at its phi nodes. The phi nodes are at the top of the instruction list. We exit
// as soon as we find an instruction which is not a phi node
InstructionList& phiNodes = successor.getPhiNodeInstructions();
for (InstructionList::iterator p = phiNodes.begin(); !phiNodes.done(p); p = phiNodes.advance(p)) {
Instruction& phiNode = phiNodes.get(p);
assert((phiNode.getInstructionUseBegin() + useIndex) < phiNode.getInstructionUseEnd());
assert(phiNode.getInstructionDefineBegin() != phiNode.getInstructionDefineEnd());
InstructionUse& source = phiNode.getInstructionUseBegin()[useIndex];
InstructionDefine& destination = phiNode.getInstructionDefineBegin()[0];
assert(source.isRegister() && destination.isRegister());
RegisterName sourceName = source.getRegisterName();
RegisterName destinationName = destination.getRegisterName();
// Get the correct name for the source.
if (copyStats[sourceName].newName != NULL)
sourceName = copyStats[sourceName].newName->newName;
// Update the CopyData structures.
if ((sourceName != rnInvalid) && (sourceName != destinationName)) {
copyStats[destinationName].source = sourceName;
copyStats[destinationName].classKind = destination.getRegisterClass();
copyStats[destinationName].isLiveOut = (currentLiveOut != NULL) ? currentLiveOut->test(destinationName) : false;
copyStats[destinationName].sourceNameToUse = destinationName;
copyStats[sourceName].sourceNameToUse = sourceName;
copyStats[sourceName].useCount++;
destinationList.set(destinationName);
}
}
}
// STEP3:
// Insert into the worklist only the destination registers that will be not used in
// another copy instruction in this block.
//
assert(workList.getSize() == 0);
for (SparseSet::iterator d = destinationList.begin(); !destinationList.done(d); d = destinationList.advance(d)) {
Uint32 dest = destinationList.get(d);
if (copyStats[dest].useCount == 0)
workList.set(dest);
}
// STEP4:
// Insert the copy instructions.
//
Uint32 destinationListSize = destinationList.getSize();
InstructionList::iterator endOfTheNode = instructions.end();
// Find the right place to insert the copy instructions.
if (destinationListSize != 0)
while (instructions.get(endOfTheNode).getFlags() & ifControl)
endOfTheNode = instructions.retreat(endOfTheNode);
while (destinationListSize != 0) {
while(workList.getSize()) {
RegisterName destinationName = RegisterName(workList.getOne());
RegisterName sourceName = copyStats[destinationName].source;
workList.clear(destinationName);
if (copyStats[destinationName].isLiveOut && !copyStats[destinationName].temporaryName) {
// Lost copy problem.
copyStats[destinationName].isLiveOut = false;
RegisterName sourceName = destinationName;
RegisterClassKind classKind = copyStats[sourceName].classKind;
RegisterName destinationName = getName(vrManager.newVirtualRegister(classKind));
assert(destinationName < maxNameCount);
copyStats[destinationName].classKind = classKind;
copyStats[sourceName].useCount = 0;
// We need to insert a copy to a temporary register to keep the
// source register valid at the end of the node defining it.
// This copy will be inserted right after the phi node defining it.
RegisterName from = copyStats[sourceName].sourceNameToUse;
Instruction* definingPhiNode = vrManager.getVirtualRegister(from).getDefiningInstruction();
assert(definingPhiNode && (definingPhiNode->getFlags() & ifPhiNode) != 0);
RegisterID fromID = buildRegisterID(from, classKind);
RegisterID toID = buildRegisterID(destinationName, classKind);
Instruction& copy = emitter.newCopy(*definingPhiNode->getPrimitive(), fromID, toID);
vrManager.getVirtualRegister(destinationName).setDefiningInstruction(copy);
definingPhiNode->getPrimitive()->getContainer()->getInstructions().addFirst(copy);
copyStats[sourceName].temporaryName = destinationName;
copyStats[sourceName].sourceNameToUse = destinationName;
pushName(pool, &(copyStats[sourceName].newName), pushed, &pushedList, sourceName, destinationName);
}
// Insert the copy instruction at the end of the current node.
RegisterName from = copyStats[sourceName].sourceNameToUse;
RegisterClassKind classKind = copyStats[destinationName].classKind;
RegisterID fromID = buildRegisterID(from, classKind);
RegisterID toID = buildRegisterID(destinationName, classKind);
Instruction& copy = emitter.newCopy(*vrManager.getVirtualRegister(from).getDefiningInstruction()->getPrimitive(), fromID, toID);
instructions.insertAfter(copy, endOfTheNode);
endOfTheNode = instructions.advance(endOfTheNode);
copyStats[sourceName].useCount = 0;
if (destinationList.test(sourceName) && copyStats[sourceName].isLiveOut)
pushName(pool, &(copyStats[sourceName].newName), pushed, &pushedList, sourceName, destinationName);
copyStats[sourceName].isLiveOut = false;
copyStats[sourceName].sourceNameToUse = destinationName;
if (destinationList.test(sourceName))
workList.set(sourceName);
destinationList.clear(destinationName);
}
destinationListSize = destinationList.getSize();
if (destinationListSize != 0) {
RegisterName sourceName = RegisterName(destinationList.getOne());
RegisterName destinationName;
if (!copyStats[sourceName].temporaryName) {
// Cycle problem.
RegisterClassKind classKind = copyStats[sourceName].classKind;
destinationName = getName(vrManager.newVirtualRegister(classKind));
assert(destinationName < maxNameCount);
copyStats[destinationName].classKind = classKind;
copyStats[sourceName].temporaryName = destinationName;
// Insert the copy instruction at the end of the current node.
RegisterName from = copyStats[sourceName].sourceNameToUse;
RegisterID fromID = buildRegisterID(from, classKind);
RegisterID toID = buildRegisterID(destinationName, classKind);
Instruction& copy = emitter.newCopy(*vrManager.getVirtualRegister(from).getDefiningInstruction()->getPrimitive(), fromID, toID);
vrManager.getVirtualRegister(destinationName).setDefiningInstruction(copy);
instructions.insertAfter(copy, endOfTheNode);
endOfTheNode = instructions.advance(endOfTheNode);
} else
destinationName = copyStats[sourceName].temporaryName;
copyStats[sourceName].useCount = 0;
copyStats[sourceName].isLiveOut = false;
copyStats[sourceName].sourceNameToUse = destinationName;
pushName(pool, &(copyStats[sourceName].newName), pushed, &pushedList, sourceName, destinationName);
workList.set(sourceName);
}
}
nodeStackPtr->pushedList = pushedList;
nodeStackPtr->next = next;
nodeStackPtr->limit = limit;
++nodeStackPtr;
next = dGraph.getSuccessorsBegin(currentNode);
limit = dGraph.getSuccessorsEnd(currentNode);
}
}
}
#endif // _PHI_NODE_REMOVER_H_

View File

@@ -0,0 +1,155 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#include "Fundamentals.h"
#include "LogModule.h"
#include "RegisterAllocator.h"
#include "RegisterPressure.h"
#include "RegisterAllocatorTools.h"
#include "PhiNodeRemover.h"
#include "LiveRange.h"
#include "Liveness.h"
#include "InterferenceGraph.h"
#include "LiveRangeGraph.h"
#include "Coalescing.h"
#include "Spilling.h"
#include "Coloring.h"
#include "Splits.h"
class Pool;
class ControlGraph;
class VirtualRegisterManager;
class InstructionEmitter;
UT_DEFINE_LOG_MODULE(RegAlloc);
void RegisterAllocator::allocateRegisters(Pool& pool, ControlGraph& controlGraph, VirtualRegisterManager& vrManager, InstructionEmitter& emitter)
{
// Insert the phi node instructions. We want to do this to have a single defined register per instruction.
// If we keep the PhiNode (as a DataNode) and a PhiNode is of DoubleWordKind then we have to execute
// some special code for the high word annotation.
//
RegisterAllocatorTools::insertPhiNodeInstructions(controlGraph, emitter);
// Perform some tests on the instruction graph.
//
DEBUG_ONLY(RegisterAllocatorTools::testTheInstructionGraph(controlGraph, vrManager));
// Replace the phi node instructions by their equivalent copy instructions.
//
PhiNodeRemover<LowRegisterPressure>::replacePhiNodes(controlGraph, vrManager, emitter);
// Do the register allocation.
//
RegisterAllocator registerAllocator(pool, controlGraph, vrManager, emitter);
registerAllocator.doGraphColoring();
}
void RegisterAllocator::doGraphColoring()
{
// Initialize the liverange map.
//
initLiveRanges();
// Build the live ranges. We do this to compress the number of RegisterNames
// used in the insterference graph.
//
LiveRange<LowRegisterPressure>::build(*this);
// Remove unnecessary copies.
//
RegisterAllocatorTools::removeUnnecessaryCopies(*this);
for (Uint8 loop = 0; loop < 10; loop++) {
UT_OBJECTLOG(UT_LOG_MODULE(RegAlloc), PR_LOG_ALWAYS, ("********* RegisterAllocator loop %d *********\n", loop));
while(true) {
// Build the interference graph.
//
iGraph.build();
// Coalesce the copy instructions.
//
if (!Coalescing<LowRegisterPressure>::coalesce(*this))
break;
}
// Print the interference graph.
//
DEBUG_LOG_ONLY(iGraph.printPretty(UT_LOG_MODULE(RegAlloc)));
// Calculate the spill costs.
//
Spilling<LowRegisterPressure>::calculateSpillCosts(*this);
DEBUG_LOG_ONLY(RegisterAllocatorTools::printSpillCosts(*this));
// Calculate the split costs.
//
Splits<LowRegisterPressure>::calculateSplitCosts(*this);
DEBUG_LOG_ONLY(RegisterAllocatorTools::printSplitCosts(*this));
// Build the live range graph.
//
lGraph.build();
DEBUG_LOG_ONLY(lGraph.printPretty(UT_LOG_MODULE(RegAlloc)));
// Color the graph. If it succeeds then we're done with the
// register allocation.
//
if (Coloring<LowRegisterPressure>::color(*this)) {
// Write the final colors in the instruction graph.
//
Coloring<LowRegisterPressure>::finalColoring(*this);
UT_OBJECTLOG(UT_LOG_MODULE(RegAlloc), PR_LOG_ALWAYS, ("********** RegisterAllocator done **********\n"));
DEBUG_LOG_ONLY(RegisterAllocatorTools::printInstructions(*this));
return;
}
// We need to spill some registers.
//
Spilling<LowRegisterPressure>::insertSpillCode(*this);
// Insert the split instructions.
//
Splits<LowRegisterPressure>::insertSplitCode(*this);
// Update the live ranges.
//
// FIX
}
#ifdef DEBUG_LOG
RegisterAllocatorTools::updateInstructionGraph(*this);
RegisterAllocatorTools::printInstructions(*this);
#endif
fprintf(stderr, "!!! Coloring failed after 10 loops !!!\n");
abort();
}
void RegisterAllocator::initLiveRanges()
{
Uint32 count = this->nameCount;
RegisterName* name2range = new(pool) RegisterName[nameCount];
for (RegisterName r = RegisterName(1); r < count; r = RegisterName(r + 1))
name2range[r] = r;
this->name2range = name2range;
rangeCount = count;
}

View File

@@ -0,0 +1,88 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#ifndef _REGISTER_ALLOCATOR_H_
#define _REGISTER_ALLOCATOR_H_
class Pool;
class ControlGraph;
class InstructionEmitter;
struct SpillCost;
struct SplitCost;
#include "Liveness.h"
#include "VirtualRegister.h"
#include "RegisterPressure.h" // This should included by Backend.cpp
#include "InterferenceGraph.h"
#include "LiveRangeGraph.h"
//template <class RegisterPressure>
class RegisterAllocator
{
public:
Pool& pool; //
ControlGraph& controlGraph; //
VirtualRegisterManager& vrManager; //
InstructionEmitter& emitter; //
RegisterName* name2range; //
RegisterName* color; //
SpillCost* spillCost; //
SparseSet* willSpill; //
SplitCost* splitCost; //
NameLinkedList** splitAround; //
InterferenceGraph<LowRegisterPressure> iGraph; //
LiveRangeGraph<LowRegisterPressure> lGraph; //
LivenessInfo<LowRegisterPressure> liveness; //
Uint32 nameCount; //
Uint32 rangeCount; //
bool splitFound; //
private:
//
//
void doGraphColoring();
public:
//
//
inline RegisterAllocator(Pool& pool, ControlGraph& controlGraph, VirtualRegisterManager& vrManager, InstructionEmitter& emitter);
//
//
bool canInterfere(RegisterName /*name1*/, RegisterName /*name2*/) const {return true;}
//
//
void initLiveRanges();
//
//
static void allocateRegisters(Pool& pool, ControlGraph& controlGraph, VirtualRegisterManager& vrManager, InstructionEmitter& emitter);
};
//
//
inline RegisterAllocator::RegisterAllocator(Pool& pool, ControlGraph& controlGraph, VirtualRegisterManager& vrManager, InstructionEmitter& emitter)
: pool(pool), controlGraph(controlGraph), vrManager(vrManager), emitter(emitter), iGraph(*this), lGraph(*this), nameCount(vrManager.getSize()) {}
#endif // _REGISTER_ALLOCATOR_H_

View File

@@ -0,0 +1,355 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#include "Fundamentals.h"
#include "LogModule.h"
#include "RegisterAllocatorTools.h"
#include "Pool.h"
#include "ControlGraph.h"
#include "ControlNodes.h"
#include "Primitives.h"
#include "InstructionEmitter.h"
#include "Instruction.h"
#include "RegisterAllocator.h"
#include "Spilling.h"
#include "Splits.h"
#include "BitSet.h"
UT_EXTERN_LOG_MODULE(RegAlloc);
#ifdef DEBUG
void RegisterAllocatorTools::testTheInstructionGraph(ControlGraph& controlGraph, VirtualRegisterManager& vrManager)
{
// Test the declared VirtualRegisters. The register allocator tries to condense the register universe.
// Any gap in the VirtualRegister names will be a loss of efficiency !!!!
Uint32 nameCount = vrManager.getSize();
BitSet registerSeen(controlGraph.pool, nameCount);
ControlNode** nodes = controlGraph.dfsList;
Uint32 nNodes = controlGraph.nNodes;
for (Uint32 n = 0; n < nNodes; n++) {
InstructionList& instructions = nodes[n]->getInstructions();
for (InstructionList::iterator i = instructions.begin(); !instructions.done(i); i = instructions.advance(i)) {
Instruction& instruction = instructions.get(i);
InstructionUse* useEnd = instruction.getInstructionUseEnd();
for (InstructionUse* usePtr = instruction.getInstructionUseBegin(); usePtr < useEnd; usePtr++)
if (usePtr->isRegister())
registerSeen.set(usePtr->getRegisterName());
InstructionDefine* defineEnd = instruction.getInstructionDefineEnd();
for (InstructionDefine* definePtr = instruction.getInstructionDefineBegin(); definePtr < defineEnd; definePtr++)
if (definePtr->isRegister())
registerSeen.set(definePtr->getRegisterName());
}
InstructionList& phiNodes = nodes[n]->getPhiNodeInstructions();
for (InstructionList::iterator p = phiNodes.begin(); !phiNodes.done(p); p = phiNodes.advance(p)) {
Instruction& instruction = phiNodes.get(p);
InstructionUse* useEnd = instruction.getInstructionUseEnd();
for (InstructionUse* usePtr = instruction.getInstructionUseBegin(); usePtr < useEnd; usePtr++)
if (usePtr->isRegister())
registerSeen.set(usePtr->getRegisterName());
InstructionDefine* defineEnd = instruction.getInstructionDefineEnd();
for (InstructionDefine* definePtr = instruction.getInstructionDefineBegin(); definePtr < defineEnd; definePtr++)
if (definePtr->isRegister())
registerSeen.set(definePtr->getRegisterName());
}
}
bool renameRegisters = false;
for (BitSet::iterator i = registerSeen.nextZero(0); !registerSeen.done(i); i = registerSeen.nextZero(i)) {
renameRegisters = true;
fprintf(stderr,
"WARNING: The VirtualRegister vr%d has been allocated during CodeGeneration but\n"
" is never used nor defined by any instruction in the instruction graph\n"
" PLEASE FIX \n",
i);
}
if (renameRegisters) {
Instruction** definingInstruction = new Instruction*[nameCount];
memset(definingInstruction, '\0', nameCount * sizeof(Instruction*));
RegisterName* newName = new RegisterName[nameCount];
memset(newName, '\0', nameCount * sizeof(RegisterName));
RegisterName nextName = RegisterName(1);
for (Uint32 n = 0; n < nNodes; n++) {
InstructionList& instructions = nodes[n]->getInstructions();
for (InstructionList::iterator i = instructions.begin(); !instructions.done(i); i = instructions.advance(i)) {
Instruction& instruction = instructions.get(i);
InstructionUse* useEnd = instruction.getInstructionUseEnd();
for (InstructionUse* usePtr = instruction.getInstructionUseBegin(); usePtr < useEnd; usePtr++)
if (usePtr->isRegister()) {
RegisterName name = usePtr->getRegisterName();
if (newName[name] == rnInvalid) {
newName[name] = nextName;
definingInstruction[nextName] = vrManager.getVirtualRegister(name).getDefiningInstruction();
nextName = RegisterName(nextName + 1);
}
usePtr->setRegisterName(newName[name]);
}
InstructionDefine* defineEnd = instruction.getInstructionDefineEnd();
for (InstructionDefine* definePtr = instruction.getInstructionDefineBegin(); definePtr < defineEnd; definePtr++)
if (definePtr->isRegister()) {
RegisterName name = definePtr->getRegisterName();
if (newName[name] == rnInvalid) {
newName[name] = nextName;
definingInstruction[nextName] = vrManager.getVirtualRegister(name).getDefiningInstruction();
nextName = RegisterName(nextName + 1);
}
definePtr->setRegisterName(newName[name]);
}
}
InstructionList& phiNodes = nodes[n]->getPhiNodeInstructions();
for (InstructionList::iterator p = phiNodes.begin(); !phiNodes.done(p); p = phiNodes.advance(p)) {
Instruction& instruction = phiNodes.get(p);
InstructionUse* useEnd = instruction.getInstructionUseEnd();
for (InstructionUse* usePtr = instruction.getInstructionUseBegin(); usePtr < useEnd; usePtr++)
if (usePtr->isRegister()) {
RegisterName name = usePtr->getRegisterName();
if (newName[name] == rnInvalid) {
newName[name] = nextName;
definingInstruction[nextName] = vrManager.getVirtualRegister(name).getDefiningInstruction();
nextName = RegisterName(nextName + 1);
}
usePtr->setRegisterName(newName[name]);
}
InstructionDefine* defineEnd = instruction.getInstructionDefineEnd();
for (InstructionDefine* definePtr = instruction.getInstructionDefineBegin(); definePtr < defineEnd; definePtr++)
if (definePtr->isRegister()) {
RegisterName name = definePtr->getRegisterName();
if (newName[name] == rnInvalid) {
newName[name] = nextName;
definingInstruction[nextName] = vrManager.getVirtualRegister(name).getDefiningInstruction();
nextName = RegisterName(nextName + 1);
}
definePtr->setRegisterName(newName[name]);
}
}
}
vrManager.setSize(nextName);
for (RegisterName r = RegisterName(1); r < nextName; r = RegisterName(r + 1))
vrManager.getVirtualRegister(r).definingInstruction = definingInstruction[r];
UT_OBJECTLOG(UT_LOG_MODULE(RegAlloc), PR_LOG_ALWAYS, ("RegisterMap:\n"));
for (Uint32 i = 1; i < nameCount; i++)
if (newName[i] != 0)
UT_OBJECTLOG(UT_LOG_MODULE(RegAlloc), PR_LOG_ALWAYS, ("\tvr%d becomes vr%d.\n", i, newName[i]));
else
UT_OBJECTLOG(UT_LOG_MODULE(RegAlloc), PR_LOG_ALWAYS, ("\tvr%d is dead.\n", i));
delete newName;
delete definingInstruction;
}
}
#endif // DEBUG
void RegisterAllocatorTools::removeUnnecessaryCopies(RegisterAllocator& registerAllocator)
{
ControlGraph& controlGraph = registerAllocator.controlGraph;
ControlNode** nodes = controlGraph.dfsList;
Uint32 nNodes = controlGraph.nNodes;
RegisterName* name2range = registerAllocator.name2range;
for (Uint32 n = 0; n < nNodes; n++) {
InstructionList& instructions = nodes[n]->getInstructions();
for (InstructionList::iterator i = instructions.begin(); !instructions.done(i);) {
Instruction& instruction = instructions.get(i);
i = instructions.advance(i);
if (instruction.getFlags() & ifCopy) {
assert(instruction.getInstructionUseBegin() != instruction.getInstructionUseEnd() && instruction.getInstructionUseBegin()[0].isRegister());
assert(instruction.getInstructionDefineBegin() != instruction.getInstructionDefineEnd() && instruction.getInstructionDefineBegin()[0].isRegister());
RegisterName source = name2range[instruction.getInstructionUseBegin()[0].getRegisterName()];
RegisterName destination = name2range[instruction.getInstructionDefineBegin()[0].getRegisterName()];
if (source == destination)
instruction.remove();
}
}
}
}
void RegisterAllocatorTools::updateInstructionGraph(RegisterAllocator& registerAllocator)
{
ControlGraph& controlGraph = registerAllocator.controlGraph;
ControlNode** nodes = controlGraph.dfsList;
Uint32 nNodes = controlGraph.nNodes;
RegisterName* name2range = registerAllocator.name2range;
for (Uint32 n = 0; n < nNodes; n++) {
InstructionList& instructions = nodes[n]->getInstructions();
for (InstructionList::iterator i = instructions.begin(); !instructions.done(i); i = instructions.advance(i)) {
Instruction& instruction = instructions.get(i);
InstructionUse* useEnd = instruction.getInstructionUseEnd();
for (InstructionUse* usePtr = instruction.getInstructionUseBegin(); usePtr < useEnd; usePtr++)
if (usePtr->isRegister())
usePtr->setRegisterName(name2range[usePtr->getRegisterName()]);
InstructionDefine* defineEnd = instruction.getInstructionDefineEnd();
for (InstructionDefine* definePtr = instruction.getInstructionDefineBegin(); definePtr < defineEnd; definePtr++)
if (definePtr->isRegister())
definePtr->setRegisterName(name2range[definePtr->getRegisterName()]);
}
InstructionList& phiNodes = nodes[n]->getPhiNodeInstructions();
for (InstructionList::iterator p = phiNodes.begin(); !phiNodes.done(p); p = phiNodes.advance(p)) {
Instruction& instruction = phiNodes.get(p);
InstructionUse* useEnd = instruction.getInstructionUseEnd();
for (InstructionUse* usePtr = instruction.getInstructionUseBegin(); usePtr < useEnd; usePtr++)
if (usePtr->isRegister())
usePtr->setRegisterName(name2range[usePtr->getRegisterName()]);
InstructionDefine* defineEnd = instruction.getInstructionDefineEnd();
for (InstructionDefine* definePtr = instruction.getInstructionDefineBegin(); definePtr < defineEnd; definePtr++)
if (definePtr->isRegister())
definePtr->setRegisterName(name2range[definePtr->getRegisterName()]);
}
}
}
void RegisterAllocatorTools::insertPhiNodeInstructions(ControlGraph& controlGraph, InstructionEmitter& emitter)
{
Pool& pool = controlGraph.pool;
ControlNode** nodes = controlGraph.dfsList;
Uint32 nNodes = controlGraph.nNodes;
for (Uint32 n = 0; n < nNodes; n++) {
ControlNode& node = *nodes[n];
DoublyLinkedList<PhiNode>& phiNodes = node.getPhiNodes();
if (!phiNodes.empty()) {
// Set the index of the incoming edges.
Uint32 index = 0;
const DoublyLinkedList<ControlEdge>& predecessors = node.getPredecessors();
for (DoublyLinkedList<ControlEdge>::iterator p = predecessors.begin(); !predecessors.done(p); p = predecessors.advance(p))
predecessors.get(p).setIndex(index++);
// Insert the phi node instruction in the instruction list.
for (DoublyLinkedList<PhiNode>::iterator i = phiNodes.begin(); !phiNodes.done(i); i = phiNodes.advance(i)) {
PhiNode& phiNode = phiNodes.get(i);
ValueKind kind = phiNode.getKind();
if (!isStorableKind(kind))
continue;
RegisterClassKind classKind = rckGeneral; // FIX: get class kind from phi node kind.
Uint32 nInputs = phiNode.nInputs();
PhiNodeInstruction& phiNodeInstruction = *new(pool) PhiNodeInstruction(&phiNode, pool, nInputs);
emitter.defineProducer(phiNode, phiNodeInstruction, 0, classKind, drLow);
for (Uint32 whichInput = 0; whichInput < nInputs; whichInput++)
emitter.useProducer(phiNode.nthInputVariable(whichInput), phiNodeInstruction, whichInput, classKind, drLow);
node.addPhiNodeInstruction(phiNodeInstruction);
if (isDoublewordKind(kind)) {
PhiNodeInstruction& phiNodeInstruction = *new(pool) PhiNodeInstruction(&phiNode, pool, nInputs);
emitter.defineProducer(phiNode, phiNodeInstruction, 0, classKind, drHigh);
for (Uint32 whichInput = 0; whichInput < nInputs; whichInput++)
emitter.useProducer(phiNode.nthInputVariable(whichInput), phiNodeInstruction, whichInput, classKind, drHigh);
node.addPhiNodeInstruction(phiNodeInstruction);
}
}
}
}
}
#ifdef DEBUG_LOG
void RegisterAllocatorTools::printSpillCosts(RegisterAllocator& registerAllocator)
{
LogModuleObject log = UT_LOG_MODULE(RegAlloc);
Uint32 rangeCount = registerAllocator.rangeCount;
SpillCost* cost = registerAllocator.spillCost;
UT_OBJECTLOG(log, PR_LOG_ALWAYS, ("Spill costs:\n"));
for (Uint32 i = 1; i < rangeCount; i++) {
UT_OBJECTLOG(log, PR_LOG_ALWAYS, ("\trange %d : ", i));
if (cost[i].infinite)
UT_OBJECTLOG(log, PR_LOG_ALWAYS, ("infinite\n"));
else
UT_OBJECTLOG(log, PR_LOG_ALWAYS, ("%f\n", cost[i].cost));
}
}
void RegisterAllocatorTools::printSplitCosts(RegisterAllocator& registerAllocator)
{
LogModuleObject log = UT_LOG_MODULE(RegAlloc);
Uint32 rangeCount = registerAllocator.rangeCount;
SplitCost* cost = registerAllocator.splitCost;
UT_OBJECTLOG(log, PR_LOG_ALWAYS, ("Split costs:\n"));
for (Uint32 i = 1; i < rangeCount; i++) {
UT_OBJECTLOG(log, PR_LOG_ALWAYS, ("\trange %d : loads = %f stores = %f\n", i, cost[i].loads, cost[i].stores));
}
}
void RegisterAllocatorTools::printInstructions(RegisterAllocator& registerAllocator)
{
LogModuleObject log = UT_LOG_MODULE(RegAlloc);
ControlNode** nodes = registerAllocator.controlGraph.dfsList;
Uint32 nNodes = registerAllocator.controlGraph.nNodes;
for (Uint32 n = 0; n < nNodes; n++) {
UT_OBJECTLOG(log, PR_LOG_ALWAYS, ("N%d:\n", n));
InstructionList& phiNodes = nodes[n]->getPhiNodeInstructions();
InstructionList& instructions = nodes[n]->getInstructions();
if (!phiNodes.empty()) {
UT_OBJECTLOG(log, PR_LOG_ALWAYS, (" PhiNodes:\n", n));
for(InstructionList::iterator i = phiNodes.begin(); !phiNodes.done(i); i = phiNodes.advance(i)) {
phiNodes.get(i).printPretty(log);
UT_OBJECTLOG(log, PR_LOG_ALWAYS, ("\n"));
}
if (!instructions.empty())
UT_OBJECTLOG(log, PR_LOG_ALWAYS, (" Instructions:\n", n));
}
for(InstructionList::iterator i = instructions.begin(); !instructions.done(i); i = instructions.advance(i)) {
instructions.get(i).printPretty(log);
UT_OBJECTLOG(log, PR_LOG_ALWAYS, ("\n"));
}
}
}
#endif // DEBUG_LOG

View File

@@ -0,0 +1,117 @@
// -*- mode:C++; tab-width:4; truncate-lines:t -*-
//
// CONFIDENTIAL AND PROPRIETARY SOURCE CODE OF
// NETSCAPE COMMUNICATIONS CORPORATION
// Copyright © 1996, 1997 Netscape Communications Corporation. All Rights
// Reserved. Use of this Source Code is subject to the terms of the
// applicable license agreement from Netscape Communications Corporation.
// The copyright notice(s) in this Source Code does not indicate actual or
// intended publication of this Source Code.
//
// $Id: RegisterAllocatorTools.h,v 1.1.2.1 1999-03-02 16:12:05 fur%netscape.com Exp $
//
#ifndef _REGISTER_ALLOCATOR_TOOLS_H_
#define _REGISTER_ALLOCATOR_TOOLS_H_
#include "LogModule.h"
#include "RegisterTypes.h"
#include <string.h>
class RegisterAllocator;
class ControlGraph;
class InstructionEmitter;
class VirtualRegisterManager;
struct RegisterAllocatorTools
{
//
//
static void insertPhiNodeInstructions(ControlGraph& controlGraph, InstructionEmitter& emitter);
//
//
static void updateInstructionGraph(RegisterAllocator& registerAllocator);
//
//
static void removeUnnecessaryCopies(RegisterAllocator& registerAllocator);
#ifdef DEBUG
//
//
static void testTheInstructionGraph(ControlGraph& controlGraph, VirtualRegisterManager& vrManager);
#endif // DEBUG
#ifdef DEBUG_LOG
//
//
static void printInstructions(RegisterAllocator& registerAllocator);
//
//
static void printSpillCosts(RegisterAllocator& registerAllocator);
//
//
static void printSplitCosts(RegisterAllocator& registerAllocator);
#endif // DEBUG_LOG
};
//
// FIX: this should go in a class (LookupTable ?)
//
inline RegisterName findRoot(RegisterName name, RegisterName* table)
{
RegisterName* stack = table;
RegisterName* stackPtr = stack;
RegisterName newName;
while((newName = table[name]) != name) {
*--stackPtr = name;
name = newName;
}
while (stackPtr != stack)
table[*stackPtr++] = name;
return name;
}
inline void init(RegisterName* table, Uint32 nameCount)
{
for (RegisterName r = RegisterName(0); r < nameCount; r = RegisterName(r + 1))
table[r] = r;
}
inline Uint32 compress(RegisterName* name2range, RegisterName* table, Uint32 nameCount, Uint32 tableSize)
{
RegisterName* liveRange = new RegisterName[tableSize];
memset(liveRange, '\0', tableSize * sizeof(RegisterName));
// Update the lookup table.
for (RegisterName r = RegisterName(1); r < tableSize; r = RegisterName(r + 1))
findRoot(r, table);
// Count the liveranges.
Uint32 liveRangeCount = 1;
for (RegisterName s = RegisterName(1); s < tableSize; s = RegisterName(s + 1))
if (table[s] == s)
liveRange[s] = RegisterName(liveRangeCount++);
for (RegisterName t = RegisterName(1); t < nameCount; t = RegisterName(t + 1))
name2range[t] = liveRange[table[name2range[t]]];
return liveRangeCount;
}
inline double doLog10(Uint32 power)
{
double log = 1.0;
while (power--)
log *= 10.0;
return log;
}
#endif // _REGISTER_ALLOCATOR_TOOLS_H_

View File

@@ -16,25 +16,23 @@
* Reserved.
*/
/*
#ifndef _REGISTER_ASSIGNER_H_
#define _REGISTER_ASSIGNER_H_
This header file just contains prototypes for the factory methods
for "builtin" data sources that are included in rdf.dll.
#include "Fundamentals.h"
#include "VirtualRegister.h"
Each of these data sources is exposed to the external world via its
CID in ../include/nsRDFCID.h.
*/
#ifndef nsBaseDataSources_h__
#define nsBaseDataSources_h__
#include "nsError.h"
class nsIRDFDataSource;
// in nsInMemoryDataSource.cpp
nsresult NS_NewRDFInMemoryDataSource(nsIRDFDataSource** result);
#endif // nsBaseDataSources_h__
class FastBitMatrix;
class RegisterAssigner
{
protected:
VirtualRegisterManager& vRegManager;
public:
RegisterAssigner(VirtualRegisterManager& vrMan) : vRegManager(vrMan) {}
virtual bool assignRegisters(FastBitMatrix& interferenceMatrix) = 0;
};
#endif /* _REGISTER_ASSIGNER_H_ */

View File

@@ -0,0 +1,25 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#ifndef _REGISTER_CLASS_H_
#define _REGISTER_CLASS_H_
#include "Fundamentals.h"
#include "RegisterTypes.h"
#endif // _REGISTER_CLASS_H_

View File

@@ -1,4 +1,4 @@
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*-
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
@@ -16,24 +16,22 @@
* Reserved.
*/
#include "rl.h"
#include "plstr.h"
#ifndef _REGISTER_PRESSURE_H_
#define _REGISTER_PRESSURE_H_
PR_IMPLEMENT(void)
RLInit(void)
#include "BitSet.h"
#include "HashSet.h"
struct LowRegisterPressure
{
}
typedef BitSet Set;
static const bool setIsOrdered = true;
};
PR_IMPLEMENT(void)
RLTrace(const char* fmtstr, ...)
struct HighRegisterPressure
{
char* str;
va_list ap;
va_start(ap, fmtstr);
typedef HashSet Set;
static const bool setIsOrdered = false;
};
str = PR_vsmprintf(fmtstr, ap);
if (str) {
PR_Write(PR_STDERR, str, PL_strlen(str));
PR_smprintf_free(str);
}
}
#endif // _REGISTER_PRESSURE_H_

View File

@@ -0,0 +1,104 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#ifndef _REGISTER_TYPES_H_
#define _REGISTER_TYPES_H_
#include "Fundamentals.h"
//------------------------------------------------------------------------------
// RegisterName -
//
enum RegisterName {
rnInvalid = 0,
};
//------------------------------------------------------------------------------
// RegisterClassKind -
//
enum RegisterClassKind {
rckInvalid = 0,
rckGeneral,
rckStackSlot,
nRegisterClassKind
};
//------------------------------------------------------------------------------
// RegisterID -
//
enum RegisterID {
invalidID = 0
};
//------------------------------------------------------------------------------
// RegisterKind -
//
enum RegisterKind {
rkCallerSave = 0,
rkCalleeSave,
};
struct NameLinkedList {
RegisterName name;
NameLinkedList* next;
};
#ifdef DEBUG
const registerNameMask = 0x03ffffff;
const coloredRegisterMask = 0x04000000;
const machineRegisterMask = 0x08000000;
const registerClassMask = 0xf0000000;
const registerNameShift = 0;
const coloredRegisterShift = 26;
const machineRegisterShift = 27;
const registerClassShift = 28;
#else // DEBUG
const registerNameMask = 0x0fffffff;
const registerClassMask = 0xf0000000;
const registerNameShift = 0;
const registerClassShift = 28;
#endif // DEBUG
inline RegisterClassKind getClass(RegisterID registerID) {return RegisterClassKind((registerID & registerClassMask) >> registerClassShift);}
inline RegisterName getName(RegisterID registerID) {return RegisterName((registerID & registerNameMask) >> registerNameShift);}
inline void setClass(RegisterID& registerID, RegisterClassKind classKind) {registerID = RegisterID((registerID & ~registerClassMask) | ((classKind << registerClassShift) & registerClassMask));}
inline void setName(RegisterID& registerID, RegisterName name) {assert((name & ~registerNameMask) == 0); registerID = RegisterID((registerID & ~registerNameMask) | ((name << registerNameShift) & registerNameMask));}
inline RegisterID buildRegisterID(RegisterName name, RegisterClassKind classKind) {return RegisterID(((classKind << registerClassShift) & registerClassMask) | ((name << registerNameShift) & registerNameMask));}
#ifdef DEBUG
inline bool isMachineRegister(RegisterID rid) {return (rid & machineRegisterMask) != 0;}
inline void setMachineRegister(RegisterID& rid) {rid = RegisterID(rid | machineRegisterMask);}
inline bool isColoredRegister(RegisterID rid) {return (rid & coloredRegisterMask) != 0;}
inline void setColoredRegister(RegisterID& rid) {rid = RegisterID(rid | coloredRegisterMask);}
#endif // DEBUG
#endif // _REGISTER_TYPES_H_

View File

@@ -0,0 +1,32 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#include "Fundamentals.h"
#include "SSATools.h"
#include "ControlGraph.h"
#include "VirtualRegister.h"
#include "Liveness.h"
void replacePhiNodes(ControlGraph& controlGraph, VirtualRegisterManager& vrManager)
{
if (!controlGraph.hasBackEdges)
return;
Liveness liveness(controlGraph.pool);
liveness.buildLivenessAnalysis(controlGraph, vrManager);
}

View File

@@ -1,4 +1,4 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
@@ -16,11 +16,14 @@
* Reserved.
*/
/* This is the header file for the RDF related search functions */
#ifndef _SSA_TOOLS_H_
#define _SSA_TOOLS_H_
void RDFGS_AddSearchIndex (RDFT db, char* string, RDF_Resource label, RDF_Resource target) ;
RDF_Cursor RDFGS_Search (RDFT db, char* searchString, RDF_Resource label);
RDF_Resource RDFGS_NextValue (RDF_Cursor c) ;
void RDFGS_DisposeCursor (RDF_Cursor c);
#include "Fundamentals.h"
class ControlGraph;
class VirtualRegisterManager;
extern void replacePhiNodes(ControlGraph& controlGraph, VirtualRegisterManager& vrManager);
#endif // _SSA_TOOLS_H_

View File

@@ -0,0 +1,37 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#include "Fundamentals.h"
#include "SparseSet.h"
#include "BitSet.h"
#include "Pool.h"
#ifdef DEBUG_LOG
// Print the set.
//
void SparseSet::printPretty(LogModuleObject log)
{
Pool pool;
BitSet set(pool, universeSize);
for (Uint32 i = 0; i < count; i++)
set.set(node[i].element);
set.printPretty(log);
}
#endif // DEBUG_LOG

View File

@@ -0,0 +1,168 @@
// -*- mode:C++; tab-width:4; truncate-lines:t -*-
//
// CONFIDENTIAL AND PROPRIETARY SOURCE CODE OF
// NETSCAPE COMMUNICATIONS CORPORATION
// Copyright © 1996, 1997 Netscape Communications Corporation. All Rights
// Reserved. Use of this Source Code is subject to the terms of the
// applicable license agreement from Netscape Communications Corporation.
// The copyright notice(s) in this Source Code does not indicate actual or
// intended publication of this Source Code.
//
// $Id: SparseSet.h,v 1.1.2.1 1999-03-02 16:12:07 fur%netscape.com Exp $
//
#ifndef _SPARSE_SET_H_
#define _SPARSE_SET_H_
#include "Fundamentals.h"
#include "Pool.h"
#include "LogModule.h"
#include "BitSet.h"
class SparseSet
{
private:
struct Node {
Uint32 element;
Uint32 stackIndex;
};
Node* node;
Uint32 count;
Uint32 universeSize;
private:
// No copy constructor.
SparseSet(const SparseSet&);
// Check if the given set's universe is of the same size than this universe.
void checkUniverseCompatibility(const SparseSet& set) const {assert(set.universeSize == universeSize);}
// Check if pos is valid for this set's universe.
void checkMember(Int32 pos) const {assert(pos >=0 && Uint32(pos) < universeSize);}
public:
SparseSet(Pool& pool, Uint32 universeSize) : universeSize(universeSize) {node = new(pool) Node[universeSize]; clear();}
// Clear the sparse set.
void clear() {count = 0;}
// Clear the element at index.
inline void clear(Uint32 index);
// Set the element at index.
inline void set(Uint32 index);
// Return true if the element at index is set.
inline bool test(Uint32 index) const;
// Union with the given sparse set.
inline void or(const SparseSet& set);
// Intersection with the given sparse set.
inline void and(const SparseSet& set);
// Difference with the given sparse set.
inline void difference(const SparseSet& set);
// Copy set.
inline SparseSet& operator = (const SparseSet& set);
inline SparseSet& operator = (const BitSet& set);
// Return true if the sparse sets are identical.
friend bool operator == (const SparseSet& set1, const SparseSet& set2);
// Return true if the sparse sets are different.
friend bool operator != (const SparseSet& set1, const SparseSet& set2);
// Logical operators.
SparseSet& operator |= (const SparseSet& set) {or(set); return *this;}
SparseSet& operator &= (const SparseSet& set) {and(set); return *this;}
SparseSet& operator -= (const SparseSet& set) {difference(set); return *this;}
// Iterator to conform with the set API.
typedef Int32 iterator;
// Return the iterator for the first element of this set.
iterator begin() const {return count - 1;}
// Return the next iterator.
iterator advance(iterator pos) const {return --pos;}
// Return true if the iterator is at the end of the set.
bool done(iterator pos) const {return pos < 0;}
// Return the element for the given iterator;
Uint32 get(iterator pos) const {return node[pos].element;}
// Return one element of this set.
Uint32 getOne() const {assert(count > 0); return node[0].element;}
// Return the size of this set.
Uint32 getSize() const {return count;}
#ifdef DEBUG_LOG
// Print the set.
void printPretty(LogModuleObject log);
#endif // DEBUG_LOG
};
inline void SparseSet::clear(Uint32 element)
{
checkMember(element);
Uint32 count = this->count;
Node* node = this->node;
Uint32 stackIndex = node[element].stackIndex;
if ((stackIndex < count) && (node[stackIndex].element == element)) {
Uint32 stackTop = node[count - 1].element;
node[stackIndex].element = stackTop;
node[stackTop].stackIndex = stackIndex;
this->count = count - 1;
}
}
inline void SparseSet::set(Uint32 element)
{
checkMember(element);
Uint32 count = this->count;
Node* node = this->node;
Uint32 stackIndex = node[element].stackIndex;
if ((stackIndex >= count) || (node[stackIndex].element != element)) {
node[count].element = element;
node[element].stackIndex = count;
this->count = count + 1;
}
}
inline bool SparseSet::test(Uint32 element) const
{
checkMember(element);
Node* node = this->node;
Uint32 stackIndex = node[element].stackIndex;
return ((stackIndex < count) && (node[stackIndex].element == element));
}
inline SparseSet& SparseSet::operator = (const SparseSet& set)
{
checkUniverseCompatibility(set);
Uint32 sourceCount = set.getSize();
Node* node = this->node;
memcpy(node, set.node, sourceCount * sizeof(Node));
for (Uint32 i = 0; i < sourceCount; i++) {
Uint32 element = node[i].element;
node[element].stackIndex = i;
}
count = sourceCount;
return *this;
}
inline SparseSet& SparseSet::operator = (const BitSet& set)
{
// FIX: there's room for optimization here.
assert(universeSize == set.getSize());
clear();
for (Int32 i = set.firstOne(); i != -1; i = set.nextOne(i))
this->set(i);
return *this;
}
#endif // _SPARSE_SET_H_

View File

@@ -0,0 +1,270 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#ifndef NEW_LAURENTM_CODE
#define INCLUDE_EMITTER
#include "CpuInfo.h"
#include "Fundamentals.h"
#include "ControlNodes.h"
#include "Instruction.h"
#include "InstructionEmitter.h"
#include "Spilling.h"
void Spilling::
insertSpillCode(ControlNode** dfsList, Uint32 nNodes)
{
PRUint32 nVirtualRegisters = vRegManager.count();
FastBitSet currentLive(vRegManager.pool, nVirtualRegisters);
FastBitSet usedInThisInstruction(vRegManager.pool, nVirtualRegisters);
RegisterFifo grNeedLoad(nVirtualRegisters);
RegisterFifo fpNeedLoad(nVirtualRegisters);
for (PRInt32 n = nNodes - 1; n >= 0; n--)
{
PR_ASSERT(grNeedLoad.empty() & fpNeedLoad.empty());
ControlNode& node = *dfsList[n];
currentLive = node.liveAtEnd;
PRUint32 nGeneralAlive = 0;
PRUint32 nFloatingPointAlive = 0;
// Get the number of registers alive at the end of this node.
for (PRInt32 j = currentLive.firstOne(); j != -1; j = currentLive.nextOne(j))
{
VirtualRegister& vReg = vRegManager.getVirtualRegister(j);
if (vReg.spillInfo.willSpill)
{
currentLive.clear(j);
}
else
{
switch (vReg.getClass())
{
case vrcInteger:
nGeneralAlive++;
break;
case vrcFloatingPoint:
case vrcFixedPoint:
nFloatingPointAlive++;
break;
default:
break;
}
}
}
// if(node.dfsNum == 8) printf("\n________Begin Node %d________\n", node.dfsNum);
InstructionList& instructions = node.getInstructions();
for (InstructionList::iterator i = instructions.end(); !instructions.done(i); i = instructions.retreat(i))
{
Instruction& instruction = instructions.get(i);
InstructionUse* useBegin = instruction.getInstructionUseBegin();
InstructionUse* useEnd = instruction.getInstructionUseEnd();
InstructionUse* usePtr;
InstructionDefine* defBegin = instruction.getInstructionDefineBegin();
InstructionDefine* defEnd = instruction.getInstructionDefineEnd();
InstructionDefine* defPtr;
// if(node.dfsNum == 8) { printf("\n");
// instruction.printPretty(stdout);
// printf("\n"); }
// Handle definitions
for (defPtr = defBegin; defPtr < defEnd; defPtr++)
if (defPtr->isVirtualRegister())
{
VirtualRegister& vReg = defPtr->getVirtualRegister();
currentLive.clear(vReg.getRegisterIndex());
switch (vReg.getClass())
{
case vrcInteger:
nGeneralAlive--;
break;
case vrcFloatingPoint:
case vrcFixedPoint:
nFloatingPointAlive--;
break;
default:
break;
}
}
// Check for deaths
for (usePtr = useBegin; usePtr < useEnd; usePtr++)
if (usePtr->isVirtualRegister())
{
VirtualRegister& vReg = usePtr->getVirtualRegister();
if (!currentLive.test(vReg.getRegisterIndex()))
// This is the last use of this register.
{
currentLive.set(vReg.getRegisterIndex());
switch (vReg.getClass())
{
case vrcInteger:
nGeneralAlive++;
while (/*(nGeneralAlive > NUMBER_OF_GREGISTERS) &&*/ !grNeedLoad.empty())
{
PRUint32 toLoad = grNeedLoad.get();
currentLive.clear(toLoad);
nGeneralAlive--;
VirtualRegister& nReg = vRegManager.getVirtualRegister(toLoad);
Instruction& lastUsingInstruction = *nReg.spillInfo.lastUsingInstruction;
emitter.emitLoadAfter(*lastUsingInstruction.getPrimitive(), lastUsingInstruction.getLinks().prev,
nReg.getAlias(), *nReg.equivalentRegister[vrcStackSlot]);
nReg.releaseSelf();
}
break;
case vrcFloatingPoint:
case vrcFixedPoint:
nFloatingPointAlive++;
while (/*(nFloatingPointAlive > NUMBER_OF_FPREGISTERS) &&*/ !fpNeedLoad.empty())
{
PRUint32 toLoad = fpNeedLoad.get();
currentLive.clear(toLoad);
nFloatingPointAlive--;
VirtualRegister& nReg = vRegManager.getVirtualRegister(toLoad);
Instruction& lastUsingInstruction = *nReg.spillInfo.lastUsingInstruction;
emitter.emitLoadAfter(*lastUsingInstruction.getPrimitive(), lastUsingInstruction.getLinks().prev,
nReg.getAlias(), *nReg.equivalentRegister[vrcStackSlot]);
nReg.releaseSelf();
}
break;
default:
break;
}
}
}
// Handle uses
for (usePtr = useBegin; usePtr < useEnd; usePtr++)
if (usePtr->isVirtualRegister())
{
VirtualRegister& vReg = usePtr->getVirtualRegister();
PRUint32 registerIndex = vReg.getRegisterIndex();
if (vReg.spillInfo.willSpill) {
#if defined(GENERATE_FOR_X86)
if (!instruction.switchUseToSpill((usePtr - useBegin), *vReg.equivalentRegister[vrcStackSlot]))
#endif
{
switch (vReg.getClass())
{
case vrcInteger:
if (!grNeedLoad.test(registerIndex))
{
grNeedLoad.put(registerIndex);
VirtualRegister& alias = vRegManager.newVirtualRegister(vrcInteger);
if (vReg.isPreColored())
alias.preColorRegister(vReg.getPreColor());
/* if (vReg.hasSpecialInterference) {
alias.specialInterference.sizeTo(NUMBER_OF_REGISTERS);
alias.specialInterference = vReg.specialInterference;
alias.hasSpecialInterference = true;
} */
vReg.setAlias(alias);
vReg.retainSelf();
}
break;
case vrcFloatingPoint:
case vrcFixedPoint:
if (!fpNeedLoad.test(registerIndex))
{
fpNeedLoad.put(registerIndex);
VirtualRegister& alias = vRegManager.newVirtualRegister(vReg.getClass());
if (vReg.isPreColored())
alias.preColorRegister(vReg.getPreColor());
/*if (vReg.hasSpecialInterference) {
alias.specialInterference.sizeTo(NUMBER_OF_REGISTERS);
alias.specialInterference = vReg.specialInterference;
alias.hasSpecialInterference = true;
} */
vReg.setAlias(alias);
vReg.retainSelf();
}
break;
default:
break;
}
usePtr->getVirtualRegisterPtr().initialize(vReg.getAlias());
usedInThisInstruction.set(registerIndex);
vReg.spillInfo.lastUsingInstruction = &instruction;
}
currentLive.clear(registerIndex);
} else { // will not spill
currentLive.set(registerIndex);
}
}
// Handle definitions
for (defPtr = defBegin; defPtr < defEnd; defPtr++)
if (defPtr->isVirtualRegister())
{
VirtualRegister& vReg = defPtr->getVirtualRegister();
if (vReg.spillInfo.willSpill)
#if defined(GENERATE_FOR_X86)
if (!instruction.switchDefineToSpill((defPtr - defBegin), *vReg.equivalentRegister[vrcStackSlot]))
#endif
{
if (usedInThisInstruction.test(vReg.getRegisterIndex()))
// this virtualRegister was used in this instruction and is also defined. We need to move
// this virtual register to its alias first and then save it to memory.
{
emitter.emitStoreAfter(*instruction.getPrimitive(), &instruction.getLinks(),
vReg.getAlias(), *vReg.equivalentRegister[vrcStackSlot]);
defPtr->getVirtualRegisterPtr().initialize(vReg.getAlias());
}
else
{
emitter.emitStoreAfter(*instruction.getPrimitive(), &instruction.getLinks(),
vReg, *vReg.equivalentRegister[vrcStackSlot]);
}
}
}
}
while (!grNeedLoad.empty())
{
PRUint32 nl = grNeedLoad.get();
VirtualRegister& nlReg = vRegManager.getVirtualRegister(nl);
Instruction& lastUse = *nlReg.spillInfo.lastUsingInstruction;
emitter.emitLoadAfter(*lastUse.getPrimitive(), lastUse.getLinks().prev,
nlReg.getAlias(), *nlReg.equivalentRegister[vrcStackSlot]);
nlReg.releaseSelf();
}
while (!fpNeedLoad.empty())
{
PRUint32 nl = fpNeedLoad.get();
VirtualRegister& nlReg = vRegManager.getVirtualRegister(nl);
Instruction& lastUse = *nlReg.spillInfo.lastUsingInstruction;
emitter.emitLoadAfter(*lastUse.getPrimitive(), lastUse.getLinks().prev,
nlReg.getAlias(), *nlReg.equivalentRegister[vrcStackSlot]);
nlReg.releaseSelf();
}
// if(node.dfsNum == 8) printf("\n________End Node %d________\n", node.dfsNum);
}
}
#endif

View File

@@ -0,0 +1,269 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#ifndef _SPILLING_H_
#define _SPILLING_H_
#include "Fundamentals.h"
#include <string.h>
#include "RegisterAllocator.h"
#include "RegisterAllocatorTools.h"
#include "ControlGraph.h"
#include "ControlNodes.h"
#include "Instruction.h"
#include "SparseSet.h"
template <class RegisterPressure>
class Spilling
{
private:
static void insertStoreAfter(Instruction& instruction, RegisterName name);
static void insertLoadBefore(Instruction& instruction, RegisterName name);
public:
static void calculateSpillCosts(RegisterAllocator& registerAllocator);
static void insertSpillCode(RegisterAllocator& registerAllocator);
};
struct SpillCost
{
double loads;
double stores;
double copies;
double cost;
bool infinite;
};
template <class RegisterPressure>
void Spilling<RegisterPressure>::insertSpillCode(RegisterAllocator& registerAllocator)
{
Uint32 rangeCount = registerAllocator.rangeCount;
RegisterName* name2range = registerAllocator.name2range;
Pool& pool = registerAllocator.pool;
SparseSet currentLive(pool, rangeCount);
SparseSet needLoad(pool, rangeCount);
SparseSet mustSpill(pool, rangeCount);
SparseSet& willSpill = *registerAllocator.willSpill;
ControlGraph& controlGraph = registerAllocator.controlGraph;
RegisterPressure::Set* liveOut = registerAllocator.liveness.liveOut;
ControlNode** nodes = controlGraph.dfsList;
Uint32 nNodes = controlGraph.nNodes;
for (Uint32 n = 0; n < nNodes; n++) {
needLoad.clear();
currentLive = liveOut[n];
mustSpill = currentLive;
InstructionList& instructions = nodes[n]->getInstructions();
for (InstructionList::iterator i = instructions.end(); !instructions.done(i);) {
Instruction& instruction = instructions.get(i);
i = instructions.retreat(i);
InstructionUse* useBegin = instruction.getInstructionUseBegin();
InstructionUse* useEnd = instruction.getInstructionUseEnd();
InstructionUse* usePtr;
InstructionDefine* defineBegin = instruction.getInstructionDefineBegin();
InstructionDefine* defineEnd = instruction.getInstructionDefineEnd();
InstructionDefine* definePtr;
bool foundLiveDefine = false;
for (definePtr = defineBegin; definePtr < defineEnd; definePtr++)
if (definePtr->isRegister()) {
if (currentLive.test(name2range[definePtr->getRegisterName()])) {
foundLiveDefine = true;
break;
}
} else {
foundLiveDefine = true;
break;
}
if (defineBegin != defineEnd && !foundLiveDefine) {
fprintf(stderr, "!!! Removed instruction because it was only defining unused registers !!!\n");
instruction.remove();
}
for (definePtr = defineBegin; definePtr < defineEnd; definePtr++)
if (definePtr->isRegister()) {
RegisterName range = name2range[definePtr->getRegisterName()];
#ifdef DEBUG
if (needLoad.test(range))
if (!mustSpill.test(range) && registerAllocator.spillCost[range].infinite && willSpill.test(range)) {
fprintf(stderr, "Tried to spill a register with infinite spill cost\n");
abort();
}
#endif // DEBUG
if (willSpill.test(range))
insertStoreAfter(instruction, range);
needLoad.clear(range);
}
if (instruction.getFlags() & ifCopy)
for (usePtr = useBegin; usePtr < useEnd; usePtr++)
if (usePtr->isRegister()) {
RegisterName range = name2range[usePtr->getRegisterName()];
if (!currentLive.test(range))
for (SparseSet::iterator r = needLoad.begin(); !needLoad.done(r); r = needLoad.advance(r)) {
RegisterName load = RegisterName(needLoad.get(r));
if (willSpill.test(load))
insertLoadBefore(instruction, load);
mustSpill.set(load);
}
needLoad.clear();
}
for (definePtr = defineBegin; definePtr < defineEnd; definePtr++)
if (definePtr->isRegister())
currentLive.clear(name2range[definePtr->getRegisterName()]);
for (usePtr = useBegin; usePtr < useEnd; usePtr++)
if (usePtr->isRegister()) {
RegisterName range = name2range[usePtr->getRegisterName()];
currentLive.set(range);
needLoad.set(range);
}
}
for (SparseSet::iterator l = needLoad.begin(); !needLoad.done(l); l = needLoad.advance(l)) {
RegisterName load = RegisterName(needLoad.get(l));
if (willSpill.test(load))
insertLoadBefore(instructions.first(), load);
}
}
}
template <class RegisterPressure>
void Spilling<RegisterPressure>::insertLoadBefore(Instruction& /*instruction*/, RegisterName name)
{
fprintf(stdout, "will insert load for range %d\n", name);
}
template <class RegisterPressure>
void Spilling<RegisterPressure>::insertStoreAfter(Instruction& /*instruction*/, RegisterName name)
{
fprintf(stdout, "will insert store for range %d\n", name);
}
template <class RegisterPressure>
void Spilling<RegisterPressure>::calculateSpillCosts(RegisterAllocator& registerAllocator)
{
Uint32 rangeCount = registerAllocator.rangeCount;
RegisterName* name2range = registerAllocator.name2range;
Pool& pool = registerAllocator.pool;
SparseSet live(pool, rangeCount);
SparseSet needLoad(pool, rangeCount);
SparseSet mustSpill(pool, rangeCount);
SparseSet alreadyStored(pool, rangeCount); // FIX: should get this from previous spilling.
SpillCost* cost = new SpillCost[rangeCount];
memset(cost, '\0', rangeCount * sizeof(SpillCost));
ControlGraph& controlGraph = registerAllocator.controlGraph;
RegisterPressure::Set* liveOut = registerAllocator.liveness.liveOut;
ControlNode** nodes = controlGraph.dfsList;
Uint32 nNodes = controlGraph.nNodes;
for (Uint32 n = 0; n < nNodes; n++) {
ControlNode& node = *nodes[n];
double weight = doLog10(node.loopDepth);
needLoad.clear();
live = liveOut[n];
mustSpill = live;
InstructionList& instructions = nodes[n]->getInstructions();
for (InstructionList::iterator i = instructions.end(); !instructions.done(i); i = instructions.retreat(i)) {
Instruction& instruction = instructions.get(i);
InstructionUse* useBegin = instruction.getInstructionUseBegin();
InstructionUse* useEnd = instruction.getInstructionUseEnd();
InstructionUse* usePtr;
InstructionDefine* defineBegin = instruction.getInstructionDefineBegin();
InstructionDefine* defineEnd = instruction.getInstructionDefineEnd();
InstructionDefine* definePtr;
for (definePtr = defineBegin; definePtr < defineEnd; definePtr++)
if (definePtr->isRegister()) {
RegisterName range = name2range[definePtr->getRegisterName()];
if (needLoad.test(range))
if (!mustSpill.test(range))
cost[range].infinite = true;
if ((false /* !rematerializable(range) */ || !needLoad.test(range)) && !alreadyStored.test(range))
cost[range].stores += weight;
needLoad.clear(range);
}
if (instruction.getFlags() & ifCopy)
for (usePtr = useBegin; usePtr < useEnd; usePtr++)
if (usePtr->isRegister())
if (!live.test(name2range[usePtr->getRegisterName()])) {
for (SparseSet::iterator l = needLoad.begin(); !needLoad.done(l); l = needLoad.advance(l)) {
Uint32 range = needLoad.get(l);
cost[range].loads += weight;
mustSpill.set(range);
}
needLoad.clear();
}
for (definePtr = defineBegin; definePtr < defineEnd; definePtr++)
if (definePtr->isRegister())
live.clear(name2range[definePtr->getRegisterName()]);
for (usePtr = useBegin; usePtr < useEnd; usePtr++)
if (usePtr->isRegister()) {
RegisterName range = name2range[usePtr->getRegisterName()];
live.set(range);
needLoad.set(range);
}
if (instruction.getFlags() & ifCopy) {
assert(useBegin != useEnd && useBegin[0].isRegister());
assert(defineBegin != defineEnd && defineBegin[0].isRegister());
RegisterName source = name2range[useBegin[0].getRegisterName()];
RegisterName destination = name2range[defineBegin[0].getRegisterName()];
cost[source].copies += weight;
cost[destination].copies += weight;
}
}
for (SparseSet::iterator s = needLoad.begin(); !needLoad.done(s); s = needLoad.advance(s))
cost[needLoad.get(s)].loads += weight;
}
for (Uint32 r = 0; r < rangeCount; r++) {
SpillCost& c = cost[r];
c.cost = 2 * (c.loads + c.stores) - c.copies;
}
registerAllocator.spillCost = cost;
}
#endif // _SPILLING_H_

View File

@@ -0,0 +1,239 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#ifndef _SPLITS_H_
#define _SPLITS_H_
#include "Fundamentals.h"
#include <string.h>
#include "Pool.h"
#include "ControlGraph.h"
#include "ControlNodes.h"
#include "Instruction.h"
#include "RegisterAllocator.h"
#include "RegisterAllocatorTools.h"
UT_EXTERN_LOG_MODULE(RegAlloc);
template <class RegisterPressure>
struct Splits
{
static void calculateSplitCosts(RegisterAllocator& registerAllocator);
static bool findSplit(RegisterAllocator& registerAllocator, RegisterName* color, RegisterName range);
static void insertSplitCode(RegisterAllocator& registerAllocator);
};
struct SplitCost
{
double loads;
double stores;
};
template <class RegisterPressure>
void Splits<RegisterPressure>::insertSplitCode(RegisterAllocator& /*registerAllocator*/)
{
// FIX
}
template <class RegisterPressure>
bool Splits<RegisterPressure>::findSplit(RegisterAllocator& registerAllocator, RegisterName* color, RegisterName range)
{
Pool& pool = registerAllocator.pool;
NameLinkedList** neighborsWithColor = new(pool) NameLinkedList*[6]; // FIX
memset(neighborsWithColor, '\0', 6 * sizeof(NameLinkedList*));
InterferenceGraph<RegisterPressure>& iGraph = registerAllocator.iGraph;
for (InterferenceVector* vector = iGraph.getInterferenceVector(range); vector != NULL; vector = vector->next)
for (Int32 i = vector->count - 1; i >=0; --i) {
RegisterName neighbor = vector->neighbors[i];
RegisterName c = color[neighbor];
if (c < 6) { // FIX
NameLinkedList* node = new(pool) NameLinkedList();
node->name = neighbor;
node->next = neighborsWithColor[c];
neighborsWithColor[c] = node;
}
}
bool splitAroundName = true;
LiveRangeGraph<RegisterPressure>& lGraph = registerAllocator.lGraph;
RegisterName bestColor = RegisterName(6); // FIX
double bestCost = registerAllocator.spillCost[range].cost;
SplitCost* splitCost = registerAllocator.splitCost;
for (RegisterName i = RegisterName(0); i < 6; i = RegisterName(i + 1)) { // FIX
double splitAroundNameCost = 0.0;
bool canSplitAroundName = true;
SplitCost& sCost = splitCost[range];
double addedCost = 2.0 * (sCost.stores + sCost.loads);
for (NameLinkedList* node = neighborsWithColor[i]; node != NULL; node = node->next) {
RegisterName neighbor = node->name;
if (lGraph.haveEdge(neighbor, range)) {
canSplitAroundName = false;
break;
} else
splitAroundNameCost += addedCost;
}
if (canSplitAroundName && splitAroundNameCost < bestCost) {
bestCost = splitAroundNameCost;
bestColor = i;
splitAroundName = true;
}
double splitAroundColorCost = 0.0;
bool canSplitAroundColor = true;
for (NameLinkedList* node = neighborsWithColor[i]; node != NULL; node = node->next) {
RegisterName neighbor = node->name;
if (lGraph.haveEdge(range, neighbor)) {
canSplitAroundColor = false;
break;
} else {
SplitCost& sCost = splitCost[neighbor];
double addedCost = 2.0 * (sCost.stores + sCost.loads);
splitAroundColorCost += addedCost;
}
}
if (canSplitAroundColor && splitAroundColorCost < bestCost) {
bestCost = splitAroundColorCost;
bestColor = i;
splitAroundName = false;
}
}
if (bestColor < RegisterName(6)) {
color[range] = bestColor;
registerAllocator.splitFound = true;
NameLinkedList** splitAround = registerAllocator.splitAround;
if (splitAroundName)
for (NameLinkedList* node = neighborsWithColor[bestColor]; node != NULL; node = node->next) {
NameLinkedList* newNode = new(pool) NameLinkedList();
newNode->name = node->name;
newNode->next = splitAround[range];
splitAround[range] = newNode;
}
else
for (NameLinkedList* node = neighborsWithColor[bestColor]; node != NULL; node = node->next) {
NameLinkedList* newNode = new(pool) NameLinkedList();
RegisterName neighbor = node->name;
newNode->name = range;
newNode->next = splitAround[neighbor];
splitAround[neighbor] = newNode;
}
trespass("Found a split");
return true;
}
return false;
}
template <class RegisterPressure>
void Splits<RegisterPressure>::calculateSplitCosts(RegisterAllocator& registerAllocator)
{
Pool& pool = registerAllocator.pool;
Uint32 rangeCount = registerAllocator.rangeCount;
RegisterName* name2range = registerAllocator.name2range;
SplitCost* splitCost = new(pool) SplitCost[rangeCount];
memset(splitCost, '\0', rangeCount * sizeof(SplitCost));
SparseSet live(pool, rangeCount);
RegisterPressure::Set* liveIn = registerAllocator.liveness.liveIn;
RegisterPressure::Set* liveOut = registerAllocator.liveness.liveOut;
ControlGraph& controlGraph = registerAllocator.controlGraph;
ControlNode** nodes = controlGraph.dfsList;
Uint32 nNodes = controlGraph.nNodes;
for (Uint32 n = 0; n < nNodes; n++) {
ControlNode& node = *nodes[n];
double weight = doLog10(node.loopDepth);
live = liveOut[n];
ControlEdge* successorsEnd = node.getSuccessorsEnd();
for (ControlEdge* successorsPtr = node.getSuccessorsBegin(); successorsPtr < successorsEnd; successorsPtr++) {
ControlNode& successor = successorsPtr->getTarget();
if (successor.getControlKind() != ckEnd) {
RegisterPressure::Set& successorLiveIn = liveIn[successor.dfsNum];
for (SparseSet::iterator i = live.begin(); !live.done(i); i = live.advance(i)) {
RegisterName name = RegisterName(live.get(i));
if (!successorLiveIn.test(name))
splitCost[name].loads += doLog10(successor.loopDepth);
}
}
}
InstructionList& instructions = node.getInstructions();
for (InstructionList::iterator i = instructions.end(); !instructions.done(i); i = instructions.retreat(i)) {
Instruction& instruction = instructions.get(i);
InstructionUse* useBegin = instruction.getInstructionUseBegin();
InstructionUse* useEnd = instruction.getInstructionUseEnd();
InstructionUse* usePtr;
InstructionDefine* defineBegin = instruction.getInstructionDefineBegin();
InstructionDefine* defineEnd = instruction.getInstructionDefineEnd();
InstructionDefine* definePtr;
for (definePtr = defineBegin; definePtr < defineEnd; definePtr++)
if (definePtr->isRegister())
splitCost[name2range[definePtr->getRegisterName()]].stores += weight;
for (usePtr = useBegin; usePtr < useEnd; usePtr++)
if (usePtr->isRegister()) {
RegisterName range = name2range[usePtr->getRegisterName()];
if (!live.test(range)) {
if (&instruction != &instructions.last())
splitCost[range].loads += weight;
else {
ControlEdge* successorsEnd = node.getSuccessorsEnd();
for (ControlEdge* successorsPtr = node.getSuccessorsBegin(); successorsPtr < successorsEnd; successorsPtr++)
splitCost[range].loads += doLog10(successorsPtr->getTarget().loopDepth);
}
}
}
for (definePtr = defineBegin; definePtr < defineEnd; definePtr++)
if (definePtr->isRegister())
live.clear(name2range[definePtr->getRegisterName()]);
for (usePtr = useBegin; usePtr < useEnd; usePtr++)
if (usePtr->isRegister())
live.set(name2range[usePtr->getRegisterName()]);
}
}
NameLinkedList** splitAround = new(pool) NameLinkedList*[rangeCount];
memset(splitAround, '\0', rangeCount * sizeof(NameLinkedList*));
registerAllocator.splitAround = splitAround;
registerAllocator.splitCost = splitCost;
registerAllocator.splitFound = false;
}
#endif // _SPLITS_H_

View File

@@ -0,0 +1,186 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#include "Fundamentals.h"
#include "HashTable.h"
#include "Timer.h"
#include "Pool.h"
static Pool pool; // Pool for the Timer class.
static HashTable<TimerEntry*> timerEntries(pool); // Timers hashtable.
const nTimersInABlock = 128; // Number of timers in a block.
static PRTime *timers = new(pool) PRTime[nTimersInABlock]; // A block of timers.
static Uint8 nextTimer = 0; // nextAvailableTimer.
//
// Calibrate the call to PR_Now().
//
static PRTime calibrate()
{
PRTime t = PR_Now();
PRTime& a = *new(pool) PRTime();
// Call 10 times the PR_Now() function.
a = PR_Now(); a = PR_Now(); a = PR_Now(); a = PR_Now(); a = PR_Now(); a = PR_Now();
a = PR_Now(); a = PR_Now(); a = PR_Now(); a = PR_Now(); a = PR_Now(); a = PR_Now();
t = (PR_Now() - t + 9) / 10;
return t;
}
static PRTime adjust = calibrate();
//
// Return the named timer..
//
TimerEntry& Timer::getTimerEntry(const char* name)
{
if (!timerEntries.exists(name)) {
TimerEntry* newEntry = new(pool) TimerEntry();
newEntry->accumulator = 0;
newEntry->running = false;
timerEntries.add(name, newEntry);
}
return *timerEntries[name];
}
//
// Return a reference to a new timer.
//
PRTime& Timer::getNewTimer()
{
if (nextTimer >= nTimersInABlock) {
timers = new(pool) PRTime[nTimersInABlock];
nextTimer = 0;
}
return timers[nextTimer++];
}
static Uint32 timersAreFrozen = 0;
//
// Start the named timer.
//
void Timer::start(const char* name)
{
if (timersAreFrozen)
return;
freezeTimers();
TimerEntry& timer = getTimerEntry(name);
PR_ASSERT(!timer.running);
timer.accumulator = 0;
timer.running = true;
timer.done = false;
unfreezeTimers();
}
//
// Stop the named timer.
//
void Timer::stop(const char* name)
{
if (timersAreFrozen)
return;
freezeTimers();
TimerEntry& timer = getTimerEntry(name);
PR_ASSERT(timer.running);
timer.running = false;
timer.done = true;
unfreezeTimers();
}
//
// Freeze all the running timers.
//
void Timer::freezeTimers()
{
PRTime when = PR_Now() - adjust;
if (timersAreFrozen == 0) {
Vector<TimerEntry*> entries = timerEntries;
Uint32 count = entries.size();
for (Uint32 i = 0; i < count; i++) {
TimerEntry& entry = *entries[i];
if (entry.running) {
entry.accumulator += (when - *entry.startTime);
}
}
}
timersAreFrozen++;
}
//
// Unfreeze all the running timers.
//
void Timer::unfreezeTimers()
{
PR_ASSERT(timersAreFrozen != 0);
timersAreFrozen--;
if (timersAreFrozen == 0) {
Vector<TimerEntry *> entries = timerEntries;
Uint32 count = entries.size();
PRTime& newStart = getNewTimer();
for (Uint32 i = 0; i < count; i++) {
TimerEntry& entry = *entries[i];
if (entry.running) {
entry.startTime = &newStart;
}
}
newStart = PR_Now();
}
}
//
// Print the named timer in the file f.
//
void Timer::print(FILE* f, const char *name)
{
if (timersAreFrozen)
return;
freezeTimers();
TimerEntry& timer = getTimerEntry(name);
PR_ASSERT(timer.done);
PRTime elapsed = timer.accumulator;
if (elapsed >> 32) {
fprintf(f, "[timer %s out of range]\n", name);
} else {
fprintf(f, "[%dus in %s]\n", Uint32(elapsed), name);
}
fflush(f);
unfreezeTimers();
}

View File

@@ -0,0 +1,80 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#ifndef _TIMER_H_
#define _TIMER_H_
#include "Fundamentals.h"
#include "HashTable.h"
#include "prtime.h"
//
// Naming convention:
// As the class Timer contains only static methods, the timer's name should start with the
// module name. Otherwise starting 2 timers with the same name will assert.
//
#ifndef NO_TIMER
struct TimerEntry
{
PRTime *startTime; // Current time when we start the timer.
PRTime accumulator; // Time spent in this timer.
bool running; // True if the timer is running.
bool done; // True if the timer was running and was stopped.
};
class Timer
{
private:
// Return the named timer.
static TimerEntry& getTimerEntry(const char* name);
// Return a reference to a new Timer.
static PRTime& getNewTimer();
public:
// Start the timer.
static void start(const char* name);
// Stop the timer.
static void stop(const char* name);
// Freeze all the running timers.
static void freezeTimers();
// Unfreeze all the running timers.
static void unfreezeTimers();
// Print the timer.
static void print(FILE* f, const char *name);
};
inline void startTimer(const char* name) {Timer::start(name);}
inline void stopTimer(const char* name) {Timer::stop(name); Timer::print(stdout, name);}
#define START_TIMER_SAFE Timer::freezeTimers();
#define END_TIMER_SAFE Timer::unfreezeTimers();
#define TIMER_SAFE(x) START_TIMER_SAFE x; END_TIMER_SAFE
#else /* NO_TIMER */
inline void startTimer(const char* /*name*/) {}
inline void stopTimer(const char* /*name*/) {}
#define START_TIMER_SAFE
#define END_TIMER_SAFE
#define TIMER_SAFE(x) x;
#endif /* NO_TIMER */
#endif /* _TIMER_H_ */

View File

@@ -16,29 +16,25 @@
* Reserved.
*/
/*
#include "Fundamentals.h"
#include "VirtualRegister.h"
#include "Instruction.h"
The RDF/XML source interface. An RDF/XML source is capable of
producing serialized RDF/XML to an output stream.
//------------------------------------------------------------------------------
// VirtualRegister -
*/
#ifdef MANUAL_TEMPLATES
template class IndexedPool<VirtualRegister>;
#endif
#ifndef nsIRDFXMLSource_h__
#define nsIRDFXMLSource_h__
class nsIOutputStream;
// {4DA56F10-99FE-11d2-8EBB-00805F29F370}
#define NS_IRDFXMLSOURCE_IID \
{ 0x4da56f10, 0x99fe, 0x11d2, { 0x8e, 0xbb, 0x0, 0x80, 0x5f, 0x29, 0xf3, 0x70 } }
class nsIRDFXMLSource : public nsISupports
// Set the defining instruction.
//
void VirtualRegister::setDefiningInstruction(Instruction& instruction)
{
public:
static const nsIID& IID() { static nsIID iid = NS_IRDFXMLSOURCE_IID; return iid; }
if (definingInstruction != NULL) {
if ((instruction.getFlags() & ifCopy) && (definingInstruction->getFlags() & ifPhiNode))
return;
}
definingInstruction = &instruction;
}
NS_IMETHOD Serialize(nsIOutputStream* aStream) = 0;
};
#endif // nsIRDFXMLSource_h__

View File

@@ -0,0 +1,116 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#ifndef _VIRTUAL_REGISTER_H_
#define _VIRTUAL_REGISTER_H_
#include "Fundamentals.h"
#include "IndexedPool.h"
#include <string.h>
#include "RegisterTypes.h"
#include "RegisterClass.h"
//------------------------------------------------------------------------------
// VirtualRegister - 24b
class Instruction;
class VirtualRegister : public IndexedObject<VirtualRegister>
{
public:
Instruction* definingInstruction; // Instruction defining this VR.
// Initialize a VR of the given classKind.
VirtualRegister(RegisterClassKind /*classKind*/) : definingInstruction(NULL) {}
// Return the defining instruction for this VR.
Instruction* getDefiningInstruction() const {return definingInstruction;}
// Set the defining instruction.
void setDefiningInstruction(Instruction& insn);
};
// Return true if the VirtualRegisters are equals. The only way 2 VRs can be equal is if
// they have the same index. If they have the same index then they are at the same
// address in the indexed pool.
//
inline bool operator == (const VirtualRegister& regA, const VirtualRegister& regB) {return &regA == &regB;}
//------------------------------------------------------------------------------
// VirtualRegisterManager -
struct PreColoredRegister
{
RegisterID id;
RegisterName color;
};
class VirtualRegisterManager
{
private:
IndexedPool<VirtualRegister> registerPool;
PreColoredRegister machineRegister[6];
public:
VirtualRegisterManager()
{
for (Uint32 i = 0; i < 6; i++)
machineRegister[i].id = invalidID;
}
// Return the VirtualRegister at the given index.
VirtualRegister& getVirtualRegister(RegisterName name) const {return registerPool.get(name);}
// Return a new VirtualRegister.
RegisterID newVirtualRegister(RegisterClassKind classKind)
{
VirtualRegister& vReg = *new(registerPool) VirtualRegister(classKind);
RegisterID rid;
setName(rid, RegisterName(vReg.getIndex()));
setClass(rid, classKind);
return rid;
}
RegisterID newMachineRegister(RegisterName name, RegisterClassKind classKind)
{
RegisterID rid = machineRegister[name].id;
if (rid == invalidID) {
rid = newVirtualRegister(classKind);
DEBUG_ONLY(setMachineRegister(rid));
machineRegister[name].id = rid;
machineRegister[name].color = name;
}
return rid;
}
PreColoredRegister* getMachineRegistersBegin() const {return (PreColoredRegister*) machineRegister;} // FIX
PreColoredRegister* getMachineRegistersEnd() const {return (PreColoredRegister*) &machineRegister[6];} // FIX
// Return the VirtualRegister universe size.
Uint32 getSize() {return registerPool.getSize();}
void setSize(Uint32 size) {registerPool.setSize(size);}
};
#endif // _VIRTUAL_REGISTER_H_

View File

@@ -1,33 +0,0 @@
#!gmake
#
# The contents of this file are subject to the Netscape Public License
# Version 1.0 (the "NPL"); you may not use this file except in
# compliance with the NPL. You may obtain a copy of the NPL at
# http://www.mozilla.org/NPL/
#
# Software distributed under the NPL is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
# for the specific language governing rights and limitations under the
# NPL.
#
# The Initial Developer of this code under the NPL is Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1998 Netscape Communications Corporation. All Rights
# Reserved.
DEPTH = ..
topsrcdir = @top_srcdir@
srcdir = @srcdir@
VPATH = @srcdir@
include $(DEPTH)/config/autoconf.mk
DIRS = base content datasource build
ifdef ENABLE_TESTS
DIRS += tests
endif
include $(topsrcdir)/config/config.mk
include $(topsrcdir)/config/rules.mk

View File

@@ -1,29 +0,0 @@
#!gmake
#
# The contents of this file are subject to the Netscape Public License
# Version 1.0 (the "NPL"); you may not use this file except in
# compliance with the NPL. You may obtain a copy of the NPL at
# http://www.mozilla.org/NPL/
#
# Software distributed under the NPL is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
# for the specific language governing rights and limitations under the
# NPL.
#
# The Initial Developer of this code under the NPL is Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1998 Netscape Communications Corporation. All Rights
# Reserved.
DEPTH = ../..
topsrcdir = @top_srcdir@
srcdir = @srcdir@
VPATH = @srcdir@
include $(DEPTH)/config/autoconf.mk
DIRS = public src
include $(topsrcdir)/config/config.mk
include $(topsrcdir)/config/rules.mk

View File

@@ -1,27 +0,0 @@
#!gmake
#
# The contents of this file are subject to the Netscape Public License
# Version 1.0 (the "NPL"); you may not use this file except in
# compliance with the NPL. You may obtain a copy of the NPL at
# http://www.mozilla.org/NPL/
#
# Software distributed under the NPL is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
# for the specific language governing rights and limitations under the
# NPL.
#
# The Initial Developer of this code under the NPL is Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1998 Netscape Communications Corporation. All Rights
# Reserved.
DEPTH=..\..
MODULE = rdf
DIRS=\
public \
src \
$(NULL)
include <$(DEPTH)\config\rules.mak>

View File

@@ -1,11 +0,0 @@
rdf.h
nsIRDFCompositeDataSource.h
nsIRDFContentSink.h
nsIRDFCursor.h
nsIRDFDataSource.h
nsIRDFNode.h
nsIRDFObserver.h
nsIRDFResourceFactory.h
nsIRDFService.h
nsIRDFXMLDataSource.h
nsIRDFXMLSource.h

View File

@@ -1,46 +0,0 @@
#!gmake
#
# The contents of this file are subject to the Netscape Public License
# Version 1.0 (the "NPL"); you may not use this file except in
# compliance with the NPL. You may obtain a copy of the NPL at
# http://www.mozilla.org/NPL/
#
# Software distributed under the NPL is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
# for the specific language governing rights and limitations under the
# NPL.
#
# The Initial Developer of this code under the NPL is Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1998 Netscape Communications Corporation. All Rights
# Reserved.
DEPTH=../../..
topsrcdir = @top_srcdir@
srcdir = @srcdir@
VPATH = @srcdir@
include $(DEPTH)/config/autoconf.mk
MODULE = rdf
EXPORTS = \
rdf.h \
nsIRDFCompositeDataSource.h \
nsIRDFContentSink.h \
nsIRDFCursor.h \
nsIRDFDataSource.h \
nsIRDFNode.h \
nsIRDFObserver.h \
nsIRDFResourceFactory.h \
nsIRDFService.h \
nsIRDFXMLDataSource.h \
nsIRDFXMLSource.h \
nsRDFResource.h \
$(NULL)
EXPORTS := $(addprefix $(srcdir)/, $(EXPORTS))
include $(topsrcdir)/config/config.mk
include $(topsrcdir)/config/rules.mk

View File

@@ -1,40 +0,0 @@
#!gmake
#
# The contents of this file are subject to the Netscape Public License
# Version 1.0 (the "NPL"); you may not use this file except in
# compliance with the NPL. You may obtain a copy of the NPL at
# http://www.mozilla.org/NPL/
#
# Software distributed under the NPL is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
# for the specific language governing rights and limitations under the
# NPL.
#
# The Initial Developer of this code under the NPL is Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1998 Netscape Communications Corporation. All Rights
# Reserved.
MODULE=rdf
DEPTH=..\..\..
EXPORTS=\
rdf.h \
nsIRDFCompositeDataSource.h \
nsIRDFContentSink.h \
nsIRDFCursor.h \
nsIRDFDataSource.h \
nsIRDFNode.h \
nsIRDFObserver.h \
nsIRDFResourceFactory.h \
nsIRDFService.h \
nsIRDFXMLDataSource.h \
nsIRDFXMLSource.h \
nsRDFResource.h \
$(NULL)
include <$(DEPTH)/config/rules.mak>

View File

@@ -1,60 +0,0 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/*
RDF composite data source interface. A composite data source
aggregates individual RDF data sources.
*/
#ifndef nsIRDFCompositeDataSource_h__
#define nsIRDFCompositeDataSource_h__
#include "nsISupports.h"
#include "nsIRDFDataSource.h"
class nsIRDFDataSource;
// 96343820-307c-11d2-bc15-00805f912fe7
#define NS_IRDFCOMPOSITEDATASOURCE_IID \
{ 0x96343820, 0x307c, 0x11d2, { 0xb, 0x15, 0x00, 0x80, 0x5f, 0x91, 0x2f, 0xe7 } }
/**
* An <tt>nsIRDFCompositeDataSource</tt> composes individual data sources, providing
* the illusion of a single, coherent RDF graph.
*/
class nsIRDFCompositeDataSource : public nsIRDFDataSource {
public:
static const nsIID& IID() { static nsIID iid = NS_IRDFCOMPOSITEDATASOURCE_IID; return iid; }
/**
* Add a datasource the the database.
*/
NS_IMETHOD AddDataSource(nsIRDFDataSource* source) = 0;
/**
* Remove a datasource from the database
*/
NS_IMETHOD RemoveDataSource(nsIRDFDataSource* source) = 0;
};
extern nsresult
NS_NewRDFCompositeDataSource(nsIRDFCompositeDataSource** result);
#endif /* nsIRDFCompositeDataSource_h__ */

View File

@@ -1,72 +0,0 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "License"); you may not use this file except in
* compliance with the License. You may obtain a copy of the License at
* http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS IS"
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
* the License for the specific language governing rights and limitations
* under the License.
*
* The Original Code is Mozilla Communicator client code.
*
* The Initial Developer of the Original Code is Netscape Communications
* Corporation. Portions created by Netscape are Copyright (C) 1998
* Netscape Communications Corporation. All Rights Reserved.
*/
/*
An RDF-specific content sink. The content sink is targeted by the
parser for building the RDF content model.
*/
#ifndef nsIRDFContentSink_h___
#define nsIRDFContentSink_h___
#include "nsIXMLContentSink.h"
class nsIDocument;
class nsIRDFXMLDataSource;
class nsINameSpaceManager;
class nsIURL;
// {751843E2-8309-11d2-8EAC-00805F29F370}
#define NS_IRDFCONTENTSINK_IID \
{ 0x751843e2, 0x8309, 0x11d2, { 0x8e, 0xac, 0x0, 0x80, 0x5f, 0x29, 0xf3, 0x70 } }
/**
* This interface represents a content sink for RDF files.
*/
class nsIRDFContentSink : public nsIXMLContentSink {
public:
static const nsIID& IID() { static nsIID iid = NS_IRDFCONTENTSINK_IID; return iid; }
/**
* Initialize the content sink.
*/
NS_IMETHOD Init(nsIURL* aURL, nsINameSpaceManager* aNameSpaceManager) = 0;
/**
* Set the content sink's RDF Data source
*/
NS_IMETHOD SetDataSource(nsIRDFXMLDataSource* aDataSource) = 0;
/**
* Retrieve the content sink's RDF data source.
*/
NS_IMETHOD GetDataSource(nsIRDFXMLDataSource*& rDataSource) = 0;
};
/**
* This constructs a content sink that can be used without a
* document, say, to create a stand-alone in-memory graph.
*/
nsresult
NS_NewRDFContentSink(nsIRDFContentSink** aResult);
#endif // nsIRDFContentSink_h___

View File

@@ -1,174 +0,0 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/*
Interfaces for RDF cursors, including nsIRDFCursor,
nsIRDFAssertionCursor, nsIRDFArcsInCursor, nsIRDFArcsOutCursor,
nad nsIRDFResourceCursor.
*/
#ifndef nsIRDFCursor_h__
#define nsIRDFCursor_h__
#include "nsISupports.h"
#include "prtypes.h"
#include "rdf.h" // for error codes
class nsIRDFDataSource;
class nsIRDFNode;
class nsIRDFResource;
// 1c2abdb0-4cef-11d2-bc16-00805f912fe7
#define NS_IRDFCURSOR_IID \
{ 0x1c2abdb0, 0x4cef, 0x11d2, { 0xbc, 0x16, 0x00, 0x80, 0x5f, 0x91, 0x2f, 0xe7 } }
/**
* An abstract base interface that is the basis for all RDF cursors.
*/
class nsIRDFCursor : public nsISupports {
public:
static const nsIID& IID() { static nsIID iid = NS_IRDFCURSOR_IID; return iid; }
/**
* Advance the cursor to the next element.
* @return NS_ERROR_RDF_CURSOR_EMPTY if the cursor has reached the end
* and there are no more elements to enumerate; otherwise, NS_OK
* unless a catastrophic error occurs.
*/
NS_IMETHOD Advance(void) = 0;
/* Retrieve the data source from which the current item was obtained.
* @return NS_OK, unless a catastrophic error occurs.
*/
NS_IMETHOD GetDataSource(nsIRDFDataSource** aDataSource) = 0;
/**
* Irrespective of the query, a cursor is an interator over a set.
* This allows you to obtain the current value.
*/
NS_IMETHOD GetValue(nsIRDFNode** aValue) = 0;
};
// {1ED57100-9904-11d2-8EBA-00805F29F370}
#define NS_IRDFASSERTIONCURSOR_IID \
{ 0x1ed57100, 0x9904, 0x11d2, { 0x8e, 0xba, 0x0, 0x80, 0x5f, 0x29, 0xf3, 0x70 } }
/**
* A cursor that enumerates assertions
* @seealso nsIRDFDataSource::GetTargetS(), nsIRDFDataSource::GetSources()
*/
class nsIRDFAssertionCursor : public nsIRDFCursor {
public:
static const nsIID& IID() { static nsIID iid = NS_IRDFASSERTIONCURSOR_IID; return iid; }
/**
* Retrieve the assertion's subject resource.
* @return NS_OK, unless a catastrophic error occurs.
*/
NS_IMETHOD GetSubject(nsIRDFResource** aSubject) = 0;
/**
* Retrieve the assertion's predicate resource.
* @return NS_OK, unless a catastrophic error occurs.
*/
NS_IMETHOD GetPredicate(nsIRDFResource** aPredicate) = 0;
/**
* Retrieve the assertion's object node.
* @return NS_OK, unless a catastrophic error occurs.
*/
NS_IMETHOD GetObject(nsIRDFNode** aObject) = 0;
/**
* Retrieve the assertion's truth value.
* @return NS_OK, unless a catastrophic error occurs.
*/
NS_IMETHOD GetTruthValue(PRBool* aTruthValue) = 0;
};
// {1ED57101-9904-11d2-8EBA-00805F29F370}
#define NS_IRDFARCSOUTCURSOR_IID \
{ 0x1ed57101, 0x9904, 0x11d2, { 0x8e, 0xba, 0x0, 0x80, 0x5f, 0x29, 0xf3, 0x70 } }
/**
* A cursor that enumerates the outbound arcs from a resource node.
* @seealso nsIRDFDataSource::ArcsOut()
*/
class nsIRDFArcsOutCursor : public nsIRDFCursor {
public:
static const nsIID& IID() { static nsIID iid = NS_IRDFARCSOUTCURSOR_IID; return iid; }
/**
* Retrieve the "subject" node from which the arcs originate.
* @return NS_OK, unless a catastrophic error occurs.
*/
NS_IMETHOD GetSubject(nsIRDFResource** aSubject) = 0;
/**
* Retrieve the predicate label of the arc.
* @return NS_OK, unless a catastrophic error occurs.
*/
NS_IMETHOD GetPredicate(nsIRDFResource** aPredicate) = 0;
};
// {1ED57102-9904-11d2-8EBA-00805F29F370}
#define NS_IRDFARCSINCURSOR_IID \
{ 0x1ed57102, 0x9904, 0x11d2, { 0x8e, 0xba, 0x0, 0x80, 0x5f, 0x29, 0xf3, 0x70 } }
/**
* A cursor that enumerates the inbound arcs to a node.
* @seealso nsIRDFDataSource::ArcsIn()
*/
class nsIRDFArcsInCursor : public nsIRDFCursor {
public:
static const nsIID& IID() { static nsIID iid = NS_IRDFARCSINCURSOR_IID; return iid; }
/**
* Retrieve the "object" node in which the arc terminates.
* @return NS_OK, unless a catastrophic error occurs.
*/
NS_IMETHOD GetObject(nsIRDFNode** aObject) = 0;
/**
* Retrieve the predicate label of the arc
* @return NS_OK, unless a catastrophic error occurs.
*/
NS_IMETHOD GetPredicate(nsIRDFResource** aPredicate) = 0;
};
// {C2850C10-B0CF-11d2-A684-00104BDE6048}
#define NS_IRDFRESOURCECURSOR_IID \
{ 0xc2850c10, 0xb0cf, 0x11d2, { 0xa6, 0x84, 0x0, 0x10, 0x4b, 0xde, 0x60, 0x48 } }
/**
* A cursor that enumerates all of the resources in a data source.
*/
class nsIRDFResourceCursor : public nsIRDFCursor {
public:
static const nsIID& IID() { static nsIID iid = NS_IRDFRESOURCECURSOR_IID; return iid; }
NS_IMETHOD GetResource(nsIRDFResource** aResource) = 0;
};
#endif /* nsIRDFCursor_h__ */

View File

@@ -1,210 +0,0 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/*
The RDF data source interface. An RDF data source presents a
graph-like interface to a back-end service.
*/
#ifndef nsIRDFDataSource_h__
#define nsIRDFDataSource_h__
#include "nsISupports.h"
// {0F78DA58-8321-11d2-8EAC-00805F29F370}
#define NS_IRDFDATASOURCE_IID \
{ 0xf78da58, 0x8321, 0x11d2, { 0x8e, 0xac, 0x0, 0x80, 0x5f, 0x29, 0xf3, 0x70 } }
class nsIRDFAssertionCursor;
class nsIRDFArcsInCursor;
class nsIRDFArcsOutCursor;
class nsIRDFDataBase;
class nsIRDFNode;
class nsIRDFObserver;
class nsIRDFResource;
class nsIRDFResourceCursor;
/**
* An RDF data source.
*/
class nsIRDFDataSource : public nsISupports {
public:
static const nsIID& IID() { static nsIID iid = NS_IRDFDATASOURCE_IID; return iid; }
// XXX I didn't make some of these methods "const" because it's
// probably pretty likely that many data sources will just make
// stuff up at runtime to answer queries.
/**
* Specify the URI for the data source: this is the prefix
* that will be used to register the data source in the
* data source registry.
*/
NS_IMETHOD Init(const char* uri) = 0;
/**
* Retrieve the URI of the data source.
*/
NS_IMETHOD GetURI(const char* *uri) const = 0;
/**
* Find an RDF resource that points to a given node over the
* specified arc & truth value
*
* @return NS_ERROR_FAILURE if there is no source that leads
* to the target with the specified property.
*/
NS_IMETHOD GetSource(nsIRDFResource* property,
nsIRDFNode* target,
PRBool tv,
nsIRDFResource** source /* out */) = 0;
/**
* Find all RDF resources that point to a given node over the
* specified arc & truth value
*
* @return NS_OK unless a catastrophic error occurs. If the
* method returns NS_OK, you may assume that nsIRDFCursor points
* to a valid (but possibly empty) cursor.
*/
NS_IMETHOD GetSources(nsIRDFResource* property,
nsIRDFNode* target,
PRBool tv,
nsIRDFAssertionCursor** sources /* out */) = 0;
/**
* Find a child of that is related to the source by the given arc
* arc and truth value
*
* @return NS_ERROR_FAILURE if there is no target accessable from the
* source via the specified property.
*/
NS_IMETHOD GetTarget(nsIRDFResource* source,
nsIRDFResource* property,
PRBool tv,
nsIRDFNode** target /* out */) = 0;
/**
* Find all children of that are related to the source by the given arc
* arc and truth value.
*
* @return NS_OK unless a catastrophic error occurs. If the
* method returns NS_OK, you may assume that nsIRDFCursor points
* to a valid (but possibly empty) cursor.
*/
NS_IMETHOD GetTargets(nsIRDFResource* source,
nsIRDFResource* property,
PRBool tv,
nsIRDFAssertionCursor** targets /* out */) = 0;
/**
* Add an assertion to the graph.
*/
NS_IMETHOD Assert(nsIRDFResource* source,
nsIRDFResource* property,
nsIRDFNode* target,
PRBool tv) = 0;
/**
* Remove an assertion from the graph.
*/
NS_IMETHOD Unassert(nsIRDFResource* source,
nsIRDFResource* property,
nsIRDFNode* target) = 0;
/**
* Query whether an assertion exists in this graph.
*
* @return NS_OK unless a catastrophic error occurs.
*/
NS_IMETHOD HasAssertion(nsIRDFResource* source,
nsIRDFResource* property,
nsIRDFNode* target,
PRBool tv,
PRBool* hasAssertion /* out */) = 0;
/**
* Add an observer to this data source.
*/
NS_IMETHOD AddObserver(nsIRDFObserver* n) = 0;
/**
* Remove an observer from this data source
*/
NS_IMETHOD RemoveObserver(nsIRDFObserver* n) = 0;
// XXX individual resource observers?
/**
* Get a cursor to iterate over all the arcs that point into a node.
*
* @return NS_OK unless a catastrophic error occurs. If the method
* returns NS_OK, you may assume that labels points to a valid (but
* possible empty) nsIRDFCursor object.
*/
NS_IMETHOD ArcLabelsIn(nsIRDFNode* node,
nsIRDFArcsInCursor** labels /* out */) = 0;
/**
* Get a cursor to iterate over all the arcs that originate in
* a resource.
*
* @return NS_OK unless a catastrophic error occurs. If the method
* returns NS_OK, you may assume that labels points to a valid (but
* possible empty) nsIRDFCursor object.
*/
NS_IMETHOD ArcLabelsOut(nsIRDFResource* source,
nsIRDFArcsOutCursor** labels /* out */) = 0;
/**
* Retrieve all of the resources that the data source currently
* refers to.
*/
NS_IMETHOD GetAllResources(nsIRDFResourceCursor** aCursor) = 0;
/**
* Request that a data source write it's contents out to
* permanent storage if applicable.
*/
NS_IMETHOD Flush(void) = 0;
/**
* Determine whether the specified command is enabled for the
* resource.
*
* XXX We will probably need to make this interface much more intricate
* to handle arbitrary arguments and selection sets.
*/
NS_IMETHOD IsCommandEnabled(const char* aCommand,
nsIRDFResource* aCommandTarget,
PRBool* aResult) = 0;
/**
* Perform the specified command on the resource.
*
* XXX We will probably need to make this interface much more intricate
* to handle arbitrary arguments and selection sets.
*/
NS_IMETHOD DoCommand(const char* aCommand,
nsIRDFResource* aCommandTarget) = 0;
};
#endif /* nsIRDFDataSource_h__ */

View File

@@ -1,116 +0,0 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/*
RDF node interfaces, including nsIRDFNode, nsIRDFResource, and
nsIRDFLiteral. Nodes are the elements that appear in RDF graphs.
*/
#ifndef nsIRDFNode_h__
#define nsIRDFNode_h__
#include "nscore.h"
#include "nsISupports.h"
// {0F78DA50-8321-11d2-8EAC-00805F29F370}
#define NS_IRDFNODE_IID \
{ 0xf78da50, 0x8321, 0x11d2, { 0x8e, 0xac, 0x0, 0x80, 0x5f, 0x29, 0xf3, 0x70 } }
/**
*
* Nodes are created using an instance of nsIRDFService, which
* should be obtained from the service manager:
*
* nsIRDFService* service;
* if (NS_SUCCEEDED(nsServiceManager::GetService(kCRDFServiceCID,
* kIRDFServiceIID,
* (nsISupports**) &service))) {
* nsIRDFNode* node;
* if (NS_SUCCEEDED(service->GetResource("http://foo.bar/", node))) {
* // do something useful here...
* NS_IF_RELEASE(node);
* }
* nsServiceManager::ReleaseService(kCRDFServiceCID, mgr);
* }
*
*/
class nsIRDFNode : public nsISupports {
public:
static const nsIID& IID() { static nsIID iid = NS_IRDFNODE_IID; return iid; }
/**
* Determine if two nodes are identical
*/
NS_IMETHOD EqualsNode(nsIRDFNode* that, PRBool* result) const = 0;
};
/**
* A resource node, which has unique object identity.
*/
// {E0C493D1-9542-11d2-8EB8-00805F29F370}
#define NS_IRDFRESOURCE_IID \
{ 0xe0c493d1, 0x9542, 0x11d2, { 0x8e, 0xb8, 0x0, 0x80, 0x5f, 0x29, 0xf3, 0x70 } }
class nsIRDFResource : public nsIRDFNode {
public:
static const nsIID& IID() { static nsIID iid = NS_IRDFRESOURCE_IID; return iid; }
/**
* Get the 8-bit string value of the node.
*/
NS_IMETHOD GetValue(const char* *uri) const = 0;
/**
* Determine if two resources are identical.
*/
NS_IMETHOD EqualsResource(const nsIRDFResource* resource, PRBool* result) const = 0;
/**
* Determine if two resources are identical.
*/
NS_IMETHOD EqualsString(const char* uri, PRBool* result) const = 0;
};
// {E0C493D2-9542-11d2-8EB8-00805F29F370}
#define NS_IRDFLITERAL_IID \
{ 0xe0c493d2, 0x9542, 0x11d2, { 0x8e, 0xb8, 0x0, 0x80, 0x5f, 0x29, 0xf3, 0x70 } }
class nsIRDFLiteral : public nsIRDFNode {
public:
static const nsIID& IID() { static nsIID iid = NS_IRDFLITERAL_IID; return iid; }
/**
* Get the Unicode string value of the node.
*/
NS_IMETHOD GetValue(const PRUnichar* *value) const = 0;
/**
* Determine if two resources are identical.
*/
NS_IMETHOD EqualsLiteral(const nsIRDFLiteral* literal, PRBool* result) const = 0;
};
#endif // nsIRDFNode_h__

View File

@@ -1,64 +0,0 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/*
The RDF data source observer interface. Data source observers are
notified when the contents of the graph change.
*/
#ifndef nsIRDFObserver_h__
#define nsIRDFObserver_h__
#include "nsISupports.h"
class nsIRDFDataSource;
class nsIRDFResource;
class nsIRDFNode;
/**
* An observer on an nsIRDFDataSource.
*/
// 3cc75360-484a-11d2-bc16-00805f912fe7
#define NS_IRDFOBSERVER_IID \
{ 0x3cc75360, 0x484a, 0x11d2, { 0xbc, 0x16, 0x00, 0x80, 0x5f, 0x91, 0x2f, 0xe7 } }
class nsIRDFObserver : public nsISupports
{
public:
static const nsIID& IID() { static nsIID iid = NS_IRDFOBSERVER_IID; return iid; }
/**
* Called whenever a new assertion is made in the data source.
*/
NS_IMETHOD OnAssert(nsIRDFResource* subject,
nsIRDFResource* predicate,
nsIRDFNode* object) = 0;
/**
* Called whenever an assertion is removed from the data source.
*/
NS_IMETHOD OnUnassert(nsIRDFResource* subject,
nsIRDFResource* predicate,
nsIRDFNode* object) = 0;
};
#endif /* nsIRDFObserver_h__ */

View File

@@ -1,74 +0,0 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/*
The RDF resource factory interface. A resource factory produces
nsIRDFResource objects for a specified URI prefix.
*/
#ifndef nsIRDFResourceFactory_h__
#define nsIRDFResourceFactory_h__
#include "nsISupports.h"
class nsIRDFResource;
// {8CE57A20-A02C-11d2-8EBF-00805F29F370}
#define NS_IRDFRESOURCEFACTORY_IID \
{ 0x8ce57a20, 0xa02c, 0x11d2, { 0x8e, 0xbf, 0x0, 0x80, 0x5f, 0x29, 0xf3, 0x70 } }
/**
* A resource factory can be registered with <tt>nsIRDFService</tt> to produce
* resources with a certain <i>URI prefix</i>. The resource factory will be called
* upon to create a new resource, which the resource manager will cache.
*
* @see nsIRDFService::RegisterResourceFactory
* @see nsIRDFService::UnRegisterResourceFactory
*/
class nsIRDFResourceFactory : public nsISupports
{
public:
static const nsIID& IID() { static nsIID iid = NS_IRDFRESOURCEFACTORY_IID; return iid; }
/**
* This method is called by the RDF service to create a new
* resource.
*
* NOTE. After constructing a new resource via a call to
* nsIRDFResourceFactory::CreateResource(), the implementation of
* the RDF service calls nsIRDFResource::GetValue() on the
* resulting resource. The resulting <tt>const char*</tt> is used
* as a key for the resource cache. (The assumption is that the
* custom resource implementation needs to store this information,
* anyway.)
*
* This has important implications for a custom resource's
* destructor; namely, that you must call
* nsIRDFService::UnCacheResource() <b>before</b> releasing the
* storage for the resource's URI. See
* nsIRDFService::UnCacheResource() for more information.
*/
NS_IMETHOD CreateResource(const char* aURI, nsIRDFResource** aResult) = 0;
};
#endif // nsIRDFResourceFactory_h__

View File

@@ -1,176 +0,0 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/*
The RDF service interface. This is a singleton object, and should be
obtained from the <tt>nsServiceManager</tt>.
XXX I'm not particularly happy with the current APIs for named data
sources. The idea is that you want "rdf:bookmarks" to always map to
the "bookmarks" data store. The thing that bothers me now is that
the implementation has to pre-load all of the data sources: that
means you need to parse the bookmarks file, read the history, etc.,
rather than doing this on-demand. With a little thought, it may be
able to enormously improve these APIs so that pre-loading data
sources is unnecessary.
*/
#ifndef nsIRDFService_h__
#define nsIRDFService_h__
#include "nscore.h"
#include "nsISupports.h"
class nsIRDFDataBase;
class nsIRDFDataSource;
class nsIRDFLiteral;
class nsIRDFResource;
class nsIRDFResourceFactory;
typedef nsresult (*NSDataSourceConstructorCallback)(nsIRDFDataSource** aResult);
// {BFD05261-834C-11d2-8EAC-00805F29F370}
#define NS_IRDFSERVICE_IID \
{ 0xbfd05261, 0x834c, 0x11d2, { 0x8e, 0xac, 0x0, 0x80, 0x5f, 0x29, 0xf3, 0x70 } }
class nsIRDFService : public nsISupports {
public:
static const nsIID& IID() { static nsIID iid = NS_IRDFSERVICE_IID; return iid; }
// Resource management routines
/**
* Construct an RDF resource from a single-byte URI. <tt>nsIRDFSerivce</tt>
* caches resources that are in-use, so multiple calls to <tt>GetResource()</tt>
* for the same <tt>uri</tt> will return identical pointers.
*/
NS_IMETHOD GetResource(const char* uri, nsIRDFResource** resource) = 0;
/**
* Construct an RDF resource from a Unicode URI. This is provided
* as a convenience method, allowing automatic, in-line C++
* conversion from <tt>nsString</tt> objects. The <tt>uri</tt> will
* be converted to a single-byte representation internally.
*/
NS_IMETHOD GetUnicodeResource(const PRUnichar* uri, nsIRDFResource** resource) = 0;
/**
* Construct an RDF literal from a Unicode string.
*/
NS_IMETHOD GetLiteral(const PRUnichar* value, nsIRDFLiteral** literal) = 0;
/**
* Called to notify the resource manager that a resource is no
* longer in use. This method should only be called from the
* destructor of a "custom" resource implementation to notify the
* RDF service that the last reference to the resource has been
* released, so the resource is no longer valid.
*
* NOTE. As mentioned in nsIRDFResourceFactory::CreateResource(),
* the RDF service will use the result of
* nsIRDFResource::GetValue() as a key into its cache. For this
* reason, you must always un-cache the resource <b>before</b>
* releasing the storage for the <tt>const char*</tt> URI.
*/
NS_IMETHOD UnCacheResource(nsIRDFResource* resource) = 0;
/**
* Registers the specified resource factory as the producer for resources that
* have the specified <i>URI prefix</i>.
*/
NS_IMETHOD RegisterResourceFactory(const char* aURIPrefix, nsIRDFResourceFactory* aFactory) = 0;
/**
* Unregsters the specified resource factory from producing resources that have
* the specified <i>URI prefix</i>.
*/
NS_IMETHOD UnRegisterResourceFactory(const char* aURIPrefix) = 0;
// Data source management routines
/**
* Register a <i>named data source</i>. The RDF service will call
* <tt>nsIRDFDataSource::GetURI()</tt> to determine the URI under which to
* register the data source.
*
* Note that the data source will <i>not</i> be refcounted by the
* RDF service! The assumption is that an RDF data source registers
* with the service once it is initialized (via <tt>nsIRDFDataSource::Init()</tt>),
* and unregisters when the last reference to the data source is
* released.
*/
NS_IMETHOD RegisterDataSource(nsIRDFDataSource* dataSource) = 0;
/**
* Unregister a <i>named data source</i>. The RDF service will call
* <tt>nsIRDFDataSource::GetURI()</tt> to determine the URI under which the
* data source was registered.
*/
NS_IMETHOD UnregisterDataSource(nsIRDFDataSource* dataSource) = 0;
/**
* Register a constructor function that will create a named data source.
* The RDF service will call this function to attempt to create a
* named data source.
*/
NS_IMETHOD RegisterDataSourceConstructor(const char* aURI, NSDataSourceConstructorCallback aFn) = 0;
/**
* Unregister the constructor function for a named data source.
*/
NS_IMETHOD UnregisterDataSourceConstructor(const char* aURI) = 0;
/**
* Get the <i>named data source</i> corresponding to the URI. If a data
* source has been registered via <tt>RegisterDataSource()</tt>, that
* data source will be returned.
*
* If no data source is currently
* registered for the specified URI, and a data source <i>constructor</i>
* function has been registered via <tt>RegisterDatasourceConstructor()</tt>,
* the RDF service will call the constructor to attempt to construct a
* new data source. If construction is successful, the data source will
* be initialized via <tt>nsIRDFDataSource::Init()</tt>.
*/
NS_IMETHOD GetDataSource(const char* uri, nsIRDFDataSource** dataSource) = 0;
/**
* Create a database that contains the specified named data
* sources. This is a convenience method whose functionality is
* equivalent to (1) constructing a new nsIRDFDataBase object from
* the repository, and (2) iteratively adding the named data sources
* to it, in order.
*/
NS_IMETHOD CreateDatabase(const char** uris, nsIRDFDataBase** dataBase) = 0;
/**
* Get the database aggregating all the stuff that Navigator sees as a default,
* including a "local" store.
*/
NS_IMETHOD CreateBrowserDatabase(nsIRDFDataBase** dataBase) = 0;
};
extern nsresult
NS_NewRDFService(nsIRDFService** result);
#endif // nsIRDFService_h__

View File

@@ -1,60 +0,0 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#ifndef nsIRDFTree_h__
#define nsIRDFTree_h__
#include "nscore.h"
#include "nsISupports.h"
#include "prtypes.h"
#include "rdf.h" // for error codes
/*
An interface for presenting a tree view of an rdf datasource (or
database).
Any datasource can also support nsIRDFTree. The interface is purely
syntactic sugar for traversing simple tree where the child relation
corresponds to the property type nc:child (nc = http://home.netscape.com/NC-rdf#).
Each leaf is assumed to have a certain predefined set of properties
such as creationDate, size, lastModificationDate, lastVisitDate, etc.
This interface is substantially less general than nsIRDFDataSource,
but is adequate for bookmarks, the file system, history and a few
other very commonly used data sources.
*/
// {7D7EEBD1-AA41-11d2-80B7-006097B76B8E}
#define NS_IRDFTREE_IID \
{ 0x7d7eebd1, 0xaa41, 0x11d2, { 0x80, 0xb7, 0x0, 0x60, 0x97, 0xb7, 0x6b, 0x8e } };
class nsIRDFTree : public nsISupports {
public:
NS_IMETHOD ListChildren (nsIRDFResource* folder, nsVoidArray** result);
// XXX should define something called nsResourceArray and use that
NS_IMETHOD IsFolder (nsIRDFResource* node, PRBool* result);
NS_IMETHOD GetProperty (nsIRDFResource* node, nsIRDFResource* property,
nsIRDFNode** result);
}
#endif

View File

@@ -1,200 +0,0 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/*
This interface encapsulates information about an RDF/XML file,
including the root resource, CSS style sheets, and named data
sources.
This file also includes an observer interface for nsIRDFXMLDataSource
objects.
*/
#ifndef nsIRDFXMLDataSource_h__
#define nsIRDFXMLDataSource_h__
#include "nsIRDFDataSource.h"
class nsIAtom;
class nsIOutputStream;
class nsIURL;
class nsString;
// {EB1A5D30-AB33-11d2-8EC6-00805F29F370}
#define NS_IRDFXMLDOCUMENTOBSERVER_IID \
{ 0xeb1a5d30, 0xab33, 0x11d2, { 0x8e, 0xc6, 0x0, 0x80, 0x5f, 0x29, 0xf3, 0x70 } }
class nsIRDFXMLDataSource;
class nsIRDFXMLDataSourceObserver : public nsISupports
{
public:
static const nsIID& IID() { static nsIID iid = NS_IRDFXMLDOCUMENTOBSERVER_IID; return iid; }
/**
* Called when the RDF/XML document begins to load.
*/
NS_IMETHOD OnBeginLoad(nsIRDFXMLDataSource* aStream) = 0;
/**
* Called when the RDF/XML document load is interrupted for some reason.
*/
NS_IMETHOD OnInterrupt(nsIRDFXMLDataSource* aStream) = 0;
/**
* Called when an interrupted RDF/XML document load is resumed.
*/
NS_IMETHOD OnResume(nsIRDFXMLDataSource* aStream) = 0;
/**
* Called whtn the RDF/XML document load is complete.
*/
NS_IMETHOD OnEndLoad(nsIRDFXMLDataSource* aStream) = 0;
/**
* Called when the root resource of the RDF/XML document is found
*/
NS_IMETHOD OnRootResourceFound(nsIRDFXMLDataSource* aStream, nsIRDFResource* aResource) = 0;
/**
* Called when a CSS style sheet is included (via XML processing
* instruction) to the document.
*/
NS_IMETHOD OnCSSStyleSheetAdded(nsIRDFXMLDataSource* aStream, nsIURL* aCSSStyleSheetURL) = 0;
/**
* Called when a named data source is included (via XML processing
* instruction) to the document.
*/
NS_IMETHOD OnNamedDataSourceAdded(nsIRDFXMLDataSource* aStream, const char* aNamedDataSourceURI) = 0;
};
// {EB1A5D31-AB33-11d2-8EC6-00805F29F370}
#define NS_IRDFXMLDATASOURCE_IID \
{ 0xeb1a5d31, 0xab33, 0x11d2, { 0x8e, 0xc6, 0x0, 0x80, 0x5f, 0x29, 0xf3, 0x70 } }
class nsIRDFXMLDataSource : public nsIRDFDataSource
{
public:
static const nsIID& IID() { static nsIID iid = NS_IRDFXMLDATASOURCE_IID; return iid; }
/**
* Sets the RDF/XML stream to load either synchronously or
* asynchronously when nsIRDFDataSource::Init() is called.
* By default, the stream will load <em>asynchronously</em>.
*/
NS_IMETHOD SetSynchronous(PRBool aIsSynchronous) = 0;
/**
* Sets the RDF/XML stream's read-only status. By default,
* the stream will be read/write if the URL on which
* nsIRDFDataSource::Init() is called is writable.
*/
NS_IMETHOD SetReadOnly(PRBool aIsReadOnly) = 0;
/**
* Notify the document that the load is beginning.
*/
NS_IMETHOD BeginLoad(void) = 0;
/**
* Notify the document that the load is being interrupted.
*/
NS_IMETHOD Interrupt(void) = 0;
/**
* Notify the document that an interrupted load is being resumed.
*/
NS_IMETHOD Resume(void) = 0;
/**
* Notify the document that the load is ending.
*/
NS_IMETHOD EndLoad(void) = 0;
/**
* Set the root resource for the document.
*/
NS_IMETHOD SetRootResource(nsIRDFResource* aResource) = 0;
/**
* Retrieve the root resource for the document.
*/
NS_IMETHOD GetRootResource(nsIRDFResource** aResource) = 0;
/**
* Add a CSS style sheet to the document.
* @param aStyleSheetURL An nsIURL object that is the URL of the style
* sheet to add to the document.
*/
NS_IMETHOD AddCSSStyleSheetURL(nsIURL* aStyleSheetURL) = 0;
/**
* Get the set of style sheets that have been included in the
* document.
* @param aStyleSheetURLs (out) A pointer to an array of pointers to nsIURL objects.
* @param aCount (out) The number of nsIURL objects returned.
*/
NS_IMETHOD GetCSSStyleSheetURLs(nsIURL*** aStyleSheetURLs, PRInt32* aCount) = 0;
/**
* Add a named data source to the document.
* @param aNamedDataSoruceURI A URI identifying the data source.
*/
NS_IMETHOD AddNamedDataSourceURI(const char* aNamedDataSourceURI) = 0;
/**
* Get the set of named data sources that have been included in
* the document
* @param aNamedDataSourceURIs (out) A pointer to an array of C-style character
* strings.
* @param aCount (out) The number of named data sources in the array.
*/
NS_IMETHOD GetNamedDataSourceURIs(const char* const** aNamedDataSourceURIs, PRInt32* aCount) = 0;
/**
* Add a new namespace declaration to the RDF/XML document.
*/
NS_IMETHOD AddNameSpace(nsIAtom* aPrefix, const nsString& aURI) = 0;
/**
* Add an observer to the document. The observer will be notified of
* RDF/XML events via the nsIRDFXMLDataSourceObserver interface. Note that
* the observer is <em>not</em> reference counted.
*/
NS_IMETHOD AddXMLStreamObserver(nsIRDFXMLDataSourceObserver* aObserver) = 0;
/**
* Remove an observer from the document.
*/
NS_IMETHOD RemoveXMLStreamObserver(nsIRDFXMLDataSourceObserver* aObserver) = 0;
};
// Two different kinds of XML data sources exist for RDF: serialized RDF and XUL.
// These are the methods that make these data sources.
extern nsresult
NS_NewRDFXMLDataSource(nsIRDFXMLDataSource** result);
extern nsresult
NS_NewXULDataSource(nsIRDFXMLDataSource** result);
#endif // nsIRDFXMLDataSource_h__

View File

@@ -1,165 +0,0 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/*
This interface encapsulates information about an RDF/XML file,
including the root resource, CSS style sheets, and named data
sources.
This file also includes an observer interface for nsIRDFXMLDocument
objects.
*/
#ifndef nsIRDFXMLDocument_h__
#define nsIRDFXMLDocument_h__
#include "nsISupports.h"
class nsIOutputStream;
class nsIURL;
// {EB1A5D30-AB33-11d2-8EC6-00805F29F370}
#define NS_IRDFXMLDOCUMENTOBSERVER_IID \
{ 0xeb1a5d30, 0xab33, 0x11d2, { 0x8e, 0xc6, 0x0, 0x80, 0x5f, 0x29, 0xf3, 0x70 } }
class nsIRDFXMLDocumentObserver : public nsISupports
{
public:
/**
* Called when the RDF/XML document begins to load.
*/
NS_IMETHOD OnBeginLoad(void) = 0;
/**
* Called when the RDF/XML document load is interrupted for some reason.
*/
NS_IMETHOD OnInterrupt(void) = 0;
/**
* Called when an interrupted RDF/XML document load is resumed.
*/
NS_IMETHOD OnResume(void) = 0;
/**
* Called whtn the RDF/XML document load is complete.
*/
NS_IMETHOD OnEndLoad(void) = 0;
/**
* Called when the root resource of the RDF/XML document is found
*/
NS_IMETHOD OnRootResourceFound(nsIRDFResource* aResource) = 0;
/**
* Called when a CSS style sheet is included (via XML processing
* instruction) to the document.
*/
NS_IMETHOD OnCSSStyleSheetAdded(nsIURL* aCSSStyleSheetURL) = 0;
/**
* Called when a named data source is included (via XML processing
* instruction) to the document.
*/
NS_IMETHOD OnNamedDataSourceAdded(const char* aNamedDataSourceURI) = 0;
};
// {EB1A5D31-AB33-11d2-8EC6-00805F29F370}
#define NS_IRDFXMLDOCUMENT_IID \
{ 0xeb1a5d31, 0xab33, 0x11d2, { 0x8e, 0xc6, 0x0, 0x80, 0x5f, 0x29, 0xf3, 0x70 } }
class nsIRDFXMLDocument : public nsISupports
{
public:
/**
* Notify the document that the load is beginning.
*/
NS_IMETHOD BeginLoad(void) = 0;
/**
* Notify the document that the load is being interrupted.
*/
NS_IMETHOD Interrupt(void) = 0;
/**
* Notify the document that an interrupted load is being resumed.
*/
NS_IMETHOD Resume(void) = 0;
/**
* Notify the document that the load is ending.
*/
NS_IMETHOD EndLoad(void) = 0;
/**
* Set the root resource for the document.
*/
NS_IMETHOD SetRootResource(nsIRDFResource* aResource) = 0;
/**
* Retrieve the root resource for the document.
*/
NS_IMETHOD GetRootResource(nsIRDFResource** aResource) = 0;
/**
* Add a CSS style sheet to the document.
* @param aStyleSheetURL An nsIURL object that is the URL of the style
* sheet to add to the document.
*/
NS_IMETHOD AddCSSStyleSheetURL(nsIURL* aStyleSheetURL) = 0;
/**
* Get the set of style sheets that have been included in the
* document.
* @param aStyleSheetURLs (out) A pointer to an array of pointers to nsIURL objects.
* @param aCount (out) The number of nsIURL objects returned.
*/
NS_IMETHOD GetCSSStyleSheetURLs(nsIURL*** aStyleSheetURLs, PRInt32* aCount) = 0;
/**
* Add a named data source to the document.
* @param aNamedDataSoruceURI A URI identifying the data source.
*/
NS_IMETHOD AddNamedDataSourceURI(const char* aNamedDataSourceURI) = 0;
/**
* Get the set of named data sources that have been included in
* the document
* @param aNamedDataSourceURIs (out) A pointer to an array of C-style character
* strings.
* @param aCount (out) The number of named data sources in the array.
*/
NS_IMETHOD GetNamedDataSourceURIs(const char* const** aNamedDataSourceURIs, PRInt32* aCount) = 0;
/**
* Add an observer to the document. The observer will be notified of
* RDF/XML events via the nsIRDFXMLDocumentObserver interface. Note that
* the observer is <em>not</em> reference counted.
*/
NS_IMETHOD AddDocumentObserver(nsIRDFXMLDocumentObserver* aObserver) = 0;
/**
* Remove an observer from the document.
*/
NS_IMETHOD RemoveDocumentObserver(nsIRDFXMLDocumentObserver* aObserver) = 0;
};
#endif // nsIRDFXMLDocument_h__

View File

@@ -1,50 +0,0 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#ifndef nsRDFResource_h__
#define nsRDFResource_h__
#include "nsIRDFNode.h"
/**
* This simple base class implements nsIRDFResource, and can be used as a
* superclass for more sophisticated resource implementations.
*/
class nsRDFResource : public nsIRDFResource {
public:
NS_DECL_ISUPPORTS
// nsIRDFNode methods:
NS_IMETHOD EqualsNode(nsIRDFNode* node, PRBool* result) const;
// nsIRDFResource methods:
NS_IMETHOD GetValue(const char* *uri) const;
NS_IMETHOD EqualsResource(const nsIRDFResource* resource, PRBool* result) const;
NS_IMETHOD EqualsString(const char* uri, PRBool* result) const;
// nsRDFResource methods:
nsRDFResource(const char* uri);
virtual ~nsRDFResource(void);
protected:
const char* mURI;
};
#endif // nsRDFResource_h__

View File

@@ -1,71 +0,0 @@
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/*
A catch-all header file for miscellaneous RDF stuff. Currently
contains error codes and vocabulary macros.
*/
#ifndef rdf_h___
#define rdf_h___
#include "nsError.h"
/*
* The following macros are to aid in vocabulary definition.
* They creates const char*'s for "kURI[prefix]_[name]" and
* "kTag[prefix]_[name]", with appropriate complete namespace
* qualification on the URI, e.g.,
*
* #define RDF_NAMESPACE_URI "http://www.w3.org/TR/WD-rdf-syntax#"
* DEFINE_RDF_ELEMENT(RDF_NAMESPACE_URI, RDF, ID);
*
* will define:
*
* kURIRDF_ID to be "http://www.w3.org/TR/WD-rdf-syntax#ID", and
* kTagRDF_ID to be "ID"
*/
#define DEFINE_RDF_VOCAB(namespace, prefix, name) \
static const char* kURI##prefix##_##name = ##namespace #name ;\
static const char* kTag##prefix##_##name = kURI##prefix##_##name## + sizeof(##namespace) - 1
/**
* Core RDF vocabularies that we use to infer semantic actions
*/
#define RDF_NAMESPACE_URI "http://www.w3.org/TR/WD-rdf-syntax#"
#define WEB_NAMESPACE_URI "http://home.netscape.com/WEB-rdf#"
#define NC_NAMESPACE_URI "http://home.netscape.com/NC-rdf#"
/**
* @name Standard RDF error codes
*/
/*@{*/
/* Returned from nsIRDFCursor::Advance() if the cursor has no more
elements to enuemrate */
#define NS_ERROR_RDF_CURSOR_EMPTY NS_ERROR_GENERATE_FAILURE(NS_ERROR_MODULE_RDF, 1)
#define NS_ERROR_RDF_NO_VALUE NS_ERROR_GENERATE_FAILURE(NS_ERROR_MODULE_RDF, 2)
/*@}*/
#endif /* rdf_h___ */

View File

@@ -1,57 +0,0 @@
#!gmake
#
# The contents of this file are subject to the Netscape Public License
# Version 1.0 (the "NPL"); you may not use this file except in
# compliance with the NPL. You may obtain a copy of the NPL at
# http://www.mozilla.org/NPL/
#
# Software distributed under the NPL is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
# for the specific language governing rights and limitations under the
# NPL.
#
# The Initial Developer of this code under the NPL is Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1998 Netscape Communications Corporation. All Rights
# Reserved.
DEPTH=../../..
topsrcdir = @top_srcdir@
srcdir = @srcdir@
VPATH = @srcdir@
include $(DEPTH)/config/autoconf.mk
include $(topsrcdir)/config/config.mk
LIBRARY_NAME = rdfbase_s
CPPSRCS = \
nsCompositeDataSource.cpp \
nsContainerCursor.cpp \
nsDefaultResourceFactory.cpp \
nsEmptyCursor.cpp \
nsInMemoryDataSource.cpp \
nsRDFContentSink.cpp \
nsRDFParserUtils.cpp \
nsRDFService.cpp \
nsRDFXMLDataSource.cpp \
rdfutil.cpp \
nsRDFResource.cpp \
$(NULL)
EXPORTS = \
$(NULL)
EXPORTS := $(addprefix $(srcdir)/, $(EXPORTS))
MODULE = rdfbase
REQUIRES = netlib rdf raptor xpcom
MKSHLIB :=
# we don't want the shared lib
NO_SHARED_LIB=1
include $(topsrcdir)/config/rules.mk

View File

@@ -1,48 +0,0 @@
#!gmake
#
# The contents of this file are subject to the Netscape Public License
# Version 1.0 (the "NPL"); you may not use this file except in
# compliance with the NPL. You may obtain a copy of the NPL at
# http://www.mozilla.org/NPL/
#
# Software distributed under the NPL is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
# for the specific language governing rights and limitations under the
# NPL.
#
# The Initial Developer of this code under the NPL is Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1998 Netscape Communications Corporation. All Rights
# Reserved.
DEPTH=..\..\..
MODULE=rdf
LIBRARY_NAME=rdfbase_s
CPP_OBJS=\
.\$(OBJDIR)\nsCompositeDataSource.obj \
.\$(OBJDIR)\nsContainerCursor.obj \
.\$(OBJDIR)\nsDefaultResourceFactory.obj \
.\$(OBJDIR)\nsEmptyCursor.obj \
.\$(OBJDIR)\nsInMemoryDataSource.obj \
.\$(OBJDIR)\nsRDFContentSink.obj \
.\$(OBJDIR)\nsRDFParserUtils.obj \
.\$(OBJDIR)\nsRDFService.obj \
.\$(OBJDIR)\nsRDFXMLDataSource.obj \
.\$(OBJDIR)\rdfutil.obj \
.\$(OBJDIR)\nsRDFResource.obj \
$(NULL)
LINCS= -I$(PUBLIC)\rdf \
-I$(PUBLIC)\xpcom \
-I$(PUBLIC)\raptor \
-I$(PUBLIC)\netlib \
$(NULL)
include <$(DEPTH)\config\rules.mak>
libs:: $(LIBRARY)
$(MAKE_INSTALL) $(LIBRARY) $(DIST)\lib
clobber::
rm -f $(DIST)\lib\$(LIBRARY_NAME).lib

View File

@@ -1,887 +0,0 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/*
A simple composite data source implementation. A composit data
source is just a strategy for combining individual data sources into
a collective graph.
1) A composite data source holds a sequence of data sources. The set
of data sources can be specified during creation of the
database. Data sources can also be added/deleted from a database
later.
2) The aggregation mechanism is based on simple super-positioning of
the graphs from the datasources. If there is a conflict (i.e.,
data source A has a true arc from foo to bar while data source B
has a false arc from foo to bar), the data source that it earlier
in the sequence wins.
The implementation below doesn't really do this and needs to be
fixed.
*/
#include "nsIRDFCursor.h"
#include "nsIRDFNode.h"
#include "nsIRDFCompositeDataSource.h"
#include "nsIRDFObserver.h"
#include "nsRepository.h"
#include "nsVoidArray.h"
#include "prlog.h"
static NS_DEFINE_IID(kIRDFArcsInCursorIID, NS_IRDFARCSINCURSOR_IID);
static NS_DEFINE_IID(kIRDFArcsOutCursorIID, NS_IRDFARCSOUTCURSOR_IID);
static NS_DEFINE_IID(kIRDFAssertionCursorIID, NS_IRDFASSERTIONCURSOR_IID);
static NS_DEFINE_IID(kIRDFCursorIID, NS_IRDFCURSOR_IID);
static NS_DEFINE_IID(kIRDFCompositeDataSourceIID, NS_IRDFCOMPOSITEDATASOURCE_IID);
static NS_DEFINE_IID(kIRDFDataSourceIID, NS_IRDFDATASOURCE_IID);
static NS_DEFINE_IID(kIRDFObserverIID, NS_IRDFOBSERVER_IID);
static NS_DEFINE_IID(kISupportsIID, NS_ISUPPORTS_IID);
////////////////////////////////////////////////////////////////////////
// CompositeDataSourceImpl
class CompositeDataSourceImpl : public nsIRDFCompositeDataSource,
public nsIRDFObserver
{
protected:
nsVoidArray* mObservers;
virtual ~CompositeDataSourceImpl(void);
public:
CompositeDataSourceImpl(void);
CompositeDataSourceImpl(char** dataSources);
nsVoidArray mDataSources;
// nsISupports interface
NS_DECL_ISUPPORTS
// nsIRDFDataSource interface
NS_IMETHOD Init(const char* uri);
NS_IMETHOD GetURI(const char* *uri) const;
NS_IMETHOD GetSource(nsIRDFResource* property,
nsIRDFNode* target,
PRBool tv,
nsIRDFResource** source);
NS_IMETHOD GetSources(nsIRDFResource* property,
nsIRDFNode* target,
PRBool tv,
nsIRDFAssertionCursor** sources);
NS_IMETHOD GetTarget(nsIRDFResource* source,
nsIRDFResource* property,
PRBool tv,
nsIRDFNode** target);
NS_IMETHOD GetTargets(nsIRDFResource* source,
nsIRDFResource* property,
PRBool tv,
nsIRDFAssertionCursor** targets);
NS_IMETHOD Assert(nsIRDFResource* source,
nsIRDFResource* property,
nsIRDFNode* target,
PRBool tv);
NS_IMETHOD Unassert(nsIRDFResource* source,
nsIRDFResource* property,
nsIRDFNode* target);
NS_IMETHOD HasAssertion(nsIRDFResource* source,
nsIRDFResource* property,
nsIRDFNode* target,
PRBool tv,
PRBool* hasAssertion);
NS_IMETHOD AddObserver(nsIRDFObserver* n);
NS_IMETHOD RemoveObserver(nsIRDFObserver* n);
NS_IMETHOD ArcLabelsIn(nsIRDFNode* node,
nsIRDFArcsInCursor** labels);
NS_IMETHOD ArcLabelsOut(nsIRDFResource* source,
nsIRDFArcsOutCursor** labels);
NS_IMETHOD GetAllResources(nsIRDFResourceCursor** aCursor);
NS_IMETHOD Flush();
NS_IMETHOD IsCommandEnabled(const char* aCommand,
nsIRDFResource* aCommandTarget,
PRBool* aResult);
NS_IMETHOD DoCommand(const char* aCommand,
nsIRDFResource* aCommandTarget);
// nsIRDFCompositeDataSource interface
NS_IMETHOD AddDataSource(nsIRDFDataSource* source);
NS_IMETHOD RemoveDataSource(nsIRDFDataSource* source);
// nsIRDFObserver interface
NS_IMETHOD OnAssert(nsIRDFResource* subject,
nsIRDFResource* predicate,
nsIRDFNode* object);
NS_IMETHOD OnUnassert(nsIRDFResource* subject,
nsIRDFResource* predicate,
nsIRDFNode* object);
// Implementation methods
PRBool HasAssertionN(int n, nsIRDFResource* source,
nsIRDFResource* property,
nsIRDFNode* target,
PRBool tv);
};
class DBArcsInOutCursor : public nsIRDFArcsOutCursor,
public nsIRDFArcsInCursor
{
CompositeDataSourceImpl* mCompositeDataSourceImpl;
nsIRDFResource* mSource;
nsIRDFNode* mTarget;
PRInt32 mCount;
nsIRDFArcsOutCursor* mOutCursor;
nsIRDFArcsInCursor* mInCursor;
nsVoidArray mResults;
public:
DBArcsInOutCursor(CompositeDataSourceImpl* db, nsIRDFNode* node, PRBool arcsOutp);
virtual ~DBArcsInOutCursor();
NS_DECL_ISUPPORTS
NS_IMETHOD Advance();
NS_IMETHOD GetDataSource(nsIRDFDataSource** aDataSource) {
return (mInCursor ? mInCursor->GetDataSource(aDataSource) :
mOutCursor->GetDataSource(aDataSource));
}
NS_IMETHOD GetSubject(nsIRDFResource** aResource) {
return mOutCursor->GetSubject(aResource);
}
NS_IMETHOD GetObject(nsIRDFNode** aNode) {
return mInCursor->GetObject(aNode);
}
NS_IMETHOD GetPredicate(nsIRDFResource** aPredicate) {
return (mInCursor ? mInCursor->GetPredicate(aPredicate) :
mOutCursor->GetPredicate(aPredicate));
}
NS_IMETHOD GetValue(nsIRDFNode** aValue) {
return (mInCursor ? mInCursor->GetValue(aValue) :
mOutCursor->GetValue(aValue));
}
};
DBArcsInOutCursor::DBArcsInOutCursor(CompositeDataSourceImpl* db,
nsIRDFNode* node,
PRBool arcsOutp)
: mCompositeDataSourceImpl(db),
mTarget(0),
mSource(0),
mCount(0),
mInCursor(0),
mOutCursor(0)
{
NS_INIT_REFCNT();
NS_ADDREF(mCompositeDataSourceImpl);
if (arcsOutp) {
mSource = (nsIRDFResource*) node;
} else {
mTarget = node;
}
NS_IF_ADDREF(node);
// XXX there better be at least _one_ datasource in this here
// CompositeDataSourceImpl, else this'll be a real short ride...
PR_ASSERT(db->mDataSources.Count() > 0);
nsIRDFDataSource* ds = (nsIRDFDataSource*) db->mDataSources[mCount++];
if (mTarget) {
ds->ArcLabelsIn(mTarget, &mInCursor);
} else {
ds->ArcLabelsOut(mSource, &mOutCursor);
}
}
DBArcsInOutCursor::~DBArcsInOutCursor(void)
{
for (PRInt32 i = mResults.Count() - 1; i >= 0; --i) {
nsIRDFNode* node = (nsIRDFNode*) mResults[i];
NS_RELEASE(node);
}
NS_IF_RELEASE(mSource);
NS_IF_RELEASE(mTarget);
NS_IF_RELEASE(mInCursor);
NS_IF_RELEASE(mOutCursor);
NS_RELEASE(mCompositeDataSourceImpl);
}
NS_IMPL_ADDREF(DBArcsInOutCursor);
NS_IMPL_RELEASE(DBArcsInOutCursor);
NS_IMETHODIMP_(nsresult)
DBArcsInOutCursor::QueryInterface(REFNSIID iid, void** result) {
if (! result)
return NS_ERROR_NULL_POINTER;
if (iid.Equals(kIRDFArcsOutCursorIID) ||
iid.Equals(kIRDFCursorIID) ||
iid.Equals(kISupportsIID)) {
*result = NS_STATIC_CAST(nsIRDFArcsOutCursor*, this);
NS_ADDREF(this);
return NS_OK;
}
return NS_NOINTERFACE;
}
NS_IMETHODIMP
DBArcsInOutCursor::Advance(void)
{
nsIRDFDataSource* ds;
while (mInCursor || mOutCursor) {
nsresult result = (mInCursor ? mInCursor->Advance() : mOutCursor->Advance());
while (NS_SUCCEEDED(result)) {
nsIRDFNode* obj ;
GetValue(&obj);
if (mResults.IndexOf(obj) < 0) {
mResults.AppendElement(obj);
return NS_OK;
}
result = (mInCursor ? mInCursor->Advance() : mOutCursor->Advance());
}
if (result != NS_ERROR_RDF_CURSOR_EMPTY)
return result;
NS_IF_RELEASE(mInCursor);
NS_IF_RELEASE(mOutCursor);
if (mCount >= mCompositeDataSourceImpl->mDataSources.Count())
break;
ds = (nsIRDFDataSource*) mCompositeDataSourceImpl->mDataSources[mCount];
++mCount;
if (mTarget) {
ds->ArcLabelsIn(mTarget, &mInCursor);
} else {
ds->ArcLabelsOut(mSource, &mOutCursor);
}
}
return NS_ERROR_RDF_CURSOR_EMPTY;
}
////////////////////////////////////////////////////////////////////////
// DBAssertionCursor
//
// An assertion cursor implementation for the db.
//
class DBGetSTCursor : public nsIRDFAssertionCursor
{
private:
CompositeDataSourceImpl* mCompositeDataSourceImpl;
nsIRDFResource* mSource;
nsIRDFResource* mLabel;
nsIRDFNode* mTarget;
PRInt32 mCount;
PRBool mTruthValue;
nsIRDFAssertionCursor* mCurrentCursor;
public:
DBGetSTCursor(CompositeDataSourceImpl* db, nsIRDFNode* u,
nsIRDFResource* property, PRBool inversep, PRBool tv);
virtual ~DBGetSTCursor();
// nsISupports interface
NS_DECL_ISUPPORTS
// nsIRDFAssertionCursor interface
NS_IMETHOD Advance();
NS_IMETHOD GetDataSource(nsIRDFDataSource** aDataSource) {
return mCurrentCursor->GetDataSource(aDataSource);
}
NS_IMETHOD GetSubject(nsIRDFResource** aResource) {
return mCurrentCursor->GetSubject(aResource);
}
NS_IMETHOD GetPredicate(nsIRDFResource** aPredicate) {
return mCurrentCursor->GetPredicate(aPredicate);
}
NS_IMETHOD GetObject(nsIRDFNode** aObject) {
return mCurrentCursor->GetObject(aObject);
}
NS_IMETHOD GetTruthValue(PRBool* aTruthValue) {
return mCurrentCursor->GetTruthValue(aTruthValue);
}
NS_IMETHOD GetValue(nsIRDFNode** aValue) {
return mCurrentCursor->GetValue(aValue);
}
};
//NS_IMPL_ISUPPORTS(DBGetSTCursor, kIRDFAssertionCursorIID);
DBGetSTCursor::DBGetSTCursor(CompositeDataSourceImpl* db,
nsIRDFNode* u,
nsIRDFResource* property,
PRBool inversep,
PRBool tv)
: mCompositeDataSourceImpl(db),
mSource(nsnull),
mLabel(property),
mTarget(nsnull),
mCount(0),
mTruthValue(tv),
mCurrentCursor(nsnull)
{
NS_INIT_REFCNT();
NS_ADDREF(mCompositeDataSourceImpl);
if (!inversep) {
mSource = (nsIRDFResource*) u;
} else {
mTarget = u;
}
NS_IF_ADDREF(mSource);
NS_IF_ADDREF(mTarget);
NS_IF_ADDREF(mLabel);
// XXX assume that at least one data source exists in the CompositeDataSourceImpl.
nsIRDFDataSource* ds = (nsIRDFDataSource*) db->mDataSources[mCount++];
if (mSource)
ds->GetTargets(mSource, mLabel, mTruthValue, &mCurrentCursor);
else
ds->GetSources(mLabel, mTarget, mTruthValue, &mCurrentCursor);
}
DBGetSTCursor::~DBGetSTCursor(void)
{
NS_IF_RELEASE(mCurrentCursor);
NS_IF_RELEASE(mLabel);
NS_IF_RELEASE(mSource);
NS_IF_RELEASE(mTarget);
NS_RELEASE(mCompositeDataSourceImpl);
}
NS_IMPL_ADDREF(DBGetSTCursor);
NS_IMPL_RELEASE(DBGetSTCursor);
NS_IMETHODIMP_(nsresult)
DBGetSTCursor::QueryInterface(REFNSIID iid, void** result)
{
if (! result)
return NS_ERROR_NULL_POINTER;
if (iid.Equals(kIRDFAssertionCursorIID) ||
iid.Equals(kIRDFCursorIID) ||
iid.Equals(kISupportsIID)) {
*result = NS_STATIC_CAST(nsIRDFAssertionCursor*, this);
NS_ADDREF(this);
return NS_OK;
}
return NS_NOINTERFACE;
}
NS_IMETHODIMP
DBGetSTCursor::Advance(void)
{
nsIRDFDataSource* ds;
while (mCurrentCursor) {
nsresult result = mCurrentCursor->Advance();
while (NS_ERROR_RDF_CURSOR_EMPTY != result) {
nsIRDFResource* src;
nsIRDFNode* trg;
mCurrentCursor->GetSubject(&src);
mCurrentCursor->GetObject(&trg);
if (!mCompositeDataSourceImpl->HasAssertionN(mCount-1, src, mLabel, trg, !mTruthValue)) {
return NS_OK;
} else {
result = mCurrentCursor->Advance();
}
}
if (mCount >= mCompositeDataSourceImpl->mDataSources.Count())
break;
ds = (nsIRDFDataSource*) mCompositeDataSourceImpl->mDataSources[mCount];
++mCount;
NS_RELEASE(mCurrentCursor);
if (mSource)
ds->GetTargets(mSource, mLabel, mTruthValue, &mCurrentCursor);
else
ds->GetSources(mLabel, mTarget, mTruthValue, &mCurrentCursor);
}
return NS_ERROR_RDF_CURSOR_EMPTY;
}
////////////////////////////////////////////////////////////////////////
nsresult
NS_NewRDFCompositeDataSource(nsIRDFCompositeDataSource** result)
{
CompositeDataSourceImpl* db = new CompositeDataSourceImpl();
if (! db)
return NS_ERROR_OUT_OF_MEMORY;
*result = db;
NS_ADDREF(*result);
return NS_OK;
}
CompositeDataSourceImpl::CompositeDataSourceImpl(void)
: mObservers(nsnull)
{
NS_INIT_REFCNT();
}
CompositeDataSourceImpl::~CompositeDataSourceImpl(void)
{
for (PRInt32 i = mDataSources.Count() - 1; i >= 0; --i) {
nsIRDFDataSource* ds = NS_STATIC_CAST(nsIRDFDataSource*, mDataSources[i]);
ds->RemoveObserver(this);
NS_IF_RELEASE(ds);
}
delete mObservers;
}
////////////////////////////////////////////////////////////////////////
// nsISupports interface
NS_IMPL_ADDREF(CompositeDataSourceImpl);
NS_IMPL_RELEASE(CompositeDataSourceImpl);
NS_IMETHODIMP
CompositeDataSourceImpl::QueryInterface(REFNSIID iid, void** result)
{
if (! result)
return NS_ERROR_NULL_POINTER;
if (iid.Equals(kIRDFCompositeDataSourceIID) ||
iid.Equals(kIRDFDataSourceIID) ||
iid.Equals(kISupportsIID)) {
*result = NS_STATIC_CAST(nsIRDFCompositeDataSource*, this);
NS_ADDREF(this);
return NS_OK;
}
else if (iid.Equals(kIRDFObserverIID)) {
*result = NS_STATIC_CAST(nsIRDFObserver*, this);
NS_ADDREF(this);
return NS_OK;
}
else {
*result = nsnull;
return NS_NOINTERFACE;
}
}
////////////////////////////////////////////////////////////////////////
// nsIRDFDataSource interface
NS_IMETHODIMP
CompositeDataSourceImpl::Init(const char* uri)
{
PR_ASSERT(0);
return NS_ERROR_UNEXPECTED; // XXX CompositeDataSourceImpl doesn't have a URI?
}
NS_IMETHODIMP
CompositeDataSourceImpl::GetURI(const char* *uri) const
{
PR_ASSERT(0);
return NS_ERROR_UNEXPECTED; // XXX CompositeDataSourceImpl doesn't have a URI?
}
NS_IMETHODIMP
CompositeDataSourceImpl::GetSource(nsIRDFResource* property,
nsIRDFNode* target,
PRBool tv,
nsIRDFResource** source)
{
PRInt32 count = mDataSources.Count();
for (PRInt32 i = 0; i < count; ++i) {
nsIRDFDataSource* ds = NS_STATIC_CAST(nsIRDFDataSource*, mDataSources[i]);
if (NS_FAILED(ds->GetSource(property, target, tv, source)))
continue;
// okay, found it. make sure we don't have the opposite
// asserted in a more local data source
if (!HasAssertionN(count-1, *source, property, target, !tv))
return NS_OK;
NS_RELEASE(*source);
return NS_ERROR_RDF_NO_VALUE;
}
return NS_ERROR_RDF_NO_VALUE;
}
NS_IMETHODIMP
CompositeDataSourceImpl::GetSources(nsIRDFResource* property,
nsIRDFNode* target,
PRBool tv,
nsIRDFAssertionCursor** result)
{
if (! result)
return NS_ERROR_NULL_POINTER;
*result = new DBGetSTCursor(this, target, property, 1, tv);
if (! result)
return NS_ERROR_OUT_OF_MEMORY;
NS_ADDREF(*result);
return NS_OK;
}
NS_IMETHODIMP
CompositeDataSourceImpl::GetTarget(nsIRDFResource* source,
nsIRDFResource* property,
PRBool tv,
nsIRDFNode** target)
{
PRInt32 count = mDataSources.Count();
for (PRInt32 i = 0; i < count; ++i) {
nsIRDFDataSource* ds = NS_STATIC_CAST(nsIRDFDataSource*, mDataSources[i]);
if (NS_FAILED(ds->GetTarget(source, property, tv, target)))
continue;
// okay, found it. make sure we don't have the opposite
// asserted in the "local" data source
if (!HasAssertionN(count-1, source, property, *target, !tv))
return NS_OK;
NS_RELEASE(*target);
return NS_ERROR_RDF_NO_VALUE;
}
return NS_ERROR_RDF_NO_VALUE;
}
PRBool
CompositeDataSourceImpl::HasAssertionN(int n,
nsIRDFResource* source,
nsIRDFResource* property,
nsIRDFNode* target,
PRBool tv)
{
int m = 0;
PRBool result = 0;
while (m < n) {
nsIRDFDataSource* ds = (nsIRDFDataSource*) mDataSources[m];
ds->HasAssertion(source, property, target, tv, &result);
if (result) return 1;
m++;
}
return 0;
}
NS_IMETHODIMP
CompositeDataSourceImpl::GetTargets(nsIRDFResource* source,
nsIRDFResource* property,
PRBool tv,
nsIRDFAssertionCursor** targets)
{
if (! targets)
return NS_ERROR_NULL_POINTER;
nsIRDFAssertionCursor* result;
result = new DBGetSTCursor(this, source, property, 0, tv);
if (! result)
return NS_ERROR_OUT_OF_MEMORY;
NS_ADDREF(result);
*targets = result;
return NS_OK;
}
NS_IMETHODIMP
CompositeDataSourceImpl::Assert(nsIRDFResource* source,
nsIRDFResource* property,
nsIRDFNode* target,
PRBool tv)
{
// Need to add back the stuff for unblocking ...
for (PRInt32 i = mDataSources.Count() - 1; i >= 0; --i) {
nsIRDFDataSource* ds = NS_STATIC_CAST(nsIRDFDataSource*, mDataSources[i]);
if (NS_SUCCEEDED(ds->Assert(source, property, target, tv)))
return NS_OK;
}
return NS_ERROR_FAILURE;
}
NS_IMETHODIMP
CompositeDataSourceImpl::Unassert(nsIRDFResource* source,
nsIRDFResource* property,
nsIRDFNode* target)
{
nsresult rv;
PRInt32 count = mDataSources.Count();
for (PRInt32 i = 0; i < count; ++i) {
nsIRDFDataSource* ds = NS_STATIC_CAST(nsIRDFDataSource*, mDataSources[i]);
if (NS_FAILED(rv = ds->Unassert(source, property, target)))
break;
}
if (NS_FAILED(rv)) {
nsIRDFDataSource* ds0 = NS_STATIC_CAST(nsIRDFDataSource*, mDataSources[0]);
rv = ds0->Assert(source, property, target, PR_FALSE);
}
return rv;
}
NS_IMETHODIMP
CompositeDataSourceImpl::HasAssertion(nsIRDFResource* source,
nsIRDFResource* property,
nsIRDFNode* target,
PRBool tv,
PRBool* hasAssertion)
{
nsresult rv;
// Otherwise, look through all the data sources to see if anyone
// has the positive...
PRInt32 count = mDataSources.Count();
PRBool hasNegation = 0;
for (PRInt32 i = 0; i < count; ++i) {
nsIRDFDataSource* ds = NS_STATIC_CAST(nsIRDFDataSource*, mDataSources[i]);
if (NS_FAILED(rv = ds->HasAssertion(source, property, target, tv, hasAssertion)))
return rv;
if (*hasAssertion)
return NS_OK;
if (NS_FAILED(rv = ds->HasAssertion(source, property, target, !tv, &hasNegation)))
return rv;
if (hasNegation) {
*hasAssertion = 0;
return NS_OK;
}
}
// If we get here, nobody had the assertion at all
*hasAssertion = PR_FALSE;
return NS_OK;
}
NS_IMETHODIMP
CompositeDataSourceImpl::AddObserver(nsIRDFObserver* obs)
{
if (!mObservers) {
if ((mObservers = new nsVoidArray()) == nsnull)
return NS_ERROR_OUT_OF_MEMORY;
}
// XXX ensure uniqueness?
mObservers->AppendElement(obs);
return NS_OK;
}
NS_IMETHODIMP
CompositeDataSourceImpl::RemoveObserver(nsIRDFObserver* obs)
{
if (!mObservers)
return NS_OK;
mObservers->RemoveElement(obs);
return NS_OK;
}
NS_IMETHODIMP
CompositeDataSourceImpl::ArcLabelsIn(nsIRDFNode* node,
nsIRDFArcsInCursor** labels)
{
if (! labels)
return NS_ERROR_NULL_POINTER;
nsIRDFArcsInCursor* result = new DBArcsInOutCursor(this, node, 0);
if (! result)
return NS_ERROR_NULL_POINTER;
NS_ADDREF(result);
*labels = result;
return NS_OK;
}
NS_IMETHODIMP
CompositeDataSourceImpl::ArcLabelsOut(nsIRDFResource* source,
nsIRDFArcsOutCursor** labels)
{
if (! labels)
return NS_ERROR_NULL_POINTER;
nsIRDFArcsOutCursor* result = new DBArcsInOutCursor(this, source, 1);
if (! result)
return NS_ERROR_NULL_POINTER;
NS_ADDREF(result);
*labels = result;
return NS_OK;
}
NS_IMETHODIMP
CompositeDataSourceImpl::GetAllResources(nsIRDFResourceCursor** aCursor)
{
NS_NOTYETIMPLEMENTED("write me!");
return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP
CompositeDataSourceImpl::Flush()
{
for (PRInt32 i = mDataSources.Count() - 1; i >= 0; --i) {
nsIRDFDataSource* ds = NS_STATIC_CAST(nsIRDFDataSource*, mDataSources[i]);
ds->Flush();
}
return NS_OK;
}
NS_IMETHODIMP
CompositeDataSourceImpl::IsCommandEnabled(const char* aCommand,
nsIRDFResource* aCommandTarget,
PRBool* aResult)
{
NS_NOTYETIMPLEMENTED("write me!");
return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP
CompositeDataSourceImpl::DoCommand(const char* aCommand,
nsIRDFResource* aCommandTarget)
{
NS_NOTYETIMPLEMENTED("write me!");
return NS_ERROR_NOT_IMPLEMENTED;
}
////////////////////////////////////////////////////////////////////////
// nsIRDFCompositeDataSource methods
// XXX rvg We should make this take an additional argument specifying where
// in the sequence of data sources (of the db), the new data source should
// fit in. Right now, the new datasource gets stuck at the end.
// need to add the observers of the CompositeDataSourceImpl to the new data source.
NS_IMETHODIMP
CompositeDataSourceImpl::AddDataSource(nsIRDFDataSource* source)
{
NS_ASSERTION(source != nsnull, "null ptr");
if (! source)
return NS_ERROR_NULL_POINTER;
mDataSources.InsertElementAt(source, 0);
source->AddObserver(this);
NS_ADDREF(source);
return NS_OK;
}
NS_IMETHODIMP
CompositeDataSourceImpl::RemoveDataSource(nsIRDFDataSource* source)
{
NS_ASSERTION(source != nsnull, "null ptr");
if (! source)
return NS_ERROR_NULL_POINTER;
if (mDataSources.IndexOf(source) >= 0) {
mDataSources.RemoveElement(source);
source->RemoveObserver(this);
NS_RELEASE(source);
}
return NS_OK;
}
NS_IMETHODIMP
CompositeDataSourceImpl::OnAssert(nsIRDFResource* subject,
nsIRDFResource* predicate,
nsIRDFNode* object)
{
if (mObservers) {
for (PRInt32 i = mObservers->Count() - 1; i >= 0; --i) {
nsIRDFObserver* obs = (nsIRDFObserver*) mObservers->ElementAt(i);
obs->OnAssert(subject, predicate, object);
// XXX ignore return value?
}
}
return NS_OK;
}
NS_IMETHODIMP
CompositeDataSourceImpl::OnUnassert(nsIRDFResource* subject,
nsIRDFResource* predicate,
nsIRDFNode* object)
{
if (mObservers) {
for (PRInt32 i = mObservers->Count() - 1; i >= 0; --i) {
nsIRDFObserver* obs = (nsIRDFObserver*) mObservers->ElementAt(i);
obs->OnUnassert(subject, predicate, object);
// XXX ignore return value?
}
}
return NS_OK;
}

View File

@@ -1,339 +0,0 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/*
A simple cursor that enumerates the elements of an RDF container
(RDF:Bag, RDF:Seq, or RDF:Alt).
Caveats
-------
1. This uses an implementation-specific detail to determine the
index of the last element in the container; specifically, the RDF
utilities maintain a counter attribute on the container that
holds the numeric value of the next value that is to be
assigned. So, this cursor will bust if you use it with a bag that
hasn't been created using the RDF utility routines.
2. This is sort of a continuation of (1), but -- it's not smart
enough to notice duplicates.
TODO. This is way too brain dead to handle aggregated RDF
databases. It needs to be upgraded in a big way.
*/
#include "nscore.h"
#include "nsIRDFCursor.h"
#include "nsIRDFDataSource.h"
#include "nsIRDFNode.h"
#include "nsIRDFService.h"
#include "nsIServiceManager.h"
#include "nsRDFCID.h"
#include "nsString.h"
#include "prlog.h"
#include "rdf.h"
#include "rdfutil.h"
////////////////////////////////////////////////////////////////////////
static NS_DEFINE_IID(kIRDFAssertionCursorIID, NS_IRDFASSERTIONCURSOR_IID);
static NS_DEFINE_IID(kIRDFCursorIID, NS_IRDFCURSOR_IID);
static NS_DEFINE_IID(kIRDFLiteralIID, NS_IRDFLITERAL_IID);
static NS_DEFINE_IID(kIRDFServiceIID, NS_IRDFSERVICE_IID);
static NS_DEFINE_IID(kISupportsIID, NS_ISUPPORTS_IID);
static NS_DEFINE_CID(kRDFServiceCID, NS_RDFSERVICE_CID);
////////////////////////////////////////////////////////////////////////
static const char kRDFNameSpaceURI[] = RDF_NAMESPACE_URI;
DEFINE_RDF_VOCAB(RDF_NAMESPACE_URI, RDF, nextVal); // ad hoc way to make containers fast
////////////////////////////////////////////////////////////////////////
class ContainerCursorImpl : public nsIRDFAssertionCursor {
private:
// pseudo-constants
static nsrefcnt gRefCnt;
static nsIRDFResource* kRDF_nextVal;
nsIRDFDataSource* mDataSource;
nsIRDFResource* mContainer;
nsIRDFNode* mCurrent;
nsIRDFResource* mOrdinalProperty;
PRInt32 mNextIndex;
public:
ContainerCursorImpl(nsIRDFDataSource* ds, nsIRDFResource* container);
virtual ~ContainerCursorImpl(void);
NS_DECL_ISUPPORTS
NS_IMETHOD Advance(void);
NS_IMETHOD GetDataSource(nsIRDFDataSource** aDataSource);
NS_IMETHOD GetSubject(nsIRDFResource** aResource);
NS_IMETHOD GetPredicate(nsIRDFResource** aPredicate);
NS_IMETHOD GetObject(nsIRDFNode** aObject);
NS_IMETHOD GetTruthValue(PRBool* aTruthValue);
NS_IMETHOD GetValue(nsIRDFNode** aValue);
};
nsrefcnt ContainerCursorImpl::gRefCnt;
nsIRDFResource* ContainerCursorImpl::kRDF_nextVal;
ContainerCursorImpl::ContainerCursorImpl(nsIRDFDataSource* ds,
nsIRDFResource* container)
: mDataSource(ds),
mContainer(container),
mCurrent(nsnull),
mOrdinalProperty(nsnull),
mNextIndex(1)
{
NS_INIT_REFCNT();
NS_IF_ADDREF(mDataSource);
NS_IF_ADDREF(mContainer);
if (gRefCnt++ == 0) {
nsresult rv;
nsIRDFService* service;
rv = nsServiceManager::GetService(kRDFServiceCID,
kIRDFServiceIID,
(nsISupports**) &service);
NS_ASSERTION(NS_SUCCEEDED(rv), "unable to acquire resource manager");
if (! service)
return;
NS_VERIFY(NS_SUCCEEDED(rv = service->GetResource(kURIRDF_nextVal, &kRDF_nextVal)),
"unable to get resource");
}
}
ContainerCursorImpl::~ContainerCursorImpl(void)
{
NS_IF_RELEASE(mCurrent);
NS_IF_RELEASE(mOrdinalProperty);
NS_IF_RELEASE(mContainer);
NS_IF_RELEASE(mDataSource);
if (--gRefCnt == 0) {
NS_IF_RELEASE(kRDF_nextVal);
}
}
NS_IMPL_ADDREF(ContainerCursorImpl);
NS_IMPL_RELEASE(ContainerCursorImpl);
NS_IMETHODIMP_(nsresult)
ContainerCursorImpl::QueryInterface(REFNSIID iid, void** result) {
if (! result)
return NS_ERROR_NULL_POINTER;
if (iid.Equals(kIRDFAssertionCursorIID) ||
iid.Equals(kIRDFCursorIID) ||
iid.Equals(kISupportsIID)) {
*result = NS_STATIC_CAST(nsIRDFAssertionCursor*, this);
/* AddRef(); // not necessary */
return NS_OK;
}
return NS_NOINTERFACE;
}
NS_IMETHODIMP
ContainerCursorImpl::Advance(void)
{
nsresult rv;
// release the last value that we were holding
NS_IF_RELEASE(mCurrent);
nsIRDFNode* nextNode = nsnull;
nsIRDFLiteral* nextVal = nsnull;
const PRUnichar* p;
nsAutoString s;
PRInt32 last;
PRInt32 err;
// Figure out the upper bound so we'll know when we're done.
// XXX we could cache all this crap when the cursor gets created.
if (NS_FAILED(rv = mDataSource->GetTarget(mContainer, kRDF_nextVal, PR_TRUE, &nextNode)))
goto done;
if (NS_FAILED(rv = nextNode->QueryInterface(kIRDFLiteralIID, (void**) &nextVal)))
goto done;
if (NS_FAILED(rv = nextVal->GetValue(&p)))
goto done;
s = p;
last = s.ToInteger(&err);
if (NS_FAILED(err))
goto done;
// initialize rv to the case where mNextIndex has advanced past the
// last element
rv = NS_ERROR_RDF_CURSOR_EMPTY;
while (mNextIndex < last) {
NS_IF_RELEASE(mOrdinalProperty);
if (NS_FAILED(rv = rdf_IndexToOrdinalResource(mNextIndex, &mOrdinalProperty)))
break;
rv = mDataSource->GetTarget(mContainer, mOrdinalProperty, PR_TRUE, &mCurrent);
++mNextIndex;
if (NS_SUCCEEDED(rv)) {
// Don't bother releasing mCurrent; we'll let the AddRef
// serve as the implicit addref that GetNext() should
// perform.
break;
}
}
done:
NS_IF_RELEASE(nextNode);
NS_IF_RELEASE(nextVal);
return rv;
}
NS_IMETHODIMP
ContainerCursorImpl::GetDataSource(nsIRDFDataSource** aDataSource)
{
NS_PRECONDITION(aDataSource != nsnull, "null ptr");
if (! aDataSource)
return NS_ERROR_NULL_POINTER;
NS_ADDREF(mDataSource);
*aDataSource = mDataSource;
return NS_OK;
}
NS_IMETHODIMP
ContainerCursorImpl::GetSubject(nsIRDFResource** aSubject)
{
NS_PRECONDITION(aSubject != nsnull, "null ptr");
if (! aSubject)
return NS_ERROR_NULL_POINTER;
NS_ADDREF(mContainer);
*aSubject = mContainer;
return NS_OK;
}
NS_IMETHODIMP
ContainerCursorImpl::GetPredicate(nsIRDFResource** aPredicate)
{
NS_PRECONDITION(aPredicate != nsnull, "null ptr");
if (! aPredicate)
return NS_ERROR_NULL_POINTER;
NS_PRECONDITION(mOrdinalProperty, "unexpected");
if (! mOrdinalProperty)
return NS_ERROR_UNEXPECTED;
NS_ADDREF(mOrdinalProperty);
*aPredicate = mOrdinalProperty;
return NS_OK;
}
NS_IMETHODIMP
ContainerCursorImpl::GetObject(nsIRDFNode** aObject)
{
NS_PRECONDITION(aObject != nsnull, "null ptr");
if (! aObject)
return NS_ERROR_NULL_POINTER;
NS_PRECONDITION(mCurrent, "unexpected");
if (! mCurrent)
return NS_ERROR_UNEXPECTED;
NS_ADDREF(mCurrent);
*aObject = mCurrent;
return NS_OK;
}
NS_IMETHODIMP
ContainerCursorImpl::GetValue(nsIRDFNode** aObject)
{
NS_PRECONDITION(aObject != nsnull, "null ptr");
if (! aObject)
return NS_ERROR_NULL_POINTER;
if (! mCurrent)
return NS_ERROR_UNEXPECTED;
NS_ADDREF(mCurrent);
*aObject = mCurrent;
return NS_OK;
}
NS_IMETHODIMP
ContainerCursorImpl::GetTruthValue(PRBool* aTruthValue)
{
NS_PRECONDITION(aTruthValue != nsnull, "null ptr");
if (! aTruthValue)
return NS_ERROR_NULL_POINTER;
*aTruthValue = PR_TRUE;
return NS_OK;
}
////////////////////////////////////////////////////////////////////////
nsresult
NS_NewContainerCursor(nsIRDFDataSource* ds,
nsIRDFResource* container,
nsIRDFAssertionCursor** cursor)
{
NS_PRECONDITION(ds != nsnull, "null ptr");
NS_PRECONDITION(container != nsnull, "null ptr");
NS_PRECONDITION(cursor != nsnull, "null ptr");
if (!ds || !container || !cursor)
return NS_ERROR_NULL_POINTER;
NS_ASSERTION(rdf_IsContainer(ds, container), "not a container");
if (! rdf_IsContainer(ds, container))
return NS_ERROR_ILLEGAL_VALUE;
ContainerCursorImpl* result = new ContainerCursorImpl(ds, container);
if (! result)
return NS_ERROR_OUT_OF_MEMORY;
*cursor = result;
NS_ADDREF(result);
return NS_OK;
}

View File

@@ -1,229 +0,0 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/*
The default resource factory implementation. This resource factory
produces nsIRDFResource objects for any URI prefix that is not
covered by some other factory.
*/
#include "nsIRDFNode.h"
#include "nsIRDFResourceFactory.h"
#include "nsIRDFService.h"
#include "nsIServiceManager.h"
#include "nsRDFCID.h"
#include "plstr.h"
////////////////////////////////////////////////////////////////////////
static NS_DEFINE_IID(kIRDFNodeIID, NS_IRDFNODE_IID);
static NS_DEFINE_IID(kIRDFResourceFactoryIID, NS_IRDFRESOURCEFACTORY_IID);
static NS_DEFINE_IID(kIRDFResourceIID, NS_IRDFRESOURCE_IID);
static NS_DEFINE_IID(kIRDFServiceIID, NS_IRDFSERVICE_IID);
static NS_DEFINE_IID(kISupportsIID, NS_ISUPPORTS_IID);
static NS_DEFINE_CID(kRDFServiceCID, NS_RDFSERVICE_CID);
////////////////////////////////////////////////////////////////////////
class DefaultResourceImpl : public nsIRDFResource
{
public:
DefaultResourceImpl(const char* uri);
virtual ~DefaultResourceImpl(void);
// nsISupports
NS_DECL_ISUPPORTS
// nsIRDFNode
NS_IMETHOD EqualsNode(nsIRDFNode* node, PRBool* result) const;
// nsIRDFResource
NS_IMETHOD GetValue(const char* *uri) const;
NS_IMETHOD EqualsResource(const nsIRDFResource* resource, PRBool* result) const;
NS_IMETHOD EqualsString(const char* uri, PRBool* result) const;
// Implementation methods
const char* GetURI(void) const {
return mURI;
}
private:
char* mURI;
};
DefaultResourceImpl::DefaultResourceImpl(const char* uri)
{
NS_INIT_REFCNT();
mURI = PL_strdup(uri);
}
DefaultResourceImpl::~DefaultResourceImpl(void)
{
nsresult rv;
nsIRDFService* mgr;
rv = nsServiceManager::GetService(kRDFServiceCID,
kIRDFServiceIID,
(nsISupports**) &mgr);
PR_ASSERT(NS_SUCCEEDED(rv));
if (NS_SUCCEEDED(rv)) {
mgr->UnCacheResource(this);
nsServiceManager::ReleaseService(kRDFServiceCID, mgr);
}
// N.B. that we need to free the URI *after* we un-cache the resource,
// due to the way that the resource manager is implemented.
PL_strfree(mURI);
}
NS_IMPL_ADDREF(DefaultResourceImpl);
NS_IMPL_RELEASE(DefaultResourceImpl);
nsresult
DefaultResourceImpl::QueryInterface(REFNSIID iid, void** result)
{
if (! result)
return NS_ERROR_NULL_POINTER;
*result = nsnull;
if (iid.Equals(kIRDFResourceIID) ||
iid.Equals(kIRDFNodeIID) ||
iid.Equals(kISupportsIID)) {
*result = NS_STATIC_CAST(nsIRDFResource*, this);
AddRef();
return NS_OK;
}
return NS_NOINTERFACE;
}
NS_IMETHODIMP
DefaultResourceImpl::EqualsNode(nsIRDFNode* node, PRBool* result) const
{
nsresult rv;
nsIRDFResource* resource;
if (NS_SUCCEEDED(node->QueryInterface(kIRDFResourceIID, (void**) &resource))) {
rv = EqualsResource(resource, result);
NS_RELEASE(resource);
}
else {
*result = PR_FALSE;
rv = NS_OK;
}
return rv;
}
NS_IMETHODIMP
DefaultResourceImpl::GetValue(const char* *uri) const
{
if (!uri)
return NS_ERROR_NULL_POINTER;
*uri = mURI;
return NS_OK;
}
NS_IMETHODIMP
DefaultResourceImpl::EqualsResource(const nsIRDFResource* resource, PRBool* result) const
{
if (!resource || !result)
return NS_ERROR_NULL_POINTER;
*result = (resource == this);
return NS_OK;
}
NS_IMETHODIMP
DefaultResourceImpl::EqualsString(const char* uri, PRBool* result) const
{
if (!uri || !result)
return NS_ERROR_NULL_POINTER;
*result = (PL_strcmp(uri, mURI) == 0);
return NS_OK;
}
////////////////////////////////////////////////////////////////////////
class DefaultResourceFactoryImpl : public nsIRDFResourceFactory
{
public:
DefaultResourceFactoryImpl(void);
virtual ~DefaultResourceFactoryImpl(void);
NS_DECL_ISUPPORTS
NS_IMETHOD CreateResource(const char* aURI, nsIRDFResource** aResult);
};
DefaultResourceFactoryImpl::DefaultResourceFactoryImpl(void)
{
NS_INIT_REFCNT();
}
DefaultResourceFactoryImpl::~DefaultResourceFactoryImpl(void)
{
}
NS_IMPL_ISUPPORTS(DefaultResourceFactoryImpl, kIRDFResourceFactoryIID);
NS_IMETHODIMP
DefaultResourceFactoryImpl::CreateResource(const char* aURI, nsIRDFResource** aResult)
{
NS_PRECONDITION(aResult != nsnull, "null ptr");
if (! aResult)
return NS_ERROR_NULL_POINTER;
DefaultResourceImpl* resource = new DefaultResourceImpl(aURI);
if (! resource)
return NS_ERROR_OUT_OF_MEMORY;
NS_ADDREF(resource);
*aResult = resource;
return NS_OK;
}
////////////////////////////////////////////////////////////////////////
nsresult
NS_NewRDFDefaultResourceFactory(nsIRDFResourceFactory** result)
{
NS_PRECONDITION(result != nsnull, "null ptr");
if (! result)
return NS_ERROR_NULL_POINTER;
DefaultResourceFactoryImpl* factory = new DefaultResourceFactoryImpl();
if (! factory)
return NS_ERROR_OUT_OF_MEMORY;
NS_ADDREF(factory);
*result = factory;
return NS_OK;
}

View File

@@ -1,240 +0,0 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/*
A set of "empty cursors" (nsIRDFAssertionCursor,
nsIRDFArcsOutCursor, nsIRDFArcsInCursor) that can be used to ensure
that the data source methods which return a cursor always return
*something*.
*/
#include "nscore.h"
#include "nsIRDFCursor.h"
static NS_DEFINE_IID(kIRDFArcsInCursorIID, NS_IRDFARCSINCURSOR_IID);
static NS_DEFINE_IID(kIRDFArcsOutCursorIID, NS_IRDFARCSOUTCURSOR_IID);
static NS_DEFINE_IID(kIRDFAssertionCursorIID, NS_IRDFASSERTIONCURSOR_IID);
static NS_DEFINE_IID(kIRDFCursorIID, NS_IRDFCURSOR_IID);
static NS_DEFINE_IID(kISupportsIID, NS_ISUPPORTS_IID);
////////////////////////////////////////////////////////////////////////
class EmptyAssertionCursorImpl : public nsIRDFAssertionCursor
{
public:
EmptyAssertionCursorImpl(void) {};
virtual ~EmptyAssertionCursorImpl(void) {};
// nsISupports
NS_IMETHOD_(nsrefcnt) AddRef(void) {
return 2;
}
NS_IMETHOD_(nsrefcnt) Release(void) {
return 1;
}
NS_IMETHOD QueryInterface(REFNSIID iid, void** result) {
if (! result)
return NS_ERROR_NULL_POINTER;
if (iid.Equals(kIRDFAssertionCursorIID) ||
iid.Equals(kIRDFCursorIID) ||
iid.Equals(kISupportsIID)) {
*result = NS_STATIC_CAST(nsIRDFAssertionCursor*, this);
/* AddRef(); // not necessary */
return NS_OK;
}
return NS_NOINTERFACE;
}
// nsIRDFCursor
NS_IMETHOD Advance(void) {
return NS_ERROR_RDF_CURSOR_EMPTY;
}
// nsIRDFAssertionCursor
NS_IMETHOD GetDataSource(nsIRDFDataSource** aDataSource) {
return NS_ERROR_UNEXPECTED;
}
NS_IMETHOD GetSubject(nsIRDFResource** aResource) {
return NS_ERROR_UNEXPECTED;
}
NS_IMETHOD GetPredicate(nsIRDFResource** aPredicate) {
return NS_ERROR_UNEXPECTED;
}
NS_IMETHOD GetObject(nsIRDFNode** aObject) {
return NS_ERROR_UNEXPECTED;
}
NS_IMETHOD GetTruthValue(PRBool* aTruthValue) {
return NS_ERROR_UNEXPECTED;
}
NS_IMETHOD GetValue(nsIRDFNode** aValue) {
return NS_ERROR_UNEXPECTED;
}
};
nsresult
NS_NewEmptyRDFAssertionCursor(nsIRDFAssertionCursor** result)
{
static EmptyAssertionCursorImpl gEmptyAssertionCursor;
*result = &gEmptyAssertionCursor;
return NS_OK;
}
////////////////////////////////////////////////////////////////////////
class EmptyArcsOutCursorImpl : public nsIRDFArcsOutCursor
{
public:
EmptyArcsOutCursorImpl(void) {};
virtual ~EmptyArcsOutCursorImpl(void) {};
// nsISupports
NS_IMETHOD_(nsrefcnt) AddRef(void) {
return 2;
}
NS_IMETHOD_(nsrefcnt) Release(void) {
return 1;
}
NS_IMETHOD QueryInterface(REFNSIID iid, void** result) {
if (! result)
return NS_ERROR_NULL_POINTER;
if (iid.Equals(kIRDFArcsOutCursorIID) ||
iid.Equals(kIRDFCursorIID) ||
iid.Equals(kISupportsIID)) {
*result = NS_STATIC_CAST(nsIRDFArcsOutCursor*, this);
/* AddRef(); // not necessary */
return NS_OK;
}
return NS_NOINTERFACE;
}
// nsIRDFCursor
NS_IMETHOD Advance(void) {
return NS_ERROR_RDF_CURSOR_EMPTY;
}
// nsIRDFArcsOutCursor
NS_IMETHOD GetDataSource(nsIRDFDataSource** aDataSource) {
return NS_ERROR_UNEXPECTED;
}
NS_IMETHOD GetSubject(nsIRDFResource** aResource) {
return NS_ERROR_UNEXPECTED;
}
NS_IMETHOD GetPredicate(nsIRDFResource** aPredicate) {
return NS_ERROR_UNEXPECTED;
}
NS_IMETHOD GetTruthValue(PRBool* aTruthValue) {
return NS_ERROR_UNEXPECTED;
}
NS_IMETHOD GetValue(nsIRDFNode** aValue) {
return NS_ERROR_UNEXPECTED;
}
};
nsresult
NS_NewEmptyRDFArcsOutCursor(nsIRDFArcsOutCursor** result)
{
static EmptyArcsOutCursorImpl gEmptyArcsOutCursor;
*result = &gEmptyArcsOutCursor;
return NS_OK;
}
////////////////////////////////////////////////////////////////////////
class EmptyArcsInCursorImpl : public nsIRDFArcsInCursor
{
public:
EmptyArcsInCursorImpl(void) {};
virtual ~EmptyArcsInCursorImpl(void) {};
// nsISupports
NS_IMETHOD_(nsrefcnt) AddRef(void) {
return 2;
}
NS_IMETHOD_(nsrefcnt) Release(void) {
return 1;
}
NS_IMETHOD QueryInterface(REFNSIID iid, void** result) {
if (! result)
return NS_ERROR_NULL_POINTER;
if (iid.Equals(kIRDFArcsInCursorIID) ||
iid.Equals(kIRDFCursorIID) ||
iid.Equals(kISupportsIID)) {
*result = NS_STATIC_CAST(nsIRDFArcsInCursor*, this);
/* AddRef(); // not necessary */
return NS_OK;
}
return NS_NOINTERFACE;
}
// nsIRDFCursor
NS_IMETHOD Advance(void) {
return NS_ERROR_RDF_CURSOR_EMPTY;
}
// nsIRDFArcsInCursor
NS_IMETHOD GetDataSource(nsIRDFDataSource** aDataSource) {
return NS_ERROR_UNEXPECTED;
}
NS_IMETHOD GetPredicate(nsIRDFResource** aPredicate) {
return NS_ERROR_UNEXPECTED;
}
NS_IMETHOD GetObject(nsIRDFNode** aNode) {
return NS_ERROR_UNEXPECTED;
}
NS_IMETHOD GetTruthValue(PRBool* aTruthValue) {
return NS_ERROR_UNEXPECTED;
}
NS_IMETHOD GetValue(nsIRDFNode** aValue) {
return NS_ERROR_UNEXPECTED;
}
};
nsresult
NS_NewEmptyRDFArcsInCursor(nsIRDFArcsInCursor** result)
{
static EmptyArcsInCursorImpl gEmptyArcsInCursor;
*result = &gEmptyArcsInCursor;
return NS_OK;
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,137 +0,0 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "License"); you may not use this file except in
* compliance with the License. You may obtain a copy of the License at
* http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS IS"
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
* the License for the specific language governing rights and limitations
* under the License.
*
* The Original Code is Mozilla Communicator client code.
*
* The Initial Developer of the Original Code is Netscape Communications
* Corporation. Portions created by Netscape are Copyright (C) 1998
* Netscape Communications Corporation. All Rights Reserved.
*/
/*
*/
#ifndef nsRDFContentSink_h__
#define nsRDFContentSink_h__
#include "nsIRDFContentSink.h"
class nsIURL;
class nsVoidArray;
class nsIRDFResource;
class nsIRDFDataSource;
class nsIRDFService;
class nsINameSpaceManager;
typedef enum {
eRDFContentSinkState_InProlog,
eRDFContentSinkState_InDocumentElement,
eRDFContentSinkState_InDescriptionElement,
eRDFContentSinkState_InContainerElement,
eRDFContentSinkState_InPropertyElement,
eRDFContentSinkState_InMemberElement,
eRDFContentSinkState_InEpilog
} RDFContentSinkState;
class RDFContentSinkImpl : public nsIRDFContentSink
{
public:
RDFContentSinkImpl();
virtual ~RDFContentSinkImpl();
// nsISupports
NS_DECL_ISUPPORTS
// nsIContentSink
NS_IMETHOD WillBuildModel(void);
NS_IMETHOD DidBuildModel(PRInt32 aQualityLevel);
NS_IMETHOD WillInterrupt(void);
NS_IMETHOD WillResume(void);
NS_IMETHOD SetParser(nsIParser* aParser);
NS_IMETHOD OpenContainer(const nsIParserNode& aNode);
NS_IMETHOD CloseContainer(const nsIParserNode& aNode);
NS_IMETHOD AddLeaf(const nsIParserNode& aNode);
NS_IMETHOD AddComment(const nsIParserNode& aNode);
NS_IMETHOD AddProcessingInstruction(const nsIParserNode& aNode);
NS_IMETHOD NotifyError(nsresult aErrorResult);
// nsIXMLContentSink
NS_IMETHOD AddXMLDecl(const nsIParserNode& aNode);
NS_IMETHOD AddDocTypeDecl(const nsIParserNode& aNode);
NS_IMETHOD AddCharacterData(const nsIParserNode& aNode);
NS_IMETHOD AddUnparsedEntity(const nsIParserNode& aNode);
NS_IMETHOD AddNotation(const nsIParserNode& aNode);
NS_IMETHOD AddEntityReference(const nsIParserNode& aNode);
// nsIRDFContentSink
NS_IMETHOD SetDataSource(nsIRDFDataSource* ds);
NS_IMETHOD GetDataSource(nsIRDFDataSource*& ds);
NS_IMETHOD Init(nsIURL* aURL, nsINameSpaceManager* aNameSpaceManager);
protected:
// Text management
nsresult FlushText(PRBool aCreateTextNode=PR_TRUE,
PRBool* aDidFlush=nsnull);
PRUnichar* mText;
PRInt32 mTextLength;
PRInt32 mTextSize;
PRBool mConstrainSize;
// namespace management
void PushNameSpacesFrom(const nsIParserNode& aNode);
nsIAtom* CutNameSpacePrefix(nsString& aString);
PRInt32 GetNameSpaceID(nsIAtom* aPrefix);
void GetNameSpaceURI(PRInt32 aID, nsString& aURI);
void PopNameSpaces();
nsINameSpaceManager* mNameSpaceManager;
nsVoidArray* mNameSpaceStack;
PRInt32 mRDFNameSpaceID;
void SplitQualifiedName(const nsString& aQualifiedName,
PRInt32& rNameSpaceID,
nsString& rProperty);
// RDF-specific parsing
nsresult GetIdAboutAttribute(const nsIParserNode& aNode, nsString& rResource);
nsresult GetResourceAttribute(const nsIParserNode& aNode, nsString& rResource);
nsresult AddProperties(const nsIParserNode& aNode, nsIRDFResource* aSubject);
virtual nsresult OpenRDF(const nsIParserNode& aNode);
virtual nsresult OpenObject(const nsIParserNode& aNode);
virtual nsresult OpenProperty(const nsIParserNode& aNode);
virtual nsresult OpenMember(const nsIParserNode& aNode);
virtual nsresult OpenValue(const nsIParserNode& aNode);
// Miscellaneous RDF junk
nsIRDFService* mRDFService;
nsIRDFDataSource* mDataSource;
RDFContentSinkState mState;
// content stack management
PRInt32 PushContext(nsIRDFResource *aContext, RDFContentSinkState aState);
nsresult PopContext(nsIRDFResource*& rContext, RDFContentSinkState& rState);
nsIRDFResource* GetContextElement(PRInt32 ancestor = 0);
nsVoidArray* mContextStack;
nsIURL* mDocumentURL;
PRUint32 mGenSym; // for generating anonymous resources
};
#endif // nsRDFContentSink_h__

View File

@@ -1,260 +0,0 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "License"); you may not use this file except in
* compliance with the License. You may obtain a copy of the License at
* http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS IS"
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
* the License for the specific language governing rights and limitations
* under the License.
*
* The Original Code is Mozilla Communicator client code.
*
* The Initial Developer of the Original Code is Netscape Communications
* Corporation. Portions created by Netscape are Copyright (C) 1998
* Netscape Communications Corporation. All Rights Reserved.
*/
/*
Some useful parsing routines.
This isn't the best place for them: I wish that they'd go into some
shared area (like mozilla/base).
*/
#include <stdlib.h> // XXX for atoi(), maybe this should go into nsCRT?
#include "nsCRT.h"
#include "nsIURL.h"
#include "nsString.h"
#include "nsRDFParserUtils.h"
// XXX This totally sucks. I wish that mozilla/base had this code.
PRUnichar
nsRDFParserUtils::EntityToUnicode(const char* buf)
{
if ((buf[0] == 'g' || buf[0] == 'G') &&
(buf[1] == 't' || buf[1] == 'T'))
return PRUnichar('>');
if ((buf[0] == 'l' || buf[0] == 'L') &&
(buf[1] == 't' || buf[1] == 'T'))
return PRUnichar('<');
if ((buf[0] == 'a' || buf[0] == 'A') &&
(buf[1] == 'm' || buf[1] == 'M') &&
(buf[2] == 'p' || buf[2] == 'P'))
return PRUnichar('&');
NS_NOTYETIMPLEMENTED("this is a named entity that I can't handle...");
return PRUnichar('?');
}
// XXX Code copied from nsHTMLContentSink. It should be shared.
void
nsRDFParserUtils::StripAndConvert(nsString& aResult)
{
// Strip quotes if present
PRUnichar first = aResult.First();
if ((first == '"') || (first == '\'')) {
if (aResult.Last() == first) {
aResult.Cut(0, 1);
PRInt32 pos = aResult.Length() - 1;
if (pos >= 0) {
aResult.Cut(pos, 1);
}
} else {
// Mismatched quotes - leave them in
}
}
// Reduce any entities
// XXX Note: as coded today, this will only convert well formed
// entities. This may not be compatible enough.
// XXX there is a table in navigator that translates some numeric entities
// should we be doing that? If so then it needs to live in two places (bad)
// so we should add a translate numeric entity method from the parser...
char cbuf[100];
PRInt32 index = 0;
while (index < aResult.Length()) {
// If we have the start of an entity (and it's not at the end of
// our string) then translate the entity into it's unicode value.
if ((aResult.CharAt(index++) == '&') && (index < aResult.Length())) {
PRInt32 start = index - 1;
PRUnichar e = aResult.CharAt(index);
if (e == '#') {
// Convert a numeric character reference
index++;
char* cp = cbuf;
char* limit = cp + sizeof(cbuf) - 1;
PRBool ok = PR_FALSE;
PRInt32 slen = aResult.Length();
while ((index < slen) && (cp < limit)) {
PRUnichar e = aResult.CharAt(index);
if (e == ';') {
index++;
ok = PR_TRUE;
break;
}
if ((e >= '0') && (e <= '9')) {
*cp++ = char(e);
index++;
continue;
}
break;
}
if (!ok || (cp == cbuf)) {
continue;
}
*cp = '\0';
if (cp - cbuf > 5) {
continue;
}
PRInt32 ch = PRInt32( ::atoi(cbuf) );
if (ch > 65535) {
continue;
}
// Remove entity from string and replace it with the integer
// value.
aResult.Cut(start, index - start);
aResult.Insert(PRUnichar(ch), start);
index = start + 1;
}
else if (((e >= 'A') && (e <= 'Z')) ||
((e >= 'a') && (e <= 'z'))) {
// Convert a named entity
index++;
char* cp = cbuf;
char* limit = cp + sizeof(cbuf) - 1;
*cp++ = char(e);
PRBool ok = PR_FALSE;
PRInt32 slen = aResult.Length();
while ((index < slen) && (cp < limit)) {
PRUnichar e = aResult.CharAt(index);
if (e == ';') {
index++;
ok = PR_TRUE;
break;
}
if (((e >= '0') && (e <= '9')) ||
((e >= 'A') && (e <= 'Z')) ||
((e >= 'a') && (e <= 'z'))) {
*cp++ = char(e);
index++;
continue;
}
break;
}
if (!ok || (cp == cbuf)) {
continue;
}
*cp = '\0';
PRInt32 ch;
// XXX Um, here's where we should be converting a
// named entity. I removed this to avoid a link-time
// dependency on core raptor.
ch = EntityToUnicode(cbuf);
if (ch < 0) {
continue;
}
// Remove entity from string and replace it with the integer
// value.
aResult.Cut(start, index - start);
aResult.Insert(PRUnichar(ch), start);
index = start + 1;
}
else if (e == '{') {
// Convert a script entity
// XXX write me!
NS_NOTYETIMPLEMENTED("convert a script entity");
}
}
}
}
nsresult
nsRDFParserUtils::GetQuotedAttributeValue(const nsString& aSource,
const nsString& aAttribute,
nsString& aValue)
{
static const char kQuote = '\"';
static const char kApostrophe = '\'';
PRInt32 offset;
PRInt32 endOffset = -1;
nsresult result = NS_OK;
offset = aSource.Find(aAttribute);
if (-1 != offset) {
offset = aSource.Find('=', offset);
PRUnichar next = aSource.CharAt(++offset);
if (kQuote == next) {
endOffset = aSource.Find(kQuote, ++offset);
}
else if (kApostrophe == next) {
endOffset = aSource.Find(kApostrophe, ++offset);
}
if (-1 != endOffset) {
aSource.Mid(aValue, offset, endOffset-offset);
}
else {
// Mismatched quotes - return an error
result = NS_ERROR_FAILURE;
}
}
else {
aValue.Truncate();
}
return result;
}
void
nsRDFParserUtils::FullyQualifyURI(const nsIURL* base, nsString& spec)
{
// This is a fairly heavy-handed way to do this, but...I don't
// like typing.
nsIURL* url;
if (NS_SUCCEEDED(NS_NewURL(&url, spec, base))) {
PRUnichar* str;
url->ToString(&str);
spec = str;
delete str;
url->Release();
}
}
PRBool
nsRDFParserUtils::IsJavaScriptLanguage(const nsString& aName)
{
if (aName.EqualsIgnoreCase("JavaScript") ||
aName.EqualsIgnoreCase("LiveScript") ||
aName.EqualsIgnoreCase("Mocha")) {
return PR_TRUE;
}
else if (aName.EqualsIgnoreCase("JavaScript1.1")) {
return PR_TRUE;
}
else if (aName.EqualsIgnoreCase("JavaScript1.2")) {
return PR_TRUE;
}
else if (aName.EqualsIgnoreCase("JavaScript1.3")) {
return PR_TRUE;
}
else if (aName.EqualsIgnoreCase("JavaScript1.4")) {
return PR_TRUE;
}
else {
return PR_FALSE;
}
}

View File

@@ -1,58 +0,0 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "License"); you may not use this file except in
* compliance with the License. You may obtain a copy of the License at
* http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS IS"
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
* the License for the specific language governing rights and limitations
* under the License.
*
* The Original Code is Mozilla Communicator client code.
*
* The Initial Developer of the Original Code is Netscape Communications
* Corporation. Portions created by Netscape are Copyright (C) 1998
* Netscape Communications Corporation. All Rights Reserved.
*/
/*
Some useful parsing routines.
*/
#ifndef nsRDFParserUtils_h__
#define nsRDFParserUtils_h__
#include "nscore.h"
class nsIURL;
class nsString;
class nsRDFParserUtils {
public:
static PRUnichar
EntityToUnicode(const char* buf);
static void
StripAndConvert(nsString& aResult);
static nsresult
GetQuotedAttributeValue(const nsString& aSource,
const nsString& aAttribute,
nsString& aValue);
static void
FullyQualifyURI(const nsIURL* base, nsString& spec);
static PRBool
IsJavaScriptLanguage(const nsString& aName);
};
#endif // nsRDFPasrserUtils_h__

View File

@@ -1,117 +0,0 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#include "nsRDFResource.h"
#include "nsCRT.h"
////////////////////////////////////////////////////////////////////////////////
static NS_DEFINE_IID(kIRDFResourceIID, NS_IRDFRESOURCE_IID);
static NS_DEFINE_IID(kIRDFNodeIID, NS_IRDFNODE_IID);
static NS_DEFINE_IID(kISupportsIID, NS_ISUPPORTS_IID);
////////////////////////////////////////////////////////////////////////////////
nsRDFResource::nsRDFResource(const char* uri)
: mURI(uri)
{
}
nsRDFResource::~nsRDFResource(void)
{
}
NS_IMPL_ADDREF(nsRDFResource)
NS_IMPL_RELEASE(nsRDFResource)
NS_IMETHODIMP
nsRDFResource::QueryInterface(REFNSIID iid, void** result)
{
if (! result)
return NS_ERROR_NULL_POINTER;
*result = nsnull;
if (iid.Equals(kIRDFResourceIID) ||
iid.Equals(kIRDFNodeIID) ||
iid.Equals(kISupportsIID)) {
*result = NS_STATIC_CAST(nsIRDFResource*, this);
}
if (*result != nsnull) {
AddRef();
return NS_OK;
}
return NS_NOINTERFACE;
}
////////////////////////////////////////////////////////////////////////////////
// nsIRDFNode methods:
NS_METHOD
nsRDFResource::EqualsNode(nsIRDFNode* node, PRBool* result) const
{
nsresult rv;
nsIRDFResource* resource;
if (NS_SUCCEEDED(node->QueryInterface(kIRDFResourceIID, (void**) &resource))) {
rv = EqualsResource(resource, result);
NS_RELEASE(resource);
}
else {
*result = PR_FALSE;
rv = NS_OK;
}
return rv;
}
////////////////////////////////////////////////////////////////////////////////
// nsIRDFResource methods:
NS_METHOD
nsRDFResource::GetValue(const char* *uri) const
{
if (!uri)
return NS_ERROR_NULL_POINTER;
*uri = mURI;
return NS_OK;
}
NS_METHOD
nsRDFResource::EqualsResource(const nsIRDFResource* resource, PRBool* result) const
{
if (!resource || !result)
return NS_ERROR_NULL_POINTER;
const char *uri;
if (NS_SUCCEEDED(resource->GetValue(&uri))) {
return EqualsString(uri, result) ? NS_OK : NS_ERROR_FAILURE;
}
return NS_ERROR_FAILURE;
}
NS_METHOD
nsRDFResource::EqualsString(const char* uri, PRBool* result) const
{
if (!uri || !result)
return NS_ERROR_NULL_POINTER;
*result = nsCRT::strcmp(uri, mURI) == 0;
return NS_OK;
}
////////////////////////////////////////////////////////////////////////////////

View File

@@ -1,759 +0,0 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/*
This file provides the implementation for the RDF service manager.
TO DO
-----
1) Figure out a better way to do "pluggable resources." Currently,
we have two _major_ hacks:
RegisterBuiltInNamedDataSources()
RegisterBuiltInResourceFactories()
These introduce dependencies on the datasource directory. You'd
like to have this stuff discovered dynamically at startup or
something. Maybe from the registry.
2) Implement the CreateDataBase() methods.
*/
#include "nsIAtom.h"
#include "nsIRDFDataSource.h"
#include "nsIRDFNode.h"
#include "nsIRDFService.h"
#include "nsIRDFResourceFactory.h"
#include "nsString.h"
#include "plhash.h"
#include "plstr.h"
#include "prlog.h"
////////////////////////////////////////////////////////////////////////
static NS_DEFINE_IID(kIRDFServiceIID, NS_IRDFSERVICE_IID);
static NS_DEFINE_IID(kIRDFLiteralIID, NS_IRDFLITERAL_IID);
static NS_DEFINE_IID(kIRDFResourceIID, NS_IRDFRESOURCE_IID);
static NS_DEFINE_IID(kIRDFNodeIID, NS_IRDFNODE_IID);
static NS_DEFINE_IID(kISupportsIID, NS_ISUPPORTS_IID);
////////////////////////////////////////////////////////////////////////
// PrefixMap
//
// A simple map from a string prefix to a value. It maintains an
// ordered list of prefixes that map to a <tt>void*</tt>. The list
// is sorted in ASCII order such that if one prefix <b>p</b> is
// itself a prefix of another prefix <b>q</b>, the longest prefix
// (<b>q</b>) will appear first in the list. The idea is that you
// want to find the "best" match first. (Will this actually be
// useful? Probabably not...)
//
class PrefixMap
{
private:
struct PrefixMapEntry
{
const char* mPrefix;
PRInt32 mPrefixLen;
const void* mValue;
PrefixMapEntry* mNext;
};
PrefixMapEntry* mHead;
public:
PrefixMap();
~PrefixMap();
PRBool Add(const char* aPrefix, const void* aValue);
const void* Remove(const char* aPrefix);
/**
* Find the most specific value matching the specified string.
*/
const void* Find(const char* aString);
};
PrefixMap::PrefixMap()
: mHead(nsnull)
{
}
PrefixMap::~PrefixMap()
{
while (mHead) {
PrefixMapEntry* doomed = mHead;
mHead = mHead->mNext;
PL_strfree(NS_CONST_CAST(char*, doomed->mPrefix));
delete doomed;
}
}
PRBool
PrefixMap::Add(const char* aPrefix, const void* aValue)
{
PRInt32 newPrefixLen = PL_strlen(aPrefix);
PrefixMapEntry* entry = mHead;
PrefixMapEntry* last = nsnull;
while (entry != nsnull) {
// check to see if the new prefix is longer than the current
// entry. If so, we'll want to insert the new prefix *before*
// this one.
if (newPrefixLen > entry->mPrefixLen)
break;
// check for exact equality: if so, the prefix is already
// registered, so fail (?)
if (PL_strcmp(entry->mPrefix, aPrefix) == 0)
return PR_FALSE;
// otherwise, the new prefix is the same length or shorter
// than the current entry: continue on to the next one.
last = entry;
entry = entry->mNext;
}
PrefixMapEntry* newEntry = new PrefixMapEntry;
if (! newEntry)
return PR_FALSE;
newEntry->mPrefix = PL_strdup(aPrefix);
newEntry->mPrefixLen = newPrefixLen;
newEntry->mValue = aValue;
if (last) {
// we found an entry that we need to insert the current
// entry *before*
newEntry->mNext = last->mNext;
last->mNext = newEntry;
}
else {
// Otherwise, insert at the start
newEntry->mNext = mHead;
mHead = newEntry;
}
return PR_TRUE;
}
const void*
PrefixMap::Remove(const char* aPrefix)
{
PrefixMapEntry* entry = mHead;
PrefixMapEntry* last = nsnull;
PRInt32 doomedPrefixLen = PL_strlen(aPrefix);
while (entry != nsnull) {
if ((doomedPrefixLen == entry->mPrefixLen) &&
(PL_strcmp(entry->mPrefix, aPrefix) == 0)) {
if (last) {
last->mNext = entry->mNext;
}
else {
mHead = entry->mNext;
}
const void* value = entry->mValue;
PL_strfree(NS_CONST_CAST(char*, entry->mPrefix));
delete entry;
return value;
}
last = entry;
entry = entry->mNext;
}
return nsnull;
}
const void*
PrefixMap::Find(const char* aString)
{
for (PrefixMapEntry* entry = mHead; entry != nsnull; entry = entry->mNext) {
PRInt32 cmp = PL_strncmp(entry->mPrefix, aString, entry->mPrefixLen);
if (cmp == 0)
return entry->mValue;
}
return nsnull;
}
////////////////////////////////////////////////////////////////////////
// LiteralImpl
//
// Currently, all literals are implemented exactly the same way;
// i.e., there is are no resource factories to allow you to generate
// customer resources. I doubt that makes sense, anyway.
//
// What _may_ make sense is to atomize literals (well, at least
// short ones), to reduce in memory overhead at the expense of some
// processing time.
//
class LiteralImpl : public nsIRDFLiteral {
public:
LiteralImpl(const PRUnichar* s);
virtual ~LiteralImpl(void);
// nsISupports
NS_DECL_ISUPPORTS
// nsIRDFNode
NS_IMETHOD EqualsNode(nsIRDFNode* node, PRBool* result) const;
// nsIRDFLiteral
NS_IMETHOD GetValue(const PRUnichar* *value) const;
NS_IMETHOD EqualsLiteral(const nsIRDFLiteral* literal, PRBool* result) const;
private:
nsAutoString mValue;
};
LiteralImpl::LiteralImpl(const PRUnichar* s)
: mValue(s)
{
NS_INIT_REFCNT();
}
LiteralImpl::~LiteralImpl(void)
{
}
NS_IMPL_ADDREF(LiteralImpl);
NS_IMPL_RELEASE(LiteralImpl);
nsresult
LiteralImpl::QueryInterface(REFNSIID iid, void** result)
{
if (! result)
return NS_ERROR_NULL_POINTER;
*result = nsnull;
if (iid.Equals(kIRDFLiteralIID) ||
iid.Equals(kIRDFNodeIID) ||
iid.Equals(kISupportsIID)) {
*result = NS_STATIC_CAST(nsIRDFLiteral*, this);
AddRef();
return NS_OK;
}
return NS_NOINTERFACE;
}
NS_IMETHODIMP
LiteralImpl::EqualsNode(nsIRDFNode* node, PRBool* result) const
{
nsresult rv;
nsIRDFLiteral* literal;
if (NS_SUCCEEDED(node->QueryInterface(kIRDFLiteralIID, (void**) &literal))) {
rv = EqualsLiteral(literal, result);
NS_RELEASE(literal);
}
else {
*result = PR_FALSE;
rv = NS_OK;
}
return rv;
}
NS_IMETHODIMP
LiteralImpl::GetValue(const PRUnichar* *value) const
{
NS_ASSERTION(value, "null ptr");
if (! value)
return NS_ERROR_NULL_POINTER;
*value = mValue.GetUnicode();
return NS_OK;
}
NS_IMETHODIMP
LiteralImpl::EqualsLiteral(const nsIRDFLiteral* literal, PRBool* result) const
{
NS_ASSERTION(literal && result, "null ptr");
if (!literal || !result)
return NS_ERROR_NULL_POINTER;
nsresult rv;
const PRUnichar* p;
if (NS_FAILED(rv = literal->GetValue(&p)))
return rv;
nsAutoString s(p);
*result = s.Equals(mValue);
return NS_OK;
}
////////////////////////////////////////////////////////////////////////
// ServiceImpl
//
// This is the RDF service.
//
class ServiceImpl : public nsIRDFService
{
protected:
PrefixMap mResourceFactories;
PLHashTable* mNamedDataSources;
PLHashTable* mDataSourceConstructors;
PLHashTable* mResources;
ServiceImpl(void);
virtual ~ServiceImpl(void);
static nsIRDFService* gRDFService; // The one-and-only RDF service
static void RegisterBuiltInResourceFactories();
static void RegisterBuiltInNamedDataSources();
public:
static nsresult GetRDFService(nsIRDFService** result);
// nsISupports
NS_DECL_ISUPPORTS
// nsIRDFService
NS_IMETHOD GetResource(const char* uri, nsIRDFResource** resource);
NS_IMETHOD GetUnicodeResource(const PRUnichar* uri, nsIRDFResource** resource);
NS_IMETHOD GetLiteral(const PRUnichar* value, nsIRDFLiteral** literal);
NS_IMETHOD UnCacheResource(nsIRDFResource* resource);
NS_IMETHOD RegisterResourceFactory(const char* aURIPrefix, nsIRDFResourceFactory* aFactory);
NS_IMETHOD UnRegisterResourceFactory(const char* aURIPrefix);
NS_IMETHOD RegisterDataSource(nsIRDFDataSource* dataSource);
NS_IMETHOD UnregisterDataSource(nsIRDFDataSource* dataSource);
NS_IMETHOD RegisterDataSourceConstructor(const char* uri, NSDataSourceConstructorCallback fn);
NS_IMETHOD UnregisterDataSourceConstructor(const char* uri);
NS_IMETHOD GetDataSource(const char* uri, nsIRDFDataSource** dataSource);
NS_IMETHOD CreateDatabase(const char** uris, nsIRDFDataBase** dataBase);
NS_IMETHOD CreateBrowserDatabase(nsIRDFDataBase** dataBase);
};
nsIRDFService* ServiceImpl::gRDFService = nsnull;
////////////////////////////////////////////////////////////////////////
ServiceImpl::ServiceImpl(void)
: mResources(nsnull), mNamedDataSources(nsnull)
{
NS_INIT_REFCNT();
mResources = PL_NewHashTable(1023, // nbuckets
PL_HashString, // hash fn
PL_CompareStrings, // key compare fn
PL_CompareValues, // value compare fn
nsnull, nsnull); // alloc ops & priv
mNamedDataSources = PL_NewHashTable(23,
PL_HashString,
PL_CompareStrings,
PL_CompareValues,
nsnull, nsnull);
mDataSourceConstructors = PL_NewHashTable(23,
PL_HashString,
PL_CompareStrings,
PL_CompareValues,
nsnull, nsnull);
}
ServiceImpl::~ServiceImpl(void)
{
if (mDataSourceConstructors) {
PL_HashTableDestroy(mDataSourceConstructors);
mDataSourceConstructors = nsnull;
}
if (mNamedDataSources) {
PL_HashTableDestroy(mNamedDataSources);
mNamedDataSources = nsnull;
}
if (mResources) {
PL_HashTableDestroy(mResources);
mResources = nsnull;
}
gRDFService = nsnull;
}
nsresult
ServiceImpl::GetRDFService(nsIRDFService** mgr)
{
if (! gRDFService) {
gRDFService = new ServiceImpl();
if (! gRDFService)
return NS_ERROR_OUT_OF_MEMORY;
RegisterBuiltInResourceFactories();
RegisterBuiltInNamedDataSources();
}
NS_ADDREF(gRDFService);
*mgr = gRDFService;
return NS_OK;
}
NS_IMETHODIMP_(nsrefcnt)
ServiceImpl::AddRef(void)
{
return 2;
}
NS_IMETHODIMP_(nsrefcnt)
ServiceImpl::Release(void)
{
return 1;
}
NS_IMPL_QUERY_INTERFACE(ServiceImpl, kIRDFServiceIID);
NS_IMETHODIMP
ServiceImpl::GetResource(const char* uri, nsIRDFResource** resource)
{
nsIRDFResource* result =
NS_STATIC_CAST(nsIRDFResource*, PL_HashTableLookup(mResources, uri));
if (! result) {
nsIRDFResourceFactory* factory =
NS_STATIC_CAST(nsIRDFResourceFactory*,
NS_CONST_CAST(void*, mResourceFactories.Find(uri)));
PR_ASSERT(factory != nsnull);
if (! factory)
return NS_ERROR_FAILURE; // XXX
nsresult rv;
if (NS_FAILED(rv = factory->CreateResource(uri, &result)))
return rv;
const char* uri;
result->GetValue(&uri);
// This is a little trick to make storage more efficient. For
// the "key" in the table, we'll use the string value that's
// stored as a member variable of the nsIRDFResource object.
PL_HashTableAdd(mResources, uri, result);
// *We* don't AddRef() the resource: that way, the resource
// can be garbage collected when the last refcount goes
// away. The single addref that the CreateResource() call made
// will be owned by the callee.
}
else {
// Addref for the callee.
NS_ADDREF(result);
}
*resource = result;
return NS_OK;
}
NS_IMETHODIMP
ServiceImpl::GetUnicodeResource(const PRUnichar* uri, nsIRDFResource** resource)
{
nsString s(uri);
char* cstr = s.ToNewCString();
nsresult rv = GetResource(cstr, resource);
delete[] cstr;
return rv;
}
NS_IMETHODIMP
ServiceImpl::GetLiteral(const PRUnichar* uri, nsIRDFLiteral** literal)
{
LiteralImpl* result = new LiteralImpl(uri);
if (! result)
return NS_ERROR_OUT_OF_MEMORY;
*literal = result;
NS_ADDREF(result);
return NS_OK;
}
NS_IMETHODIMP
ServiceImpl::UnCacheResource(nsIRDFResource* resource)
{
nsresult rv;
const char* uri;
if (NS_FAILED(rv = resource->GetValue(&uri)))
return rv;
PL_HashTableRemove(mResources, uri);
return NS_OK;
}
NS_IMETHODIMP
ServiceImpl::RegisterResourceFactory(const char* aURIPrefix, nsIRDFResourceFactory* aFactory)
{
if (! mResourceFactories.Add(aURIPrefix, aFactory))
return NS_ERROR_ILLEGAL_VALUE;
NS_ADDREF(aFactory); // XXX should we addref?
return NS_OK;
}
NS_IMETHODIMP
ServiceImpl::UnRegisterResourceFactory(const char* aURIPrefix)
{
nsIRDFResourceFactory* factory =
NS_STATIC_CAST(nsIRDFResourceFactory*,
NS_CONST_CAST(void*, mResourceFactories.Remove(aURIPrefix)));
if (! factory)
return NS_ERROR_ILLEGAL_VALUE;
NS_RELEASE(factory); // XXX should we addref?
return NS_OK;
}
NS_IMETHODIMP
ServiceImpl::RegisterDataSource(nsIRDFDataSource* aDataSource)
{
NS_PRECONDITION(aDataSource != nsnull, "null ptr");
if (! aDataSource)
return NS_ERROR_NULL_POINTER;
nsresult rv;
const char* uri;
if (NS_FAILED(rv = aDataSource->GetURI(&uri)))
return rv;
// XXX check for dups, etc.
PL_HashTableAdd(mNamedDataSources, uri, aDataSource);
return NS_OK;
}
NS_IMETHODIMP
ServiceImpl::UnregisterDataSource(nsIRDFDataSource* aDataSource)
{
NS_PRECONDITION(aDataSource != nsnull, "null ptr");
if (! aDataSource)
return NS_ERROR_NULL_POINTER;
nsresult rv;
const char* uri;
if (NS_FAILED(rv = aDataSource->GetURI(&uri)))
return rv;
nsIRDFDataSource* ds =
NS_STATIC_CAST(nsIRDFDataSource*, PL_HashTableLookup(mNamedDataSources, uri));
if (! ds)
return NS_ERROR_ILLEGAL_VALUE;
PL_HashTableRemove(mNamedDataSources, uri);
return NS_OK;
}
NS_IMETHODIMP
ServiceImpl::RegisterDataSourceConstructor(const char* uri, NSDataSourceConstructorCallback fn)
{
// XXX check for dups, etc.
PL_HashTableAdd(mDataSourceConstructors, uri, fn);
return NS_OK;
}
NS_IMETHODIMP
ServiceImpl::UnregisterDataSourceConstructor(const char* uri)
{
PL_HashTableRemove(mDataSourceConstructors, uri);
return NS_OK;
}
NS_IMETHODIMP
ServiceImpl::GetDataSource(const char* uri, nsIRDFDataSource** aDataSource)
{
nsIRDFDataSource* ds =
NS_STATIC_CAST(nsIRDFDataSource*, PL_HashTableLookup(mNamedDataSources, uri));
if (ds) {
NS_ADDREF(ds);
*aDataSource = ds;
return NS_OK;
}
// Otherwise, see if we have a lazy constructor
NSDataSourceConstructorCallback constructor =
(NSDataSourceConstructorCallback)
PL_HashTableLookup(mDataSourceConstructors, uri);
if (constructor) {
// Yep, so try to construct it on the fly...
nsresult rv;
if (NS_FAILED(rv = constructor(&ds))) {
#ifdef DEBUG
printf("error constructing built-in datasource %s\n", uri);
#endif
return rv;
}
// If it wants to register itself, it should do so in the Init() method.
if (NS_FAILED(rv = ds->Init(uri))) {
#ifdef DEBUG
printf("error initializing named datasource %s\n", uri);
#endif
NS_RELEASE(ds);
return rv;
}
// constructor did an implicit addref
*aDataSource = ds;
return NS_OK;
}
// XXX at this point, we might want to try to construct a
// stream URI and load it that way...
return NS_ERROR_ILLEGAL_VALUE;
}
NS_IMETHODIMP
ServiceImpl::CreateDatabase(const char** uri, nsIRDFDataBase** dataBase)
{
PR_ASSERT(0);
return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP
ServiceImpl::CreateBrowserDatabase(nsIRDFDataBase** dataBase)
{
PR_ASSERT(0);
return NS_ERROR_NOT_IMPLEMENTED;
}
////////////////////////////////////////////////////////////////////////
//
// This is Big Hack #1. Depedencies on all builtin resource
// factories are *here*, in the ResourceFactoryTable.
//
struct ResourceFactoryTable {
const char* mPrefix;
nsresult (*mFactoryConstructor)(nsIRDFResourceFactory** result);
};
void
ServiceImpl::RegisterBuiltInResourceFactories(void)
{
extern nsresult NS_NewRDFDefaultResourceFactory(nsIRDFResourceFactory** result);
extern nsresult NS_NewRDFMailResourceFactory(nsIRDFResourceFactory** result);
extern nsresult NS_NewRDFMailAccountResourceFactory(nsIRDFResourceFactory** result);
extern nsresult NS_NewRDFFileResourceFactory(nsIRDFResourceFactory** result);
static ResourceFactoryTable gTable[] = {
"", NS_NewRDFDefaultResourceFactory,
"mailaccount:", NS_NewRDFMailAccountResourceFactory,
"mailbox:", NS_NewRDFMailResourceFactory,
#if 0
"file:", NS_NewRDFFileResourceFactory,
#endif
nsnull, nsnull
};
nsresult rv;
for (ResourceFactoryTable* entry = gTable; entry->mPrefix != nsnull; ++entry) {
nsIRDFResourceFactory* factory;
if (NS_FAILED(rv = (entry->mFactoryConstructor)(&factory)))
continue;
rv = gRDFService->RegisterResourceFactory(entry->mPrefix, factory);
PR_ASSERT(NS_SUCCEEDED(rv));
NS_RELEASE(factory);
}
}
////////////////////////////////////////////////////////////////////////
//
// This is Big Hack #2. Dependencies on all builtin datasources are
// *here*, in the DataSourceTable.
//
// FWIW, I don't particularly like this interface *anyway*, because
// it requires each built-in data source to be constructed "up
// front". Not only does it cause the service manager to be
// re-entered (which may be a problem), but it's wasteful: I think
// these data sources should be created on demand, and released when
// you're done with them.
//
struct DataSourceTable {
const char* mURI;
nsresult (*mDataSourceConstructor)(nsIRDFDataSource** result);
};
void
ServiceImpl::RegisterBuiltInNamedDataSources(void)
{
extern nsresult NS_NewRDFBookmarkDataSource(nsIRDFDataSource** result);
extern nsresult NS_NewRDFHistoryDataSource(nsIRDFDataSource** result);
extern nsresult NS_NewRDFLocalFileSystemDataSource(nsIRDFDataSource** result);
extern nsresult NS_NewRDFMailDataSource(nsIRDFDataSource** result);
static DataSourceTable gTable[] = {
"rdf:bookmarks", NS_NewRDFBookmarkDataSource,
"rdf:mail", NS_NewRDFMailDataSource,
#if 0
"rdf:history", NS_NewRDFHistoryDataSource,
"rdf:lfs", NS_NewRDFLocalFileSystemDataSource,
#endif
nsnull, nsnull
};
nsresult rv;
for (DataSourceTable* entry = gTable; entry->mURI != nsnull; ++entry) {
if (NS_FAILED(rv = gRDFService->RegisterDataSourceConstructor(entry->mURI, entry->mDataSourceConstructor))) {
#ifdef DEBUG
printf("error registering built-in datasource constructor for %s\n", entry->mURI);
#endif
continue;
}
}
}
////////////////////////////////////////////////////////////////////////
nsresult
NS_NewRDFService(nsIRDFService** mgr)
{
return ServiceImpl::GetRDFService(mgr);
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,233 +0,0 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "License"); you may not use this file except in
* compliance with the License. You may obtain a copy of the License at
* http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS IS"
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
* the License for the specific language governing rights and limitations
* under the License.
*
* The Original Code is Mozilla Communicator client code.
*
* The Initial Developer of the Original Code is Netscape Communications
* Corporation. Portions created by Netscape are Copyright (C) 1998
* Netscape Communications Corporation. All Rights Reserved.
*/
/*
A bunch of useful RDF utility routines. Many of these will
eventually be exported outside of RDF.DLL via the nsIRDFService
interface.
*/
#ifndef rdfutil_h__
#define rdfutil_h__
#include "prtypes.h"
class nsIRDFCursor;
class nsIRDFDataBase;
class nsIRDFDataSource;
class nsIRDFNode;
class nsString;
/**
* Returns PR_TRUE if the URI is an RDF ordinal property; e.g., rdf:_1,
* rdf:_2, etc.
*/
PR_EXTERN(PRBool)
rdf_IsOrdinalProperty(const nsIRDFResource* property);
/**
* Converts an ordinal property to an index
*/
PR_EXTERN(nsresult)
rdf_OrdinalResourceToIndex(nsIRDFResource* aOrdinal, PRInt32* aIndex);
/**
* Converts an index to an ordinal property
*/
PR_EXTERN(nsresult)
rdf_IndexToOrdinalResource(PRInt32 aIndex, nsIRDFResource** aOrdinal);
/**
* Returns PR_TRUE if the resource is a container resource; e.g., an
* rdf:Bag.
*/
PR_EXTERN(PRBool)
rdf_IsContainer(nsIRDFDataSource* db,
nsIRDFResource* resource);
PR_EXTERN(PRBool)
rdf_IsBag(nsIRDFDataSource* aDataSource,
nsIRDFResource* aResource);
PR_EXTERN(PRBool)
rdf_IsSeq(nsIRDFDataSource* aDataSource,
nsIRDFResource* aResource);
PR_EXTERN(PRBool)
rdf_IsAlt(nsIRDFDataSource* aDataSource,
nsIRDFResource* aResource);
/**
* Various utilities routines for making assertions in a data source
*/
// 0. node, node, node
PR_EXTERN(nsresult)
rdf_Assert(nsIRDFDataSource* ds,
nsIRDFResource* subject,
nsIRDFResource* predicate,
nsIRDFNode* object);
// 1. string, string, string
PR_EXTERN(nsresult)
rdf_Assert(nsIRDFDataSource* ds,
const nsString& subjectURI,
const nsString& predicateURI,
const nsString& objectURI);
// 2. node, node, string
PR_EXTERN(nsresult)
rdf_Assert(nsIRDFDataSource* ds,
nsIRDFResource* subject,
nsIRDFResource* predicate,
const nsString& objectURI);
// 3. node, string, string
PR_EXTERN(nsresult)
rdf_Assert(nsIRDFDataSource* ds,
nsIRDFResource* subject,
const nsString& predicateURI,
const nsString& objectURI);
// 4. node, string, node
PR_EXTERN(nsresult)
rdf_Assert(nsIRDFDataSource* ds,
nsIRDFResource* subject,
const nsString& predicateURI,
nsIRDFNode* object);
// 5. string, string, node
PR_EXTERN(nsresult)
rdf_Assert(nsIRDFDataSource* ds,
const nsString& subjectURI,
const nsString& predicateURI,
nsIRDFNode* object);
/**
* Construct a new, "anonymous" node; that is, a node with an internal
* resource URI.
*/
PR_EXTERN(nsresult)
rdf_CreateAnonymousResource(const nsString& aContextURI, nsIRDFResource** result);
/**
* Determine if a resource is an "anonymous" resource that we've constructed
* ourselves.
*/
PR_EXTERN(PRBool)
rdf_IsAnonymousResource(const nsString& aContextURI, nsIRDFResource* aResource);
/**
* Try to convert the absolute URL into a relative URL.
*/
PR_EXTERN(nsresult)
rdf_PossiblyMakeRelative(const nsString& aContextURI, nsString& aURI);
/**
* Create a bag resource.
*/
PR_EXTERN(nsresult)
rdf_MakeBag(nsIRDFDataSource* ds,
nsIRDFResource* resource);
/**
* Create a sequence resource.
*/
PR_EXTERN(nsresult)
rdf_MakeSeq(nsIRDFDataSource* ds,
nsIRDFResource* resource);
/**
* Create an alternation resource.
*/
PR_EXTERN(nsresult)
rdf_MakeAlt(nsIRDFDataSource* ds,
nsIRDFResource* resource);
/**
* Add an element to the end of container.
*/
PR_EXTERN(nsresult)
rdf_ContainerAppendElement(nsIRDFDataSource* ds,
nsIRDFResource* container,
nsIRDFNode* element);
/**
* Remove an element from a container
*/
PR_EXTERN(nsresult)
rdf_ContainerRemoveElement(nsIRDFDataSource* aDataSource,
nsIRDFResource* aContainer,
nsIRDFNode* aElement);
/**
* Insert an element into a container at the specified index.
*/
PR_EXTERN(nsresult)
rdf_ContainerInsertElementAt(nsIRDFDataSource* aDataSource,
nsIRDFResource* aContainer,
nsIRDFNode* aElement,
PRInt32 aIndex);
/**
* Determine the index of an element in a container.
*/
PR_EXTERN(nsresult)
rdf_ContainerIndexOf(nsIRDFDataSource* aDataSource,
nsIRDFResource* aContainer,
nsIRDFNode* aElement,
PRInt32* aIndex);
/**
* Create a cursor on a container that enumerates its contents in
* order
*/
PR_EXTERN(nsresult)
NS_NewContainerCursor(nsIRDFDataSource* ds,
nsIRDFResource* container,
nsIRDFAssertionCursor** cursor);
/**
* Create an empty nsIRDFCursor. This will *never* fail, and will *always*
* return the same object.
*/
PR_EXTERN(nsresult)
NS_NewEmptyRDFAssertionCursor(nsIRDFAssertionCursor** result);
PR_EXTERN(nsresult)
NS_NewEmptyRDFArcsInCursor(nsIRDFArcsInCursor** result);
PR_EXTERN(nsresult)
NS_NewEmptyRDFArcsOutCursor(nsIRDFArcsOutCursor** result);
// XXX need to move nsEmptyCursor stuff here.
#endif // rdfutil_h__

View File

@@ -1 +0,0 @@
nsRDFCID.h

View File

@@ -1,69 +0,0 @@
#!gmake
#
# The contents of this file are subject to the Netscape Public License
# Version 1.0 (the "NPL"); you may not use this file except in
# compliance with the NPL. You may obtain a copy of the NPL at
# http://www.mozilla.org/NPL/
#
# Software distributed under the NPL is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
# for the specific language governing rights and limitations under the
# NPL.
#
# The Initial Developer of this code under the NPL is Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1998 Netscape Communications Corporation. All Rights
# Reserved.
DEPTH=../..
topsrcdir = @top_srcdir@
srcdir = @srcdir@
VPATH = @srcdir@
include $(DEPTH)/config/autoconf.mk
include $(topsrcdir)/config/config.mk
LIBRARY_NAME = rdf
CPPSRCS = \
nsRDFFactory.cpp \
$(NULL)
EXPORTS = \
nsRDFCID.h \
$(NULL)
EXPORTS := $(addprefix $(srcdir)/, $(EXPORTS))
MODULE = rdf
REQUIRES = dom js netlib rdf raptor xpcom
# XXX Note dependencies on implementation headers for factory functions
INCLUDES += -I$(srcdir)/../base/src \
-I$(srcdir)/../content/src \
-I$(srcdir)/../datasource/src \
$(NULL)
EXTRA_DSO_LDOPTS = \
-L$(DIST)/bin \
-L$(DIST)/lib \
-lrdfbase_s \
-lrdfcontent_s \
-lrdfdatasource_s \
$(NULL)
include $(topsrcdir)/config/rules.mk
install:: $(TARGETS)
$(INSTALL) $(srcdir)/../resources/Mail/joe@meer.net/inbox $(DIST)/bin/res/rdf/Mail/joe@meer.net
$(INSTALL) $(srcdir)/../resources/sidebar.xul $(DIST)/bin/res/rdf
$(INSTALL) $(srcdir)/../resources/sidebar.css $(DIST)/bin/res/rdf
$(INSTALL) $(srcdir)/../resources/bookmarks.html $(DIST)/bin/res/rdf
$(INSTALL) $(srcdir)/../resources/Mail/joe@meer.net/work $(DIST)/bin/res/rdf/Mail/joe@meer.net
$(INSTALL) $(srcdir)/../resources/Mail/joe@meer.net/other $(DIST)/bin/res/rdf/Mail/joe@meer.net
$(INSTALL) $(srcdir)/../resources/Mail/jane@aol.com/inbox $(DIST)/bin/res/rdf/Mail/jane@aol.com
$(INSTALL) $(srcdir)/../resources/Mail/jane@aol.com/hiking $(DIST)/bin/res/rdf/Mail/jane@aol.com
$(INSTALL) $(srcdir)/../resources/Mail/jane@aol.com/trash $(DIST)/bin/res/rdf/Mail/jane@aol.com

View File

@@ -1,83 +0,0 @@
#!gmake
#
# The contents of this file are subject to the Netscape Public License
# Version 1.0 (the "NPL"); you may not use this file except in
# compliance with the NPL. You may obtain a copy of the NPL at
# http://www.mozilla.org/NPL/
#
# Software distributed under the NPL is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
# for the specific language governing rights and limitations under the
# NPL.
#
# The Initial Developer of this code under the NPL is Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1998 Netscape Communications Corporation. All Rights
# Reserved.
DEPTH=..\..
MODULE=rdf
MAKE_OBJ_TYPE=DLL
DLLNAME=rdf
DLL=.\$(OBJDIR)\$(DLLNAME).dll
EXPORTS=\
nsRDFCID.h \
$(NULL)
CPP_OBJS=\
.\$(OBJDIR)\nsRDFFactory.obj \
$(NULL)
# XXX linking in raptor is a heinous crime that will go away once we
# have a more DOM-based mechanism for constructing elements and
# hooking in to their changes.
LLIBS=\
$(DIST)\lib\rdfbase_s.lib \
$(DIST)\lib\rdfcontent_s.lib \
$(DIST)\lib\rdfdatasource_s.lib \
$(DIST)\lib\xpcom32.lib \
$(DIST)\lib\raptorbase.lib \
$(DIST)\lib\raptorgfxwin.lib \
$(DIST)\lib\netlib.lib \
$(DIST)\lib\libplc21.lib \
$(DIST)\lib\raptorhtml.lib \
$(DIST)\lib\jsdom.lib \
$(DIST)\lib\js3250.lib \
$(LIBNSPR)
MISCDEP=$(LLIBS)
# XXX Note dependencies on implementation dirs for factory methods.
LINCS= -I$(PUBLIC)\rdf \
-I$(PUBLIC)\xpcom \
-I$(PUBLIC)\netlib \
-I$(PUBLIC)\raptor \
-I$(PUBLIC)\js \
-I$(PUBLIC)\dom \
-I$(DEPTH)\rdf\base\src \
-I$(DEPTH)\rdf\content\src \
-I$(DEPTH)\rdf\datasource\src \
$(NULL)
include <$(DEPTH)\config\rules.mak>
install:: $(DLL)
$(MAKE_INSTALL) .\$(OBJDIR)\$(DLLNAME).dll $(DIST)\bin
$(MAKE_INSTALL) .\$(OBJDIR)\$(DLLNAME).lib $(DIST)\lib
$(MAKE_INSTALL) ..\resources\Mail\joe@meer.net\inbox $(DIST)\bin\res\rdf\Mail\joe@meer.net
$(MAKE_INSTALL) ..\resources\sidebar.xul $(DIST)\bin\res\rdf
$(MAKE_INSTALL) ..\resources\sidebar.css $(DIST)\bin\res\rdf
$(MAKE_INSTALL) ..\resources\bookmarks.html $(DIST)\bin\res\rdf
$(MAKE_INSTALL) ..\resources\Mail\joe@meer.net\work $(DIST)\bin\res\rdf\Mail\joe@meer.net
$(MAKE_INSTALL) ..\resources\Mail\joe@meer.net\other $(DIST)\bin\res\rdf\Mail\joe@meer.net
$(MAKE_INSTALL) ..\resources\Mail\jane@aol.com\inbox $(DIST)\bin\res\rdf\Mail\jane@aol.com
$(MAKE_INSTALL) ..\resources\Mail\jane@aol.com\hiking $(DIST)\bin\res\rdf\Mail\jane@aol.com
$(MAKE_INSTALL) ..\resources\Mail\jane@aol.com\trash $(DIST)\bin\res\rdf\Mail\jane@aol.com

View File

@@ -1,81 +0,0 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/*
XPCOM Class IDs for RDF objects that can be constructed via the RDF
factory.
*/
#ifndef nsRDFCID_h__
#define nsRDFCID_h__
// {0F78DA56-8321-11d2-8EAC-00805F29F370}
#define NS_RDFNODE_CID \
{ 0xf78da56, 0x8321, 0x11d2, { 0x8e, 0xac, 0x0, 0x80, 0x5f, 0x29, 0xf3, 0x70 } }
// {BFD05264-834C-11d2-8EAC-00805F29F370}
#define NS_RDFSERVICE_CID \
{ 0xbfd05264, 0x834c, 0x11d2, { 0x8e, 0xac, 0x0, 0x80, 0x5f, 0x29, 0xf3, 0x70 } }
// {BFD0526D-834C-11d2-8EAC-00805F29F370}
#define NS_RDFINMEMORYDATASOURCE_CID \
{ 0xbfd0526d, 0x834c, 0x11d2, { 0x8e, 0xac, 0x0, 0x80, 0x5f, 0x29, 0xf3, 0x70 } }
// {E638D760-8687-11d2-B530-000000000000}
#define NS_RDFBOOKMARKDATASOURCE_CID \
{ 0xe638d760, 0x8687, 0x11d2, { 0xb5, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } }
// {E638D761-8687-11d2-B530-000000000000}
#define NS_RDFCOMPOSITEDATASOURCE_CID \
{ 0xe638d761, 0x8687, 0x11d2, { 0xb5, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } }
// {954F0813-81DC-11d2-B52A-000000000000}
#define NS_RDFHTMLBUILDER_CID \
{ 0x954f0813, 0x81dc, 0x11d2, { 0xb5, 0x2a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } }
// {3D262D00-8B5A-11d2-8EB0-00805F29F370}
#define NS_RDFTREEBUILDER_CID \
{ 0x3d262d00, 0x8b5a, 0x11d2, { 0x8e, 0xb0, 0x0, 0x80, 0x5f, 0x29, 0xf3, 0x70 } }
// {7BAF62E0-8E61-11d2-8EB1-00805F29F370}
#define NS_RDFXMLDATASOURCE_CID \
{ 0x7baf62e0, 0x8e61, 0x11d2, { 0x8e, 0xb1, 0x0, 0x80, 0x5f, 0x29, 0xf3, 0x70 } }
// {6791B601-B9FE-11d2-BF86-00105A1B0627}
#define NS_XULDATASOURCE_CID \
{ 0x6791b601, 0xb9fe, 0x11d2, { 0xbf, 0x86, 0x0, 0x10, 0x5a, 0x1b, 0x6, 0x27 } }
// {0958B101-9ADA-11d2-8EBC-00805F29F370}
#define NS_RDFCONTENTSINK_CID \
{ 0x958b101, 0x9ada, 0x11d2, { 0x8e, 0xbc, 0x0, 0x80, 0x5f, 0x29, 0xf3, 0x70 } }
// {E45313F0-B59C-11d2-A68C-00104BDE6048}
#define NS_RDFXULBUILDER_CID \
{ 0xe45313f0, 0xb59c, 0x11d2, { 0xa6, 0x8c, 0x0, 0x10, 0x4b, 0xde, 0x60, 0x48 } }
// {CE058B21-BA9C-11d2-BF86-00105A1B0627}
#define NS_XULCONTENTSINK_CID \
{ 0xce058b21, 0xba9c, 0x11d2, { 0xbf, 0x86, 0x0, 0x10, 0x5a, 0x1b, 0x6, 0x27 } }
// {541AFCB2-A9A3-11d2-8EC5-00805F29F370}
#define NS_XULDOCUMENT_CID \
{ 0x541afcb2, 0xa9a3, 0x11d2, { 0x8e, 0xc5, 0x0, 0x80, 0x5f, 0x29, 0xf3, 0x70 } }
#endif // nsRDFCID_h__

View File

@@ -1,263 +0,0 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/*
The RDF factory implementation.
*/
#include "nsIFactory.h"
#include "nsIRDFCompositeDataSource.h"
#include "nsIRDFContentModelBuilder.h"
#include "nsIRDFContentSink.h"
#include "nsIRDFDocument.h"
#include "nsIRDFService.h"
#include "nsIRDFXMLDataSource.h"
#include "nsIXULContentSink.h"
#include "nsISupports.h"
#include "nsRDFBaseDataSources.h"
#include "nsRDFBuiltInDataSources.h"
#include "nsRDFCID.h"
#include "nsRepository.h"
static NS_DEFINE_IID(kISupportsIID, NS_ISUPPORTS_IID);
static NS_DEFINE_IID(kIFactoryIID, NS_IFACTORY_IID);
static NS_DEFINE_CID(kRDFBookmarkDataSourceCID, NS_RDFBOOKMARKDATASOURCE_CID);
static NS_DEFINE_CID(kRDFCompositeDataSourceCID, NS_RDFCOMPOSITEDATASOURCE_CID);
static NS_DEFINE_CID(kRDFContentSinkCID, NS_RDFCONTENTSINK_CID);
static NS_DEFINE_CID(kRDFHTMLBuilderCID, NS_RDFHTMLBUILDER_CID);
static NS_DEFINE_CID(kRDFInMemoryDataSourceCID, NS_RDFINMEMORYDATASOURCE_CID);
static NS_DEFINE_CID(kRDFServiceCID, NS_RDFSERVICE_CID);
static NS_DEFINE_CID(kRDFTreeBuilderCID, NS_RDFTREEBUILDER_CID);
static NS_DEFINE_CID(kRDFXMLDataSourceCID, NS_RDFXMLDATASOURCE_CID);
static NS_DEFINE_CID(kRDFXULBuilderCID, NS_RDFXULBUILDER_CID);
static NS_DEFINE_CID(kXULContentSinkCID, NS_XULCONTENTSINK_CID);
static NS_DEFINE_CID(kXULDataSourceCID, NS_XULDATASOURCE_CID);
static NS_DEFINE_CID(kXULDocumentCID, NS_XULDOCUMENT_CID);
class RDFFactoryImpl : public nsIFactory
{
public:
RDFFactoryImpl(const nsCID &aClass);
// nsISupports methods
NS_DECL_ISUPPORTS
// nsIFactory methods
NS_IMETHOD CreateInstance(nsISupports *aOuter,
const nsIID &aIID,
void **aResult);
NS_IMETHOD LockFactory(PRBool aLock);
protected:
virtual ~RDFFactoryImpl();
private:
nsCID mClassID;
};
////////////////////////////////////////////////////////////////////////
RDFFactoryImpl::RDFFactoryImpl(const nsCID &aClass)
{
NS_INIT_REFCNT();
mClassID = aClass;
}
RDFFactoryImpl::~RDFFactoryImpl()
{
NS_ASSERTION(mRefCnt == 0, "non-zero refcnt at destruction");
}
NS_IMETHODIMP
RDFFactoryImpl::QueryInterface(const nsIID &aIID,
void **aResult)
{
if (! aResult)
return NS_ERROR_NULL_POINTER;
// Always NULL result, in case of failure
*aResult = nsnull;
if (aIID.Equals(kISupportsIID)) {
*aResult = NS_STATIC_CAST(nsISupports*, this);
AddRef();
return NS_OK;
} else if (aIID.Equals(kIFactoryIID)) {
*aResult = NS_STATIC_CAST(nsIFactory*, this);
AddRef();
return NS_OK;
}
return NS_NOINTERFACE;
}
NS_IMPL_ADDREF(RDFFactoryImpl);
NS_IMPL_RELEASE(RDFFactoryImpl);
NS_IMETHODIMP
RDFFactoryImpl::CreateInstance(nsISupports *aOuter,
const nsIID &aIID,
void **aResult)
{
if (! aResult)
return NS_ERROR_NULL_POINTER;
if (aOuter)
return NS_ERROR_NO_AGGREGATION;
*aResult = nsnull;
nsresult rv;
PRBool wasRefCounted = PR_TRUE;
nsISupports *inst = nsnull;
if (mClassID.Equals(kRDFServiceCID)) {
if (NS_FAILED(rv = NS_NewRDFService((nsIRDFService**) &inst)))
return rv;
}
else if (mClassID.Equals(kRDFInMemoryDataSourceCID)) {
if (NS_FAILED(rv = NS_NewRDFInMemoryDataSource((nsIRDFDataSource**) &inst)))
return rv;
}
else if (mClassID.Equals(kRDFXMLDataSourceCID)) {
if (NS_FAILED(rv = NS_NewRDFXMLDataSource((nsIRDFXMLDataSource**) &inst)))
return rv;
}
else if (mClassID.Equals(kRDFBookmarkDataSourceCID)) {
if (NS_FAILED(rv = NS_NewRDFBookmarkDataSource((nsIRDFDataSource**) &inst)))
return rv;
}
else if (mClassID.Equals(kRDFCompositeDataSourceCID)) {
if (NS_FAILED(rv = NS_NewRDFCompositeDataSource((nsIRDFCompositeDataSource**) &inst)))
return rv;
}
else if (mClassID.Equals(kXULDocumentCID)) {
if (NS_FAILED(rv = NS_NewXULDocument((nsIRDFDocument**) &inst)))
return rv;
}
else if (mClassID.Equals(kRDFHTMLBuilderCID)) {
if (NS_FAILED(rv = NS_NewRDFHTMLBuilder((nsIRDFContentModelBuilder**) &inst)))
return rv;
}
else if (mClassID.Equals(kRDFTreeBuilderCID)) {
if (NS_FAILED(rv = NS_NewRDFTreeBuilder((nsIRDFContentModelBuilder**) &inst)))
return rv;
}
else if (mClassID.Equals(kRDFXULBuilderCID)) {
if (NS_FAILED(rv = NS_NewRDFXULBuilder((nsIRDFContentModelBuilder**) &inst)))
return rv;
}
else if (mClassID.Equals(kRDFContentSinkCID)) {
if (NS_FAILED(rv = NS_NewRDFContentSink((nsIRDFContentSink**) &inst)))
return rv;
}
else if (mClassID.Equals(kXULDataSourceCID)) {
if (NS_FAILED(rv = NS_NewXULDataSource((nsIRDFXMLDataSource**) &inst)))
return rv;
}
else if (mClassID.Equals(kXULContentSinkCID)) {
if (NS_FAILED(rv = NS_NewXULContentSink((nsIXULContentSink**) &inst)))
return rv;
}
else {
return NS_ERROR_NO_INTERFACE;
}
if (! inst)
return NS_ERROR_OUT_OF_MEMORY;
if (NS_FAILED(rv = inst->QueryInterface(aIID, aResult)))
// We didn't get the right interface, so clean up
delete inst;
if (wasRefCounted)
NS_IF_RELEASE(inst);
return rv;
}
nsresult RDFFactoryImpl::LockFactory(PRBool aLock)
{
// Not implemented in simplest case.
return NS_OK;
}
////////////////////////////////////////////////////////////////////////
// return the proper factory to the caller
extern "C" PR_IMPLEMENT(nsresult)
NSGetFactory(const nsCID &aClass, nsISupports* aServiceManager, nsIFactory **aFactory)
{
if (! aFactory)
return NS_ERROR_NULL_POINTER;
RDFFactoryImpl* factory = new RDFFactoryImpl(aClass);
if (factory == nsnull)
return NS_ERROR_OUT_OF_MEMORY;
NS_ADDREF(factory);
*aFactory = factory;
return NS_OK;
}
extern "C" PR_IMPLEMENT(nsresult)
NSRegisterSelf(const char* aPath)
{
nsRepository::RegisterFactory(kRDFBookmarkDataSourceCID, aPath, PR_TRUE, PR_TRUE);
nsRepository::RegisterFactory(kRDFCompositeDataSourceCID, aPath, PR_TRUE, PR_TRUE);
nsRepository::RegisterFactory(kRDFContentSinkCID, aPath, PR_TRUE, PR_TRUE);
nsRepository::RegisterFactory(kRDFHTMLBuilderCID, aPath, PR_TRUE, PR_TRUE);
nsRepository::RegisterFactory(kRDFInMemoryDataSourceCID, aPath, PR_TRUE, PR_TRUE);
nsRepository::RegisterFactory(kRDFServiceCID, aPath, PR_TRUE, PR_TRUE);
nsRepository::RegisterFactory(kRDFTreeBuilderCID, aPath, PR_TRUE, PR_TRUE);
nsRepository::RegisterFactory(kRDFXMLDataSourceCID, aPath, PR_TRUE, PR_TRUE);
nsRepository::RegisterFactory(kRDFXULBuilderCID, aPath, PR_TRUE, PR_TRUE);
nsRepository::RegisterFactory(kXULContentSinkCID, aPath, PR_TRUE, PR_TRUE);
nsRepository::RegisterFactory(kXULDataSourceCID, aPath, PR_TRUE, PR_TRUE);
nsRepository::RegisterFactory(kXULDocumentCID, aPath, PR_TRUE, PR_TRUE);
return NS_OK;
}
extern "C" PR_IMPLEMENT(nsresult)
NSUnregisterSelf(const char* aPath)
{
nsRepository::UnregisterFactory(kRDFBookmarkDataSourceCID, aPath);
nsRepository::UnregisterFactory(kRDFCompositeDataSourceCID, aPath);
nsRepository::UnregisterFactory(kRDFContentSinkCID, aPath);
nsRepository::UnregisterFactory(kRDFHTMLBuilderCID, aPath);
nsRepository::UnregisterFactory(kRDFInMemoryDataSourceCID, aPath);
nsRepository::UnregisterFactory(kRDFServiceCID, aPath);
nsRepository::UnregisterFactory(kRDFTreeBuilderCID, aPath);
nsRepository::UnregisterFactory(kRDFXMLDataSourceCID, aPath);
nsRepository::UnregisterFactory(kRDFXULBuilderCID, aPath);
nsRepository::UnregisterFactory(kXULContentSinkCID, aPath);
nsRepository::UnregisterFactory(kXULDataSourceCID, aPath);
nsRepository::UnregisterFactory(kXULDocumentCID, aPath);
return NS_OK;
}

View File

@@ -1,29 +0,0 @@
#!gmake
#
# The contents of this file are subject to the Netscape Public License
# Version 1.0 (the "NPL"); you may not use this file except in
# compliance with the NPL. You may obtain a copy of the NPL at
# http://www.mozilla.org/NPL/
#
# Software distributed under the NPL is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
# for the specific language governing rights and limitations under the
# NPL.
#
# The Initial Developer of this code under the NPL is Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1998 Netscape Communications Corporation. All Rights
# Reserved.
DEPTH = ../..
topsrcdir = @top_srcdir@
srcdir = @srcdir@
VPATH = @srcdir@
include $(DEPTH)/config/autoconf.mk
DIRS = public src
include $(topsrcdir)/config/config.mk
include $(topsrcdir)/config/rules.mk

View File

@@ -1,27 +0,0 @@
#!gmake
#
# The contents of this file are subject to the Netscape Public License
# Version 1.0 (the "NPL"); you may not use this file except in
# compliance with the NPL. You may obtain a copy of the NPL at
# http://www.mozilla.org/NPL/
#
# Software distributed under the NPL is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
# for the specific language governing rights and limitations under the
# NPL.
#
# The Initial Developer of this code under the NPL is Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1998 Netscape Communications Corporation. All Rights
# Reserved.
DEPTH=..\..
MODULE = rdf
DIRS=\
public \
src \
$(NULL)
include <$(DEPTH)\config\rules.mak>

View File

@@ -1,5 +0,0 @@
nsIDOMNodeObserver.h
nsIDOMXULNode.h
nsIRDFContent.h
nsIRDFContentModelBuilder.h
nsIRDFDocument.h

View File

@@ -1,39 +0,0 @@
#!gmake
#
# The contents of this file are subject to the Netscape Public License
# Version 1.0 (the "NPL"); you may not use this file except in
# compliance with the NPL. You may obtain a copy of the NPL at
# http://www.mozilla.org/NPL/
#
# Software distributed under the NPL is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
# for the specific language governing rights and limitations under the
# NPL.
#
# The Initial Developer of this code under the NPL is Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1998 Netscape Communications Corporation. All Rights
# Reserved.
DEPTH=../../..
topsrcdir = @top_srcdir@
srcdir = @srcdir@
VPATH = @srcdir@
include $(DEPTH)/config/autoconf.mk
MODULE = rdf
EXPORTS = \
nsIDOMNodeObserver.h \
nsIDOMXULNode.h \
nsIRDFContent.h \
nsIRDFContentModelBuilder.h \
nsIRDFDocument.h \
$(NULL)
EXPORTS := $(addprefix $(srcdir)/, $(EXPORTS))
include $(topsrcdir)/config/config.mk
include $(topsrcdir)/config/rules.mk

View File

@@ -1,10 +0,0 @@
interface NodeObserver {
/* IID: { 0x3e969070, 0xc301, 0x11d2, \
{ 0xa6, 0xae, 0x0, 0x10, 0x4b, 0xde, 0x60, 0x48 } } */
void onSetNodeValue(in Node node, in DOMString value);
void onInsertBefore(in Node parent, in Node newChild, in Node refChild);
void onReplaceChild(in Node parent, in Node newChild, in Node oldChild);
void onRemoveChild(in Node parent, in Node oldChild);
void onAppendChild(in Node parent, in Node newChild);
};

View File

@@ -1,9 +0,0 @@
interface XULNode {
/* IID: { 0x574ed81, 0xc088, 0x11d2, \
{ 0x96, 0xed, 0x0, 0x10, 0x4b, 0x7b, 0x7d, 0xeb } } */
void addBroadcastListener(in DOMString attr, in Node node);
void removeBroadcastListener(in DOMString attr, in Node node);
void doCommand();
};

View File

@@ -1,53 +0,0 @@
#!nmake
#
# The contents of this file are subject to the Netscape Public License
# Version 1.0 (the "NPL"); you may not use this file except in
# compliance with the NPL. You may obtain a copy of the NPL at
# http://www.mozilla.org/NPL/
#
# Software distributed under the NPL is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
# for the specific language governing rights and limitations under the
# NPL.
#
# The Initial Developer of this code under the NPL is Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1998 Netscape Communications Corporation. All Rights
# Reserved.
DEPTH=..\..\..\..
IGNORE_MANIFEST=1
MODULE=rdf
IDLSRCS = \
NodeObserver.idl \
XULNode.idl \
$(NULL)
XPCOM_DESTDIR=$(DEPTH)\rdf\content\public
JSSTUB_DESTDIR=$(DEPTH)\rdf\content\src
GENXDIR=genx
GENJSDIR=genjs
!include <$(DEPTH)\config\rules.mak>
$(GENXDIR):
-mkdir $(GENXDIR)
$(GENJSDIR):
-mkdir $(GENJSDIR)
IDLC=$(DIST)\bin\idlc.exe
GENIID=$(DIST)\bin\geniid.pl
export:: $(GENXDIR) $(GENJSDIR) $(IDLSRCS)
@echo +++ make: generating xpcom headers
$(IDLC) -d $(GENXDIR) -x $(IDLSRCS)
@echo +++ make: generating JavaScript stubs
$(IDLC) -d $(GENJSDIR) -j $(IDLSRCS)
install::
$(MAKE_INSTALL:/=\) $(GENXDIR)\nsIDOM*.h $(XPCOM_DESTDIR)
$(MAKE_INSTALL:/=\) $(GENJSDIR)\nsJS*.cpp $(JSSTUB_DESTDIR)

View File

@@ -1,32 +0,0 @@
#!gmake
#
# The contents of this file are subject to the Netscape Public License
# Version 1.0 (the "NPL"); you may not use this file except in
# compliance with the NPL. You may obtain a copy of the NPL at
# http://www.mozilla.org/NPL/
#
# Software distributed under the NPL is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
# for the specific language governing rights and limitations under the
# NPL.
#
# The Initial Developer of this code under the NPL is Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1998 Netscape Communications Corporation. All Rights
# Reserved.
MODULE=rdf
DEPTH=..\..\..
EXPORTS = \
nsIDOMNodeObserver.h \
nsIDOMXULNode.h \
nsIRDFContent.h \
nsIRDFContentModelBuilder.h \
nsIRDFDocument.h \
$(NULL)
include <$(DEPTH)/config/rules.mak>

View File

@@ -1,70 +0,0 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/* AUTO-GENERATED. DO NOT EDIT!!! */
#ifndef nsIDOMNodeObserver_h__
#define nsIDOMNodeObserver_h__
#include "nsISupports.h"
#include "nsString.h"
#include "nsIScriptContext.h"
class nsIDOMNode;
#define NS_IDOMNODEOBSERVER_IID \
{ 0x3e969070, 0xc301, 0x11d2, \
{ 0xa6, 0xae, 0x0, 0x10, 0x4b, 0xde, 0x60, 0x48 } }
class nsIDOMNodeObserver : public nsISupports {
public:
static const nsIID& IID() { static nsIID iid = NS_IDOMNODEOBSERVER_IID; return iid; }
NS_IMETHOD OnSetNodeValue(nsIDOMNode* aNode, const nsString& aValue)=0;
NS_IMETHOD OnInsertBefore(nsIDOMNode* aParent, nsIDOMNode* aNewChild, nsIDOMNode* aRefChild)=0;
NS_IMETHOD OnReplaceChild(nsIDOMNode* aParent, nsIDOMNode* aNewChild, nsIDOMNode* aOldChild)=0;
NS_IMETHOD OnRemoveChild(nsIDOMNode* aParent, nsIDOMNode* aOldChild)=0;
NS_IMETHOD OnAppendChild(nsIDOMNode* aParent, nsIDOMNode* aNewChild)=0;
};
#define NS_DECL_IDOMNODEOBSERVER \
NS_IMETHOD OnSetNodeValue(nsIDOMNode* aNode, const nsString& aValue); \
NS_IMETHOD OnInsertBefore(nsIDOMNode* aParent, nsIDOMNode* aNewChild, nsIDOMNode* aRefChild); \
NS_IMETHOD OnReplaceChild(nsIDOMNode* aParent, nsIDOMNode* aNewChild, nsIDOMNode* aOldChild); \
NS_IMETHOD OnRemoveChild(nsIDOMNode* aParent, nsIDOMNode* aOldChild); \
NS_IMETHOD OnAppendChild(nsIDOMNode* aParent, nsIDOMNode* aNewChild); \
#define NS_FORWARD_IDOMNODEOBSERVER(_to) \
NS_IMETHOD OnSetNodeValue(nsIDOMNode* aNode, const nsString& aValue) { return _to##OnSetNodeValue(aNode, aValue); } \
NS_IMETHOD OnInsertBefore(nsIDOMNode* aParent, nsIDOMNode* aNewChild, nsIDOMNode* aRefChild) { return _to##OnInsertBefore(aParent, aNewChild, aRefChild); } \
NS_IMETHOD OnReplaceChild(nsIDOMNode* aParent, nsIDOMNode* aNewChild, nsIDOMNode* aOldChild) { return _to##OnReplaceChild(aParent, aNewChild, aOldChild); } \
NS_IMETHOD OnRemoveChild(nsIDOMNode* aParent, nsIDOMNode* aOldChild) { return _to##OnRemoveChild(aParent, aOldChild); } \
NS_IMETHOD OnAppendChild(nsIDOMNode* aParent, nsIDOMNode* aNewChild) { return _to##OnAppendChild(aParent, aNewChild); } \
extern nsresult NS_InitNodeObserverClass(nsIScriptContext *aContext, void **aPrototype);
extern "C" NS_DOM nsresult NS_NewScriptNodeObserver(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn);
#endif // nsIDOMNodeObserver_h__

View File

@@ -1,62 +0,0 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/* AUTO-GENERATED. DO NOT EDIT!!! */
#ifndef nsIDOMXULNode_h__
#define nsIDOMXULNode_h__
#include "nsISupports.h"
#include "nsString.h"
#include "nsIScriptContext.h"
class nsIDOMNode;
#define NS_IDOMXULNODE_IID \
{ 0x574ed81, 0xc088, 0x11d2, \
{ 0x96, 0xed, 0x0, 0x10, 0x4b, 0x7b, 0x7d, 0xeb } }
class nsIDOMXULNode : public nsISupports {
public:
static const nsIID& IID() { static nsIID iid = NS_IDOMXULNODE_IID; return iid; }
NS_IMETHOD AddBroadcastListener(const nsString& aAttr, nsIDOMNode* aNode)=0;
NS_IMETHOD RemoveBroadcastListener(const nsString& aAttr, nsIDOMNode* aNode)=0;
NS_IMETHOD DoCommand()=0;
};
#define NS_DECL_IDOMXULNODE \
NS_IMETHOD AddBroadcastListener(const nsString& aAttr, nsIDOMNode* aNode); \
NS_IMETHOD RemoveBroadcastListener(const nsString& aAttr, nsIDOMNode* aNode); \
NS_IMETHOD DoCommand(); \
#define NS_FORWARD_IDOMXULNODE(_to) \
NS_IMETHOD AddBroadcastListener(const nsString& aAttr, nsIDOMNode* aNode) { return _to##AddBroadcastListener(aAttr, aNode); } \
NS_IMETHOD RemoveBroadcastListener(const nsString& aAttr, nsIDOMNode* aNode) { return _to##RemoveBroadcastListener(aAttr, aNode); } \
NS_IMETHOD DoCommand() { return _to##DoCommand(); } \
extern nsresult NS_InitXULNodeClass(nsIScriptContext *aContext, void **aPrototype);
extern "C" NS_DOM nsresult NS_NewScriptXULNode(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn);
#endif // nsIDOMXULNode_h__

View File

@@ -1,69 +0,0 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "License"); you may not use this file except in
* compliance with the License. You may obtain a copy of the License at
* http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS IS"
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
* the License for the specific language governing rights and limitations
* under the License.
*
* The Original Code is Mozilla Communicator client code.
*
* The Initial Developer of the Original Code is Netscape Communications
* Corporation. Portions created by Netscape are Copyright (C) 1998
* Netscape Communications Corporation. All Rights Reserved.
*/
/*
An interface for RDF content model elements.
*/
#ifndef nsIRDFContent_h___
#define nsIRDFContent_h___
#include "nsISupports.h"
#include "nsIXMLContent.h"
class nsIRDFResource;
// {954F0810-81DC-11d2-B52A-000000000000}
#define NS_IRDFCONTENT_IID \
{ 0x954f0810, 0x81dc, 0x11d2, { 0xb5, 0x2a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } }
/**
* RDF content extensions to nsIContent
*/
class nsIRDFContent : public nsIContent {
public:
static const nsIID& IID() { static nsIID iid = NS_IRDFCONTENT_IID; return iid; }
/**
* Return the RDF resource on which this RDF content element was based.
*/
NS_IMETHOD GetResource(nsIRDFResource*& aResource) const = 0;
/**
* Mark a an element as a "container element" so that its contents
* will be generated on-demand.
*/
NS_IMETHOD SetContainer(PRBool aIsContainer) = 0;
};
nsresult
NS_NewRDFResourceElement(nsIRDFContent** aResult,
nsIRDFResource* aResource,
PRInt32 aNameSpaceID,
nsIAtom* aTag);
nsresult
NS_NewRDFGenericElement(nsIContent** aResult,
PRInt32 aNameSpaceID,
nsIAtom* aTag);
#endif // nsIRDFContent_h___

View File

@@ -1,76 +0,0 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "License"); you may not use this file except in
* compliance with the License. You may obtain a copy of the License at
* http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS IS"
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
* the License for the specific language governing rights and limitations
* under the License.
*
* The Original Code is Mozilla Communicator client code.
*
* The Initial Developer of the Original Code is Netscape Communications
* Corporation. Portions created by Netscape are Copyright (C) 1998
* Netscape Communications Corporation. All Rights Reserved.
*/
/*
A content model builder interface. An object that implements this
interface is associated with an nsIRDFDocument object to construct
an NGLayout content model.
*/
#ifndef nsIRDFContentModelBuilder_h__
#define nsIRDFContentModelBuilder_h__
#include "nsISupports.h"
class nsIContent;
class nsIRDFCompositeDataSource;
class nsIRDFContent; // XXX get rid of these...
class nsIRDFDocument;
class nsIRDFNode;
class nsIRDFResource;
// {541AFCB0-A9A3-11d2-8EC5-00805F29F370}
#define NS_IRDFCONTENTMODELBUILDER_IID \
{ 0x541afcb0, 0xa9a3, 0x11d2, { 0x8e, 0xc5, 0x0, 0x80, 0x5f, 0x29, 0xf3, 0x70 } }
class nsIRDFContentModelBuilder : public nsISupports
{
public:
static const nsIID& IID() { static nsIID iid = NS_IRDFCONTENTMODELBUILDER_IID; return iid; }
/**
* Point the content model builder to the document. The content model
* builder must not reference count the document.
*/
NS_IMETHOD SetDocument(nsIRDFDocument* aDocument) = 0;
NS_IMETHOD SetDataBase(nsIRDFCompositeDataSource* aDataBase) = 0;
NS_IMETHOD GetDataBase(nsIRDFCompositeDataSource** aDataBase) = 0;
/**
* Set the root element from which this content model will
* operate.
*/
NS_IMETHOD CreateRootContent(nsIRDFResource* aResource) = 0;
NS_IMETHOD SetRootContent(nsIContent* aElement) = 0;
/**
* Construct the contents for a container element.
*/
NS_IMETHOD CreateContents(nsIContent* aElement) = 0;
};
extern nsresult NS_NewRDFHTMLBuilder(nsIRDFContentModelBuilder** aResult);
extern nsresult NS_NewRDFTreeBuilder(nsIRDFContentModelBuilder** aResult);
extern nsresult NS_NewRDFXULBuilder(nsIRDFContentModelBuilder** aResult);
#endif // nsIRDFContentModelBuilder_h__

View File

@@ -1,81 +0,0 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "License"); you may not use this file except in
* compliance with the License. You may obtain a copy of the License at
* http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS IS"
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
* the License for the specific language governing rights and limitations
* under the License.
*
* The Original Code is Mozilla Communicator client code.
*
* The Initial Developer of the Original Code is Netscape Communications
* Corporation. Portions created by Netscape are Copyright (C) 1998
* Netscape Communications Corporation. All Rights Reserved.
*/
/*
An RDF-specific extension to nsIXMLDocument. Includes methods for
setting the root resource of the document content model, a factory
method for constructing the children of a node, etc.
*/
#ifndef nsIRDFDocument_h___
#define nsIRDFDocument_h___
class nsIContent; // XXX nsIXMLDocument.h is bad and doesn't declare this class...
#include "nsIXMLDocument.h"
class nsIAtom;
class nsIRDFCompositeDataSource;
class nsIRDFContent;
class nsIRDFContentModelBuilder;
class nsISupportsArray;
class nsIRDFResource;
// {954F0811-81DC-11d2-B52A-000000000000}
#define NS_IRDFDOCUMENT_IID \
{ 0x954f0811, 0x81dc, 0x11d2, { 0xb5, 0x2a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } }
/**
* RDF document extensions to nsIDocument
*/
class nsIRDFDocument : public nsIXMLDocument
{
public:
static const nsIID& IID() { static nsIID iid = NS_IRDFDOCUMENT_IID; return iid; }
/**
* Set the document's "root" resource.
*/
NS_IMETHOD SetRootResource(nsIRDFResource* aResource) = 0;
// XXX the following two methods should probably accept strings as
// parameters so you can mess with them via JS. Also, should they
// take a "notify" parameter that would control whether any viewers
// of the content model should be informed that the content model is
// invalid?
NS_IMETHOD SplitProperty(nsIRDFResource* aResource, PRInt32* aNameSpaceID, nsIAtom** aTag) = 0;
NS_IMETHOD AddElementForResource(nsIRDFResource* aResource, nsIRDFContent* aElement) = 0;
NS_IMETHOD RemoveElementForResource(nsIRDFResource* aResource, nsIRDFContent* aElement) = 0;
NS_IMETHOD GetElementsForResource(nsIRDFResource* aResource, nsISupportsArray* aElements) = 0;
NS_IMETHOD CreateContents(nsIRDFContent* aElement) = 0;
NS_IMETHOD AddContentModelBuilder(nsIRDFContentModelBuilder* aBuilder) = 0;
};
// factory functions
nsresult NS_NewXULDocument(nsIRDFDocument** result);
#endif // nsIRDFDocument_h___

View File

@@ -1,65 +0,0 @@
#!gmake
#
# The contents of this file are subject to the Netscape Public License
# Version 1.0 (the "NPL"); you may not use this file except in
# compliance with the NPL. You may obtain a copy of the NPL at
# http://www.mozilla.org/NPL/
#
# Software distributed under the NPL is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
# for the specific language governing rights and limitations under the
# NPL.
#
# The Initial Developer of this code under the NPL is Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1998 Netscape Communications Corporation. All Rights
# Reserved.
DEPTH=../../..
topsrcdir = @top_srcdir@
srcdir = @srcdir@
VPATH = @srcdir@
include $(DEPTH)/config/autoconf.mk
include $(topsrcdir)/config/config.mk
LIBRARY_NAME = rdfcontent_s
CPPSRCS = \
nsRDFContentUtils.cpp \
nsRDFDOMNodeList.cpp \
nsRDFGenericElement.cpp \
nsRDFHTMLBuilder.cpp \
nsRDFResourceElement.cpp \
nsRDFTreeBuilder.cpp \
nsRDFXULBuilder.cpp \
nsXULDocument.cpp \
nsJSXULNode.cpp \
$(NULL)
EXPORTS = \
$(NULL)
EXPORTS := $(addprefix $(srcdir)/, $(EXPORTS))
MODULE = rdf
REQUIRES = dom js netlib rdf raptor xpcom
# XXX This is a dependency on rdfutil.h: it'll go away once that becomes
# a first-class XPCOM interface.
INCLUDES += -I$(srcdir)/../../base/src
# XXX This is a dependency on Raptor for constructing HTML
# content. It'll go away once we move RDF content model construction
# outside the DOM APIs.
INCLUDES += -I$(srcdir)/../../../layout/html/base/src
MKSHLIB :=
# we don't want the shared lib
NO_SHARED_LIB=1
include $(topsrcdir)/config/rules.mk

View File

@@ -1,63 +0,0 @@
#!gmake
#
# The contents of this file are subject to the Netscape Public License
# Version 1.0 (the "NPL"); you may not use this file except in
# compliance with the NPL. You may obtain a copy of the NPL at
# http://www.mozilla.org/NPL/
#
# Software distributed under the NPL is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
# for the specific language governing rights and limitations under the
# NPL.
#
# The Initial Developer of this code under the NPL is Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1998 Netscape Communications Corporation. All Rights
# Reserved.
DEPTH=..\..\..
MODULE=rdf
LIBRARY_NAME=rdfcontent_s
DEFINES=-D_IMPL_NS_DOM
LCFLAGS = \
$(LCFLAGS) \
$(DEFINES) \
$(NULL)
CPP_OBJS=\
.\$(OBJDIR)\nsJSXULNode.obj \
.\$(OBJDIR)\nsRDFContentUtils.obj \
.\$(OBJDIR)\nsRDFDOMNodeList.obj \
.\$(OBJDIR)\nsRDFGenericElement.obj \
.\$(OBJDIR)\nsRDFHTMLBuilder.obj \
.\$(OBJDIR)\nsRDFResourceElement.obj \
.\$(OBJDIR)\nsRDFTreeBuilder.obj \
.\$(OBJDIR)\nsRDFXULBuilder.obj \
.\$(OBJDIR)\nsXULDocument.obj \
$(NULL)
# XXX we are including layout\html\base\src to get HTML elements
# constructed directly from Raptor. The hope is that this'll
# eventually be replaced by a DOM-based mechanism.
LINCS= -I$(PUBLIC)\rdf \
-I$(PUBLIC)\xpcom \
-I$(PUBLIC)\netlib \
-I$(PUBLIC)\raptor \
-I$(PUBLIC)\js \
-I$(PUBLIC)\dom \
-I$(DEPTH)\rdf\base\src \
-I$(DEPTH)\layout\html\base\src \
$(NULL)
include <$(DEPTH)\config\rules.mak>
libs:: $(LIBRARY)
$(MAKE_INSTALL) $(LIBRARY) $(DIST)\lib
clobber::
rm -f $(DIST)\lib\$(LIBRARY_NAME).lib

View File

@@ -1,53 +0,0 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "License"); you may not use this file except in
* compliance with the License. You may obtain a copy of the License at
* http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS IS"
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
* the License for the specific language governing rights and limitations
* under the License.
*
* The Original Code is Mozilla Communicator client code.
*
* The Initial Developer of the Original Code is Netscape Communications
* Corporation. Portions created by Netscape are Copyright (C) 1998
* Netscape Communications Corporation. All Rights Reserved.
*/
/*
A helper class used to implement attributes.
*/
#ifndef nsGenericAttribute_h__
#define nsGenericAttribute_h__
class nsGenericAttribute
{
public:
nsGenericAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, const nsString& aValue)
: mNameSpaceID(aNameSpaceID),
mName(aName),
mValue(aValue)
{
NS_IF_ADDREF(mName);
}
~nsGenericAttribute(void)
{
NS_IF_RELEASE(mName);
}
PRInt32 mNameSpaceID;
nsIAtom* mName;
nsString mValue;
};
#endif // nsGenericAttribute_h__

View File

@@ -1,543 +0,0 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/* AUTO-GENERATED. DO NOT EDIT!!! */
#include "jsapi.h"
#include "nsJSUtils.h"
#include "nscore.h"
#include "nsIScriptContext.h"
#include "nsIJSScriptObject.h"
#include "nsIScriptObjectOwner.h"
#include "nsIScriptGlobalObject.h"
#include "nsIPtr.h"
#include "nsString.h"
#include "nsIDOMNode.h"
#include "nsIDOMNodeObserver.h"
static NS_DEFINE_IID(kIScriptObjectOwnerIID, NS_ISCRIPTOBJECTOWNER_IID);
static NS_DEFINE_IID(kIJSScriptObjectIID, NS_IJSSCRIPTOBJECT_IID);
static NS_DEFINE_IID(kIScriptGlobalObjectIID, NS_ISCRIPTGLOBALOBJECT_IID);
static NS_DEFINE_IID(kINodeIID, NS_IDOMNODE_IID);
static NS_DEFINE_IID(kINodeObserverIID, NS_IDOMNODEOBSERVER_IID);
NS_DEF_PTR(nsIDOMNode);
NS_DEF_PTR(nsIDOMNodeObserver);
/***********************************************************************/
//
// NodeObserver Properties Getter
//
PR_STATIC_CALLBACK(JSBool)
GetNodeObserverProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
{
nsIDOMNodeObserver *a = (nsIDOMNodeObserver*)JS_GetPrivate(cx, obj);
// If there's no private data, this must be the prototype, so ignore
if (nsnull == a) {
return JS_TRUE;
}
if (JSVAL_IS_INT(id)) {
switch(JSVAL_TO_INT(id)) {
case 0:
default:
return nsJSUtils::nsCallJSScriptObjectGetProperty(a, cx, id, vp);
}
}
else {
return nsJSUtils::nsCallJSScriptObjectGetProperty(a, cx, id, vp);
}
return PR_TRUE;
}
/***********************************************************************/
//
// NodeObserver Properties Setter
//
PR_STATIC_CALLBACK(JSBool)
SetNodeObserverProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
{
nsIDOMNodeObserver *a = (nsIDOMNodeObserver*)JS_GetPrivate(cx, obj);
// If there's no private data, this must be the prototype, so ignore
if (nsnull == a) {
return JS_TRUE;
}
if (JSVAL_IS_INT(id)) {
switch(JSVAL_TO_INT(id)) {
case 0:
default:
return nsJSUtils::nsCallJSScriptObjectSetProperty(a, cx, id, vp);
}
}
else {
return nsJSUtils::nsCallJSScriptObjectSetProperty(a, cx, id, vp);
}
return PR_TRUE;
}
//
// NodeObserver finalizer
//
PR_STATIC_CALLBACK(void)
FinalizeNodeObserver(JSContext *cx, JSObject *obj)
{
nsJSUtils::nsGenericFinalize(cx, obj);
}
//
// NodeObserver enumerate
//
PR_STATIC_CALLBACK(JSBool)
EnumerateNodeObserver(JSContext *cx, JSObject *obj)
{
return nsJSUtils::nsGenericEnumerate(cx, obj);
}
//
// NodeObserver resolve
//
PR_STATIC_CALLBACK(JSBool)
ResolveNodeObserver(JSContext *cx, JSObject *obj, jsval id)
{
return nsJSUtils::nsGenericResolve(cx, obj, id);
}
//
// Native method OnSetNodeValue
//
PR_STATIC_CALLBACK(JSBool)
NodeObserverOnSetNodeValue(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
{
nsIDOMNodeObserver *nativeThis = (nsIDOMNodeObserver*)JS_GetPrivate(cx, obj);
JSBool rBool = JS_FALSE;
nsIDOMNodePtr b0;
nsAutoString b1;
*rval = JSVAL_NULL;
// If there's no private data, this must be the prototype, so ignore
if (nsnull == nativeThis) {
return JS_TRUE;
}
if (argc >= 2) {
if (JS_FALSE == nsJSUtils::nsConvertJSValToObject((nsISupports **)&b0,
kINodeIID,
"Node",
cx,
argv[0])) {
return JS_FALSE;
}
nsJSUtils::nsConvertJSValToString(b1, cx, argv[1]);
if (NS_OK != nativeThis->OnSetNodeValue(b0, b1)) {
return JS_FALSE;
}
*rval = JSVAL_VOID;
}
else {
JS_ReportError(cx, "Function onSetNodeValue requires 2 parameters");
return JS_FALSE;
}
return JS_TRUE;
}
//
// Native method OnInsertBefore
//
PR_STATIC_CALLBACK(JSBool)
NodeObserverOnInsertBefore(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
{
nsIDOMNodeObserver *nativeThis = (nsIDOMNodeObserver*)JS_GetPrivate(cx, obj);
JSBool rBool = JS_FALSE;
nsIDOMNodePtr b0;
nsIDOMNodePtr b1;
nsIDOMNodePtr b2;
*rval = JSVAL_NULL;
// If there's no private data, this must be the prototype, so ignore
if (nsnull == nativeThis) {
return JS_TRUE;
}
if (argc >= 3) {
if (JS_FALSE == nsJSUtils::nsConvertJSValToObject((nsISupports **)&b0,
kINodeIID,
"Node",
cx,
argv[0])) {
return JS_FALSE;
}
if (JS_FALSE == nsJSUtils::nsConvertJSValToObject((nsISupports **)&b1,
kINodeIID,
"Node",
cx,
argv[1])) {
return JS_FALSE;
}
if (JS_FALSE == nsJSUtils::nsConvertJSValToObject((nsISupports **)&b2,
kINodeIID,
"Node",
cx,
argv[2])) {
return JS_FALSE;
}
if (NS_OK != nativeThis->OnInsertBefore(b0, b1, b2)) {
return JS_FALSE;
}
*rval = JSVAL_VOID;
}
else {
JS_ReportError(cx, "Function onInsertBefore requires 3 parameters");
return JS_FALSE;
}
return JS_TRUE;
}
//
// Native method OnReplaceChild
//
PR_STATIC_CALLBACK(JSBool)
NodeObserverOnReplaceChild(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
{
nsIDOMNodeObserver *nativeThis = (nsIDOMNodeObserver*)JS_GetPrivate(cx, obj);
JSBool rBool = JS_FALSE;
nsIDOMNodePtr b0;
nsIDOMNodePtr b1;
nsIDOMNodePtr b2;
*rval = JSVAL_NULL;
// If there's no private data, this must be the prototype, so ignore
if (nsnull == nativeThis) {
return JS_TRUE;
}
if (argc >= 3) {
if (JS_FALSE == nsJSUtils::nsConvertJSValToObject((nsISupports **)&b0,
kINodeIID,
"Node",
cx,
argv[0])) {
return JS_FALSE;
}
if (JS_FALSE == nsJSUtils::nsConvertJSValToObject((nsISupports **)&b1,
kINodeIID,
"Node",
cx,
argv[1])) {
return JS_FALSE;
}
if (JS_FALSE == nsJSUtils::nsConvertJSValToObject((nsISupports **)&b2,
kINodeIID,
"Node",
cx,
argv[2])) {
return JS_FALSE;
}
if (NS_OK != nativeThis->OnReplaceChild(b0, b1, b2)) {
return JS_FALSE;
}
*rval = JSVAL_VOID;
}
else {
JS_ReportError(cx, "Function onReplaceChild requires 3 parameters");
return JS_FALSE;
}
return JS_TRUE;
}
//
// Native method OnRemoveChild
//
PR_STATIC_CALLBACK(JSBool)
NodeObserverOnRemoveChild(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
{
nsIDOMNodeObserver *nativeThis = (nsIDOMNodeObserver*)JS_GetPrivate(cx, obj);
JSBool rBool = JS_FALSE;
nsIDOMNodePtr b0;
nsIDOMNodePtr b1;
*rval = JSVAL_NULL;
// If there's no private data, this must be the prototype, so ignore
if (nsnull == nativeThis) {
return JS_TRUE;
}
if (argc >= 2) {
if (JS_FALSE == nsJSUtils::nsConvertJSValToObject((nsISupports **)&b0,
kINodeIID,
"Node",
cx,
argv[0])) {
return JS_FALSE;
}
if (JS_FALSE == nsJSUtils::nsConvertJSValToObject((nsISupports **)&b1,
kINodeIID,
"Node",
cx,
argv[1])) {
return JS_FALSE;
}
if (NS_OK != nativeThis->OnRemoveChild(b0, b1)) {
return JS_FALSE;
}
*rval = JSVAL_VOID;
}
else {
JS_ReportError(cx, "Function onRemoveChild requires 2 parameters");
return JS_FALSE;
}
return JS_TRUE;
}
//
// Native method OnAppendChild
//
PR_STATIC_CALLBACK(JSBool)
NodeObserverOnAppendChild(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
{
nsIDOMNodeObserver *nativeThis = (nsIDOMNodeObserver*)JS_GetPrivate(cx, obj);
JSBool rBool = JS_FALSE;
nsIDOMNodePtr b0;
nsIDOMNodePtr b1;
*rval = JSVAL_NULL;
// If there's no private data, this must be the prototype, so ignore
if (nsnull == nativeThis) {
return JS_TRUE;
}
if (argc >= 2) {
if (JS_FALSE == nsJSUtils::nsConvertJSValToObject((nsISupports **)&b0,
kINodeIID,
"Node",
cx,
argv[0])) {
return JS_FALSE;
}
if (JS_FALSE == nsJSUtils::nsConvertJSValToObject((nsISupports **)&b1,
kINodeIID,
"Node",
cx,
argv[1])) {
return JS_FALSE;
}
if (NS_OK != nativeThis->OnAppendChild(b0, b1)) {
return JS_FALSE;
}
*rval = JSVAL_VOID;
}
else {
JS_ReportError(cx, "Function onAppendChild requires 2 parameters");
return JS_FALSE;
}
return JS_TRUE;
}
/***********************************************************************/
//
// class for NodeObserver
//
JSClass NodeObserverClass = {
"NodeObserver",
JSCLASS_HAS_PRIVATE,
JS_PropertyStub,
JS_PropertyStub,
GetNodeObserverProperty,
SetNodeObserverProperty,
EnumerateNodeObserver,
ResolveNodeObserver,
JS_ConvertStub,
FinalizeNodeObserver
};
//
// NodeObserver class properties
//
static JSPropertySpec NodeObserverProperties[] =
{
{0}
};
//
// NodeObserver class methods
//
static JSFunctionSpec NodeObserverMethods[] =
{
{"onSetNodeValue", NodeObserverOnSetNodeValue, 2},
{"onInsertBefore", NodeObserverOnInsertBefore, 3},
{"onReplaceChild", NodeObserverOnReplaceChild, 3},
{"onRemoveChild", NodeObserverOnRemoveChild, 2},
{"onAppendChild", NodeObserverOnAppendChild, 2},
{0}
};
//
// NodeObserver constructor
//
PR_STATIC_CALLBACK(JSBool)
NodeObserver(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
{
return JS_FALSE;
}
//
// NodeObserver class initialization
//
nsresult NS_InitNodeObserverClass(nsIScriptContext *aContext, void **aPrototype)
{
JSContext *jscontext = (JSContext *)aContext->GetNativeContext();
JSObject *proto = nsnull;
JSObject *constructor = nsnull;
JSObject *parent_proto = nsnull;
JSObject *global = JS_GetGlobalObject(jscontext);
jsval vp;
if ((PR_TRUE != JS_LookupProperty(jscontext, global, "NodeObserver", &vp)) ||
!JSVAL_IS_OBJECT(vp) ||
((constructor = JSVAL_TO_OBJECT(vp)) == nsnull) ||
(PR_TRUE != JS_LookupProperty(jscontext, JSVAL_TO_OBJECT(vp), "prototype", &vp)) ||
!JSVAL_IS_OBJECT(vp)) {
proto = JS_InitClass(jscontext, // context
global, // global object
parent_proto, // parent proto
&NodeObserverClass, // JSClass
NodeObserver, // JSNative ctor
0, // ctor args
NodeObserverProperties, // proto props
NodeObserverMethods, // proto funcs
nsnull, // ctor props (static)
nsnull); // ctor funcs (static)
if (nsnull == proto) {
return NS_ERROR_FAILURE;
}
}
else if ((nsnull != constructor) && JSVAL_IS_OBJECT(vp)) {
proto = JSVAL_TO_OBJECT(vp);
}
else {
return NS_ERROR_FAILURE;
}
if (aPrototype) {
*aPrototype = proto;
}
return NS_OK;
}
//
// Method for creating a new NodeObserver JavaScript object
//
extern "C" NS_DOM nsresult NS_NewScriptNodeObserver(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn)
{
NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptNodeObserver");
JSObject *proto;
JSObject *parent;
nsIScriptObjectOwner *owner;
JSContext *jscontext = (JSContext *)aContext->GetNativeContext();
nsresult result = NS_OK;
nsIDOMNodeObserver *aNodeObserver;
if (nsnull == aParent) {
parent = nsnull;
}
else if (NS_OK == aParent->QueryInterface(kIScriptObjectOwnerIID, (void**)&owner)) {
if (NS_OK != owner->GetScriptObject(aContext, (void **)&parent)) {
NS_RELEASE(owner);
return NS_ERROR_FAILURE;
}
NS_RELEASE(owner);
}
else {
return NS_ERROR_FAILURE;
}
if (NS_OK != NS_InitNodeObserverClass(aContext, (void **)&proto)) {
return NS_ERROR_FAILURE;
}
result = aSupports->QueryInterface(kINodeObserverIID, (void **)&aNodeObserver);
if (NS_OK != result) {
return result;
}
// create a js object for this class
*aReturn = JS_NewObject(jscontext, &NodeObserverClass, proto, parent);
if (nsnull != *aReturn) {
// connect the native object to the js object
JS_SetPrivate(jscontext, (JSObject *)*aReturn, aNodeObserver);
}
else {
NS_RELEASE(aNodeObserver);
return NS_ERROR_FAILURE;
}
return NS_OK;
}

View File

@@ -1,397 +0,0 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/* AUTO-GENERATED. DO NOT EDIT!!! */
#include "jsapi.h"
#include "nsJSUtils.h"
#include "nscore.h"
#include "nsIScriptContext.h"
#include "nsIJSScriptObject.h"
#include "nsIScriptObjectOwner.h"
#include "nsIScriptGlobalObject.h"
#include "nsIPtr.h"
#include "nsString.h"
#include "nsIDOMXULNode.h"
#include "nsIDOMNode.h"
static NS_DEFINE_IID(kIScriptObjectOwnerIID, NS_ISCRIPTOBJECTOWNER_IID);
static NS_DEFINE_IID(kIJSScriptObjectIID, NS_IJSSCRIPTOBJECT_IID);
static NS_DEFINE_IID(kIScriptGlobalObjectIID, NS_ISCRIPTGLOBALOBJECT_IID);
static NS_DEFINE_IID(kIXULNodeIID, NS_IDOMXULNODE_IID);
static NS_DEFINE_IID(kINodeIID, NS_IDOMNODE_IID);
NS_DEF_PTR(nsIDOMXULNode);
NS_DEF_PTR(nsIDOMNode);
/***********************************************************************/
//
// XULNode Properties Getter
//
PR_STATIC_CALLBACK(JSBool)
GetXULNodeProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
{
nsIDOMXULNode *a = (nsIDOMXULNode*)JS_GetPrivate(cx, obj);
// If there's no private data, this must be the prototype, so ignore
if (nsnull == a) {
return JS_TRUE;
}
if (JSVAL_IS_INT(id)) {
switch(JSVAL_TO_INT(id)) {
case 0:
default:
return nsJSUtils::nsCallJSScriptObjectGetProperty(a, cx, id, vp);
}
}
else {
return nsJSUtils::nsCallJSScriptObjectGetProperty(a, cx, id, vp);
}
return PR_TRUE;
}
/***********************************************************************/
//
// XULNode Properties Setter
//
PR_STATIC_CALLBACK(JSBool)
SetXULNodeProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
{
nsIDOMXULNode *a = (nsIDOMXULNode*)JS_GetPrivate(cx, obj);
// If there's no private data, this must be the prototype, so ignore
if (nsnull == a) {
return JS_TRUE;
}
if (JSVAL_IS_INT(id)) {
switch(JSVAL_TO_INT(id)) {
case 0:
default:
return nsJSUtils::nsCallJSScriptObjectSetProperty(a, cx, id, vp);
}
}
else {
return nsJSUtils::nsCallJSScriptObjectSetProperty(a, cx, id, vp);
}
return PR_TRUE;
}
//
// XULNode finalizer
//
PR_STATIC_CALLBACK(void)
FinalizeXULNode(JSContext *cx, JSObject *obj)
{
nsJSUtils::nsGenericFinalize(cx, obj);
}
//
// XULNode enumerate
//
PR_STATIC_CALLBACK(JSBool)
EnumerateXULNode(JSContext *cx, JSObject *obj)
{
return nsJSUtils::nsGenericEnumerate(cx, obj);
}
//
// XULNode resolve
//
PR_STATIC_CALLBACK(JSBool)
ResolveXULNode(JSContext *cx, JSObject *obj, jsval id)
{
return nsJSUtils::nsGenericResolve(cx, obj, id);
}
//
// Native method AddBroadcastListener
//
PR_STATIC_CALLBACK(JSBool)
XULNodeAddBroadcastListener(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
{
nsIDOMXULNode *nativeThis = (nsIDOMXULNode*)JS_GetPrivate(cx, obj);
JSBool rBool = JS_FALSE;
nsAutoString b0;
nsIDOMNodePtr b1;
*rval = JSVAL_NULL;
// If there's no private data, this must be the prototype, so ignore
if (nsnull == nativeThis) {
return JS_TRUE;
}
if (argc >= 2) {
nsJSUtils::nsConvertJSValToString(b0, cx, argv[0]);
if (JS_FALSE == nsJSUtils::nsConvertJSValToObject((nsISupports **)&b1,
kINodeIID,
"Node",
cx,
argv[1])) {
return JS_FALSE;
}
if (NS_OK != nativeThis->AddBroadcastListener(b0, b1)) {
return JS_FALSE;
}
*rval = JSVAL_VOID;
}
else {
JS_ReportError(cx, "Function addBroadcastListener requires 2 parameters");
return JS_FALSE;
}
return JS_TRUE;
}
//
// Native method RemoveBroadcastListener
//
PR_STATIC_CALLBACK(JSBool)
XULNodeRemoveBroadcastListener(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
{
nsIDOMXULNode *nativeThis = (nsIDOMXULNode*)JS_GetPrivate(cx, obj);
JSBool rBool = JS_FALSE;
nsAutoString b0;
nsIDOMNodePtr b1;
*rval = JSVAL_NULL;
// If there's no private data, this must be the prototype, so ignore
if (nsnull == nativeThis) {
return JS_TRUE;
}
if (argc >= 2) {
nsJSUtils::nsConvertJSValToString(b0, cx, argv[0]);
if (JS_FALSE == nsJSUtils::nsConvertJSValToObject((nsISupports **)&b1,
kINodeIID,
"Node",
cx,
argv[1])) {
return JS_FALSE;
}
if (NS_OK != nativeThis->RemoveBroadcastListener(b0, b1)) {
return JS_FALSE;
}
*rval = JSVAL_VOID;
}
else {
JS_ReportError(cx, "Function removeBroadcastListener requires 2 parameters");
return JS_FALSE;
}
return JS_TRUE;
}
//
// Native method DoCommand
//
PR_STATIC_CALLBACK(JSBool)
XULNodeDoCommand(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
{
nsIDOMXULNode *nativeThis = (nsIDOMXULNode*)JS_GetPrivate(cx, obj);
JSBool rBool = JS_FALSE;
*rval = JSVAL_NULL;
// If there's no private data, this must be the prototype, so ignore
if (nsnull == nativeThis) {
return JS_TRUE;
}
if (argc >= 0) {
if (NS_OK != nativeThis->DoCommand()) {
return JS_FALSE;
}
*rval = JSVAL_VOID;
}
else {
JS_ReportError(cx, "Function doCommand requires 0 parameters");
return JS_FALSE;
}
return JS_TRUE;
}
/***********************************************************************/
//
// class for XULNode
//
JSClass XULNodeClass = {
"XULNode",
JSCLASS_HAS_PRIVATE,
JS_PropertyStub,
JS_PropertyStub,
GetXULNodeProperty,
SetXULNodeProperty,
EnumerateXULNode,
ResolveXULNode,
JS_ConvertStub,
FinalizeXULNode
};
//
// XULNode class properties
//
static JSPropertySpec XULNodeProperties[] =
{
{0}
};
//
// XULNode class methods
//
static JSFunctionSpec XULNodeMethods[] =
{
{"addBroadcastListener", XULNodeAddBroadcastListener, 2},
{"removeBroadcastListener", XULNodeRemoveBroadcastListener, 2},
{"doCommand", XULNodeDoCommand, 0},
{0}
};
//
// XULNode constructor
//
PR_STATIC_CALLBACK(JSBool)
XULNode(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
{
return JS_FALSE;
}
//
// XULNode class initialization
//
nsresult NS_InitXULNodeClass(nsIScriptContext *aContext, void **aPrototype)
{
JSContext *jscontext = (JSContext *)aContext->GetNativeContext();
JSObject *proto = nsnull;
JSObject *constructor = nsnull;
JSObject *parent_proto = nsnull;
JSObject *global = JS_GetGlobalObject(jscontext);
jsval vp;
if ((PR_TRUE != JS_LookupProperty(jscontext, global, "XULNode", &vp)) ||
!JSVAL_IS_OBJECT(vp) ||
((constructor = JSVAL_TO_OBJECT(vp)) == nsnull) ||
(PR_TRUE != JS_LookupProperty(jscontext, JSVAL_TO_OBJECT(vp), "prototype", &vp)) ||
!JSVAL_IS_OBJECT(vp)) {
proto = JS_InitClass(jscontext, // context
global, // global object
parent_proto, // parent proto
&XULNodeClass, // JSClass
XULNode, // JSNative ctor
0, // ctor args
XULNodeProperties, // proto props
XULNodeMethods, // proto funcs
nsnull, // ctor props (static)
nsnull); // ctor funcs (static)
if (nsnull == proto) {
return NS_ERROR_FAILURE;
}
}
else if ((nsnull != constructor) && JSVAL_IS_OBJECT(vp)) {
proto = JSVAL_TO_OBJECT(vp);
}
else {
return NS_ERROR_FAILURE;
}
if (aPrototype) {
*aPrototype = proto;
}
return NS_OK;
}
//
// Method for creating a new XULNode JavaScript object
//
extern "C" NS_DOM nsresult NS_NewScriptXULNode(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn)
{
NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptXULNode");
JSObject *proto;
JSObject *parent;
nsIScriptObjectOwner *owner;
JSContext *jscontext = (JSContext *)aContext->GetNativeContext();
nsresult result = NS_OK;
nsIDOMXULNode *aXULNode;
if (nsnull == aParent) {
parent = nsnull;
}
else if (NS_OK == aParent->QueryInterface(kIScriptObjectOwnerIID, (void**)&owner)) {
if (NS_OK != owner->GetScriptObject(aContext, (void **)&parent)) {
NS_RELEASE(owner);
return NS_ERROR_FAILURE;
}
NS_RELEASE(owner);
}
else {
return NS_ERROR_FAILURE;
}
if (NS_OK != NS_InitXULNodeClass(aContext, (void **)&proto)) {
return NS_ERROR_FAILURE;
}
result = aSupports->QueryInterface(kIXULNodeIID, (void **)&aXULNode);
if (NS_OK != result) {
return result;
}
// create a js object for this class
*aReturn = JS_NewObject(jscontext, &XULNodeClass, proto, parent);
if (nsnull != *aReturn) {
// connect the native object to the js object
JS_SetPrivate(jscontext, (JSObject *)*aReturn, aXULNode);
}
else {
NS_RELEASE(aXULNode);
return NS_ERROR_FAILURE;
}
return NS_OK;
}

View File

@@ -1,96 +0,0 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "License"); you may not use this file except in
* compliance with the License. You may obtain a copy of the License at
* http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS IS"
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
* the License for the specific language governing rights and limitations
* under the License.
*
* The Original Code is Mozilla Communicator client code.
*
* The Initial Developer of the Original Code is Netscape Communications
* Corporation. Portions created by Netscape are Copyright (C) 1998
* Netscape Communications Corporation. All Rights Reserved.
*/
/*
A package of routines shared by the RDF content code.
*/
#include "nsIContent.h"
#include "nsIRDFNode.h"
#include "nsITextContent.h"
#include "nsLayoutCID.h"
#include "nsRDFContentUtils.h"
#include "nsString.h"
static NS_DEFINE_IID(kIContentIID, NS_ICONTENT_IID);
static NS_DEFINE_IID(kIRDFResourceIID, NS_IRDFRESOURCE_IID);
static NS_DEFINE_IID(kIRDFLiteralIID, NS_IRDFLITERAL_IID);
static NS_DEFINE_IID(kITextContentIID, NS_ITEXT_CONTENT_IID); // XXX grr...
static NS_DEFINE_CID(kTextNodeCID, NS_TEXTNODE_CID);
nsresult
nsRDFContentUtils::AttachTextNode(nsIContent* parent, nsIRDFNode* value)
{
nsresult rv;
nsAutoString s;
nsIContent* node = nsnull;
nsITextContent* text = nsnull;
nsIRDFResource* resource = nsnull;
nsIRDFLiteral* literal = nsnull;
if (NS_SUCCEEDED(rv = value->QueryInterface(kIRDFResourceIID, (void**) &resource))) {
const char* p;
if (NS_FAILED(rv = resource->GetValue(&p)))
goto error;
s = p;
}
else if (NS_SUCCEEDED(rv = value->QueryInterface(kIRDFLiteralIID, (void**) &literal))) {
const PRUnichar* p;
if (NS_FAILED(rv = literal->GetValue(&p)))
goto error;
s = p;
}
else {
PR_ASSERT(0);
goto error;
}
if (NS_FAILED(rv = nsRepository::CreateInstance(kTextNodeCID,
nsnull,
kIContentIID,
(void**) &node)))
goto error;
if (NS_FAILED(rv = node->QueryInterface(kITextContentIID, (void**) &text)))
goto error;
if (NS_FAILED(rv = text->SetText(s.GetUnicode(), s.Length(), PR_FALSE)))
goto error;
// hook it up to the child
if (NS_FAILED(rv = parent->AppendChildTo(NS_STATIC_CAST(nsIContent*, node), PR_TRUE)))
goto error;
error:
NS_IF_RELEASE(node);
NS_IF_RELEASE(text);
return rv;
}

View File

@@ -1,47 +0,0 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "License"); you may not use this file except in
* compliance with the License. You may obtain a copy of the License at
* http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS IS"
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
* the License for the specific language governing rights and limitations
* under the License.
*
* The Original Code is Mozilla Communicator client code.
*
* The Initial Developer of the Original Code is Netscape Communications
* Corporation. Portions created by Netscape are Copyright (C) 1998
* Netscape Communications Corporation. All Rights Reserved.
*/
/*
A package of routines shared by the RDF content code.
*/
#ifndef nsRDFContentUtils_h__
#define nsRDFContentUtils_h__
#include "nsError.h"
class nsIContent;
class nsIDOMNodeList;
class nsIRDFNode;
class nsString;
class nsRDFContentUtils
{
public:
static nsresult
AttachTextNode(nsIContent* parent, nsIRDFNode* value);
};
#endif // nsRDFContentUtils_h__

View File

@@ -1,305 +0,0 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "License"); you may not use this file except in
* compliance with the License. You may obtain a copy of the License at
* http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS IS"
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
* the License for the specific language governing rights and limitations
* under the License.
*
* The Original Code is Mozilla Communicator client code.
*
* The Initial Developer of the Original Code is Netscape Communications
* Corporation. Portions created by Netscape are Copyright (C) 1998
* Netscape Communications Corporation. All Rights Reserved.
*/
/*
Helper class to implement the nsIDOMNodeList interface.
XXX It's probably wrong in some sense, as it uses the "naked"
content interface to look for kids. (I assume in general this is
bad because there may be pseudo-elements created for presentation
that aren't visible to the DOM.)
*/
#include "nsDOMCID.h"
#include "nsIDOMNode.h"
#include "nsIDOMHTMLCollection.h"
#include "nsIDOMScriptObjectFactory.h"
#include "nsIScriptGlobalObject.h"
#include "nsIServiceManager.h"
#include "nsISupportsArray.h"
#include "nsRDFDOMNodeList.h"
////////////////////////////////////////////////////////////////////////
// GUID definitions
static NS_DEFINE_IID(kIDOMNodeIID, NS_IDOMNODE_IID);
static NS_DEFINE_IID(kIDOMNodeListIID, NS_IDOMNODELIST_IID);
static NS_DEFINE_IID(kIDOMScriptObjectFactoryIID, NS_IDOM_SCRIPT_OBJECT_FACTORY_IID);
static NS_DEFINE_CID(kDOMScriptObjectFactoryCID, NS_DOM_SCRIPT_OBJECT_FACTORY_CID);
////////////////////////////////////////////////////////////////////////
//
class RDFHTMLCollectionImpl : public nsIDOMHTMLCollection
{
private:
nsRDFDOMNodeList* mOuter;
public:
RDFHTMLCollectionImpl(nsRDFDOMNodeList* aOuter);
virtual ~RDFHTMLCollectionImpl();
// nsISupports interface
NS_IMETHOD_(nsrefcnt) AddRef(void);
NS_IMETHOD_(nsrefcnt) Release(void);
NS_IMETHOD QueryInterface(REFNSIID aIID, void** aResult);
// nsIDOMHTMLCollection interface
NS_DECL_IDOMHTMLCOLLECTION
};
RDFHTMLCollectionImpl::RDFHTMLCollectionImpl(nsRDFDOMNodeList* aOuter)
: mOuter(aOuter)
{
}
RDFHTMLCollectionImpl::~RDFHTMLCollectionImpl(void)
{
}
NS_IMETHODIMP_(nsrefcnt)
RDFHTMLCollectionImpl::AddRef(void)
{
return mOuter->AddRef();
}
NS_IMETHODIMP_(nsrefcnt)
RDFHTMLCollectionImpl::Release(void)
{
return mOuter->Release();
}
NS_IMETHODIMP
RDFHTMLCollectionImpl::QueryInterface(REFNSIID aIID, void** aResult)
{
NS_PRECONDITION(aResult != nsnull, "null ptr");
if (! aResult)
return NS_ERROR_NULL_POINTER;
if (aIID.Equals(nsIDOMHTMLCollection::IID())) {
*aResult = NS_STATIC_CAST(nsIDOMHTMLCollection*, this);
NS_ADDREF(this);
return NS_OK;
}
else {
return mOuter->QueryInterface(aIID, aResult);
}
}
NS_IMETHODIMP
RDFHTMLCollectionImpl::GetLength(PRUint32* aLength)
{
return mOuter->GetLength(aLength);
}
NS_IMETHODIMP
RDFHTMLCollectionImpl::Item(PRUint32 aIndex, nsIDOMNode** aReturn)
{
return mOuter->Item(aIndex, aReturn);
}
NS_IMETHODIMP
RDFHTMLCollectionImpl::NamedItem(const nsString& aName, nsIDOMNode** aReturn)
{
NS_NOTYETIMPLEMENTED("write me!");
return NS_ERROR_NOT_IMPLEMENTED;
}
////////////////////////////////////////////////////////////////////////
// ctors & dtors
nsRDFDOMNodeList::nsRDFDOMNodeList(void)
: mInner(nsnull),
mElements(nsnull),
mScriptObject(nsnull)
{
NS_INIT_REFCNT();
}
nsRDFDOMNodeList::~nsRDFDOMNodeList(void)
{
NS_IF_RELEASE(mElements);
delete mInner;
}
nsresult
nsRDFDOMNodeList::Create(nsRDFDOMNodeList** aResult)
{
NS_PRECONDITION(aResult != nsnull, "null ptr");
if (! aResult)
return NS_ERROR_NULL_POINTER;
nsRDFDOMNodeList* list = new nsRDFDOMNodeList();
if (! list)
return NS_ERROR_OUT_OF_MEMORY;
nsresult rv;
if (NS_FAILED(rv = list->Init())) {
delete list;
return rv;
}
NS_ADDREF(list);
*aResult = list;
return NS_OK;
}
////////////////////////////////////////////////////////////////////////
// nsISupports interface
NS_IMPL_ADDREF(nsRDFDOMNodeList);
NS_IMPL_RELEASE(nsRDFDOMNodeList);
nsresult
nsRDFDOMNodeList::QueryInterface(REFNSIID aIID, void** aResult)
{
static NS_DEFINE_IID(kISupportsIID, NS_ISUPPORTS_IID);
static NS_DEFINE_IID(kIScriptObjectOwnerIID, NS_ISCRIPTOBJECTOWNER_IID);
NS_PRECONDITION(aResult != nsnull, "null ptr");
if (! aResult)
return NS_ERROR_NULL_POINTER;
if (aIID.Equals(nsIDOMNodeList::IID()) ||
aIID.Equals(kISupportsIID)) {
*aResult = NS_STATIC_CAST(nsIDOMNodeList*, this);
NS_ADDREF(this);
return NS_OK;
}
else if (aIID.Equals(kIScriptObjectOwnerIID)) {
*aResult = NS_STATIC_CAST(nsIScriptObjectOwner*, this);
NS_ADDREF(this);
return NS_OK;
}
else if (aIID.Equals(nsIDOMHTMLCollection::IID())) {
// Aggregate this interface
if (! mInner) {
if (! (mInner = new RDFHTMLCollectionImpl(this)))
return NS_ERROR_OUT_OF_MEMORY;
}
return mInner->QueryInterface(aIID, aResult);
}
return NS_NOINTERFACE;
}
////////////////////////////////////////////////////////////////////////
// nsIDOMNodeList interface
NS_IMETHODIMP
nsRDFDOMNodeList::GetLength(PRUint32* aLength)
{
NS_ASSERTION(aLength != nsnull, "null ptr");
if (! aLength)
return NS_ERROR_NULL_POINTER;
*aLength = mElements->Count();
return NS_OK;
}
NS_IMETHODIMP
nsRDFDOMNodeList::Item(PRUint32 aIndex, nsIDOMNode** aReturn)
{
NS_PRECONDITION(aReturn != nsnull, "null ptr");
if (! aReturn)
return NS_ERROR_NULL_POINTER;
NS_PRECONDITION(aIndex < (PRUint32) mElements->Count(), "invalid arg");
if (aIndex >= (PRUint32) mElements->Count())
return NS_ERROR_INVALID_ARG;
// Cast is okay because we're in a closed system.
*aReturn = (nsIDOMNode*) mElements->ElementAt(aIndex);
return NS_OK;
}
////////////////////////////////////////////////////////////////////////
// nsIScriptObjectOwner interface
NS_IMETHODIMP
nsRDFDOMNodeList::GetScriptObject(nsIScriptContext *aContext, void** aScriptObject)
{
nsresult rv = NS_OK;
nsIScriptGlobalObject* global = aContext->GetGlobalObject();
if (nsnull == mScriptObject) {
nsIDOMScriptObjectFactory *factory;
if (NS_SUCCEEDED(rv = nsServiceManager::GetService(kDOMScriptObjectFactoryCID,
kIDOMScriptObjectFactoryIID,
(nsISupports **)&factory))) {
rv = factory->NewScriptHTMLCollection(aContext,
(nsISupports*)(nsIDOMNodeList*)this,
global,
(void**)&mScriptObject);
nsServiceManager::ReleaseService(kDOMScriptObjectFactoryCID, factory);
}
}
*aScriptObject = mScriptObject;
NS_RELEASE(global);
return rv;
}
NS_IMETHODIMP
nsRDFDOMNodeList::SetScriptObject(void* aScriptObject)
{
mScriptObject = aScriptObject;
return NS_OK;
}
////////////////////////////////////////////////////////////////////////
// Implementation methods
nsresult
nsRDFDOMNodeList::Init(void)
{
nsresult rv;
if (NS_FAILED(rv = NS_NewISupportsArray(&mElements))) {
NS_ERROR("unable to create elements array");
return rv;
}
return NS_OK;
}
nsresult
nsRDFDOMNodeList::AppendNode(nsIDOMNode* aNode)
{
NS_PRECONDITION(aNode != nsnull, "null ptr");
if (! aNode)
return NS_ERROR_NULL_POINTER;
return mElements->AppendElement(aNode);
}

Some files were not shown because too many files have changed in this diff Show More