Compare commits

..

2370 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
troy%netscape.com
4c326c55eb Added cast
git-svn-id: svn://10.0.0.236/trunk@20682 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-14 06:20:52 +00:00
troy%netscape.com
e648bc58f5 Added a cast
git-svn-id: svn://10.0.0.236/trunk@20681 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-14 06:13:06 +00:00
troy%netscape.com
36097df1c6 Added some casts to get things to compile
git-svn-id: svn://10.0.0.236/trunk@20680 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-14 06:12:29 +00:00
troy%netscape.com
4ca2c9fafc Added cast to get it to compile
git-svn-id: svn://10.0.0.236/trunk@20679 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-14 06:10:51 +00:00
troy%netscape.com
3c90d2a780 Added some "const" to code that was retrieving a pointer to the internal
buffer managed by nsString


git-svn-id: svn://10.0.0.236/trunk@20678 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-14 05:56:15 +00:00
troy%netscape.com
658dac2de0 Fixed some memory leaks
git-svn-id: svn://10.0.0.236/trunk@20677 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-14 05:44:39 +00:00
troy%netscape.com
dc4dd5e2b6 Added missing "const" that was allowing internal pointer to Unicode
string tobe returned as a non-const value


git-svn-id: svn://10.0.0.236/trunk@20676 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-14 05:44:01 +00:00
troy%netscape.com
307ef53826 Fixed some memory leaks
git-svn-id: svn://10.0.0.236/trunk@20675 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-14 05:34:07 +00:00
troy%netscape.com
1a976b63f6 Added NS_RELEASE of nsIUnicharInputStream interface in Load()
git-svn-id: svn://10.0.0.236/trunk@20674 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-14 05:20:34 +00:00
troy%netscape.com
9d0d5cb136 Added NS_RELEASE of nsIInputStream interface in nsStringBundle constructor
git-svn-id: svn://10.0.0.236/trunk@20673 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-14 05:07:13 +00:00
troy%netscape.com
9e2d9f22ba Added a missing NS_RELEASE of a nsIURL interface
git-svn-id: svn://10.0.0.236/trunk@20672 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-14 04:58:10 +00:00
troy%netscape.com
6d851001ef Fixed InitConstraints() to correctly compute the containing block height
for child elements of a scrolled element


git-svn-id: svn://10.0.0.236/trunk@20671 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-14 04:43:44 +00:00
beard%netscape.com
c673563872 First Checked In.
git-svn-id: svn://10.0.0.236/trunk@20670 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-14 04:26:16 +00:00
troy%netscape.com
1450f8838e Added frame-type atoms for area,scroll,viewport,root,page frame classes
git-svn-id: svn://10.0.0.236/trunk@20669 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-14 03:47:33 +00:00
briano%netscape.com
148f96f6da Automated update
git-svn-id: svn://10.0.0.236/trunk@20668 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-13 21:44:16 +00:00
kipp%netscape.com
597b5f13e7 Avoid using the trapezoid data when we have none (bug #1277)
git-svn-id: svn://10.0.0.236/trunk@20667 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-13 19:39:31 +00:00
jband%netscape.com
1f399e1730 NOT YET PART OF SEAMONKEY - more conversion stuff implemented
git-svn-id: svn://10.0.0.236/trunk@20666 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-13 19:28:38 +00:00
kipp%netscape.com
7296f89a76 Be more careful about returning break-before status
git-svn-id: svn://10.0.0.236/trunk@20665 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-13 19:18:45 +00:00
shaver%netscape.com
b60d07ed69 fix platform detection for Linux/Alpha (Dan Morrill <morrildl@toshiba-179-24.nycap.rr.com>)
git-svn-id: svn://10.0.0.236/trunk@20664 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-13 18:58:34 +00:00
kipp%netscape.com
777c2af1fe Use correct IID when doing QueryInterface to avoid using incorrect vtable (bug #2782)
git-svn-id: svn://10.0.0.236/trunk@20663 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-13 17:49:42 +00:00
warren%netscape.com
b39c736097 Converted nsIMsg into nsIMessage, unifying with nsMsgHdr. Removed NS_DEFINE_IID macros. Renamed a few types and enums.
git-svn-id: svn://10.0.0.236/trunk@20662 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-13 10:39:59 +00:00
mcafee%netscape.com
c981e00884 white space, ignore
git-svn-id: svn://10.0.0.236/trunk@20661 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-13 08:45:27 +00:00
troy%netscape.com
2aa3cd9ceb Changed frame construction code to set NS_FRAME_REPLACED_ELEMENT but, and
changed the HTML reflow state to read the bit


git-svn-id: svn://10.0.0.236/trunk@20660 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-13 05:59:19 +00:00
troy%netscape.com
8849170f95 Added NS_FRAME_REPLACED_ELEMENT
git-svn-id: svn://10.0.0.236/trunk@20659 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-13 05:58:28 +00:00
sfraser%netscape.com
971ead2abc Cause the caret to become visible in the presentation shell when instantiating an editor.
git-svn-id: svn://10.0.0.236/trunk@20658 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-13 04:48:09 +00:00
sfraser%netscape.com
17e456ea85 Added RefreshMethod, and tweaked code for the UNIX no-blinking case.
git-svn-id: svn://10.0.0.236/trunk@20657 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-13 04:47:45 +00:00
sfraser%netscape.com
75c235687c Ensure the caret is refreshed after the text frame containing it is redrawn
git-svn-id: svn://10.0.0.236/trunk@20656 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-13 04:46:47 +00:00
sfraser%netscape.com
1e8e639c11 Add an accessor for the caret, RefreshCaret, and a couple of other private caret methods in nsPresShell.
git-svn-id: svn://10.0.0.236/trunk@20655 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-13 04:45:44 +00:00
sfraser%netscape.com
d659384669 Remove dependency on nscoord.h; return caret width in pixels, and turn off blinking on UNIX
git-svn-id: svn://10.0.0.236/trunk@20654 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-13 04:44:23 +00:00
mcmullen%netscape.com
dcacbb662c Init the refcount.
git-svn-id: svn://10.0.0.236/trunk@20653 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-13 04:01:34 +00:00
mcmullen%netscape.com
f9f7004a97 Added nsIRegistry.h
git-svn-id: svn://10.0.0.236/trunk@20647 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-13 03:47:00 +00:00
peterl%netscape.com
b61049136e resurecting until UNIX build autogenerate problem is fixed
git-svn-id: svn://10.0.0.236/trunk@20645 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-13 03:39:50 +00:00
peterl%netscape.com
af486b5054 backed out previous change
git-svn-id: svn://10.0.0.236/trunk@20644 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-13 03:38:48 +00:00
blizzard%redhat.com
5b32b51a2e Apply patch for crosshairs cursor. Fixes one crash on test9. Patch from Tomi Leppikangas <Tomi.Leppikangas@funet.fi>
git-svn-id: svn://10.0.0.236/trunk@20643 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-13 03:26:04 +00:00
peterl%netscape.com
6b2453b0c2 ignore autogenerated files
git-svn-id: svn://10.0.0.236/trunk@20642 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-13 03:22:41 +00:00
peterl%netscape.com
c709649a66 Removed nsHTMLTags.* since it is autogenerated
Changed case of html tag table


git-svn-id: svn://10.0.0.236/trunk@20641 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-13 03:21:55 +00:00
talisman%anamorphic.com
db13e8ca08 *** empty log message ***
git-svn-id: svn://10.0.0.236/trunk@20640 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-13 03:06:22 +00:00
putterman%netscape.com
6727dbd122 Fixes some bugs including one that made folders show up twice.
git-svn-id: svn://10.0.0.236/trunk@20638 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-13 02:45:22 +00:00
bienvenu%netscape.com
51c321c788 remove stubs, add db lib
git-svn-id: svn://10.0.0.236/trunk@20637 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-13 01:17:26 +00:00
bienvenu%netscape.com
381f3f2afe add call to tell parser stream to start binding
git-svn-id: svn://10.0.0.236/trunk@20636 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-13 01:16:15 +00:00
bienvenu%netscape.com
d5b00c7f14 change name of mailbox parser, hook up mail db
git-svn-id: svn://10.0.0.236/trunk@20635 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-13 01:14:33 +00:00
bienvenu%netscape.com
7f33a240cf add nsParseMailbox
git-svn-id: svn://10.0.0.236/trunk@20634 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-13 01:13:24 +00:00
bienvenu%netscape.com
5f17b1f282 add set summary valid method and use nsLocalSummaryFileSpec
git-svn-id: svn://10.0.0.236/trunk@20633 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-13 01:10:26 +00:00
bienvenu%netscape.com
0dd664d933 change name of embedded handler routine
git-svn-id: svn://10.0.0.236/trunk@20632 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-13 01:09:37 +00:00
mcmullen%netscape.com
222d35ba2a First Checked In.
git-svn-id: svn://10.0.0.236/trunk@20630 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-13 00:58:54 +00:00
chuang%netscape.com
4deef56157 Change title
git-svn-id: svn://10.0.0.236/trunk@20629 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-13 00:09:26 +00:00
mcmullen%netscape.com
0b87bbb08b First Checked In.
git-svn-id: svn://10.0.0.236/trunk@20628 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 23:53:07 +00:00
mscott%netscape.com
081ff74fbc Add method for retrieving an nsFilePath for the mailbox.
git-svn-id: svn://10.0.0.236/trunk@20627 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 22:40:47 +00:00
mscott%netscape.com
d5d6d3b84d Add accessor for retrieving an nsFilePath for the mailbox.
git-svn-id: svn://10.0.0.236/trunk@20626 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 22:38:58 +00:00
putterman%netscape.com
21f221f840 Removed typedef of urlstruct. It's already defined in ntypes.h
git-svn-id: svn://10.0.0.236/trunk@20625 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 22:30:11 +00:00
rods%netscape.com
9d11223055 Added fixed poistioning
git-svn-id: svn://10.0.0.236/trunk@20624 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 22:30:00 +00:00
putterman%netscape.com
0bf563a085 Added nsFolderEvent cid. Removed dependency on messenger dll. This dll
already has a factory that creates its own appcore.  Added self-registration.


git-svn-id: svn://10.0.0.236/trunk@20623 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 22:28:26 +00:00
bienvenu%netscape.com
43c6c57418 add export of nsLocalFolderSummarySpec
git-svn-id: svn://10.0.0.236/trunk@20621 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 21:38:36 +00:00
slamm%netscape.com
d6921ac2f2 Really get rid of ignored builds.
git-svn-id: svn://10.0.0.236/trunk@20620 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 21:31:03 +00:00
slamm%netscape.com
1e47576a02 Clean-up presentation. Remove ignored builds for list.
git-svn-id: svn://10.0.0.236/trunk@20619 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 21:29:53 +00:00
briano%netscape.com
268f937a1f Automated update
git-svn-id: svn://10.0.0.236/trunk@20618 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 21:00:37 +00:00
akkana%netscape.com
edb5d64de3 Fixing cata's Linux build bustage
git-svn-id: svn://10.0.0.236/trunk@20617 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 20:45:26 +00:00
terry%netscape.com
4728578919 Updates to NGLayout -- added descriptions, other changes too.
git-svn-id: svn://10.0.0.236/trunk@20616 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 20:20:53 +00:00
kipp%netscape.com
56889e9bc1 Use dont_AddRef on calls that increment the addref
git-svn-id: svn://10.0.0.236/trunk@20615 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 20:13:47 +00:00
cata%netscape.com
64a273f287 ISO2022JP to Unicode converter adedd.
git-svn-id: svn://10.0.0.236/trunk@20614 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 19:50:47 +00:00
cata%netscape.com
a89c076bfc ISO2022JP to Unicode added.
git-svn-id: svn://10.0.0.236/trunk@20613 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 19:46:02 +00:00
ebina%netscape.com
d4d1fa58e8 First round of file additions to support pluggable converters
git-svn-id: svn://10.0.0.236/trunk@20612 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 19:45:25 +00:00
cata%netscape.com
3db467e6f6 Shared converter data moved here.
git-svn-id: svn://10.0.0.236/trunk@20611 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 19:44:33 +00:00
cata%netscape.com
bb2e253937 Shared converter data moved to nsUCVJA2Dll.cpp
git-svn-id: svn://10.0.0.236/trunk@20610 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 19:43:43 +00:00
larryh%netscape.com
f047e295b9 add profiling capability for win32
git-svn-id: svn://10.0.0.236/trunk@20609 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 19:36:35 +00:00
buster%netscape.com
bd7d899204 changed deleteSelection back to not use the range
git-svn-id: svn://10.0.0.236/trunk@20608 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 19:36:18 +00:00
cata%netscape.com
ed1eaba00f Created.
git-svn-id: svn://10.0.0.236/trunk@20607 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 19:35:59 +00:00
larryh%netscape.com
376b050ee9 BugSplat #341273
git-svn-id: svn://10.0.0.236/trunk@20606 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 19:33:54 +00:00
cata%netscape.com
33b9e85352 Small bugfixes, optimizations and docs.
git-svn-id: svn://10.0.0.236/trunk@20605 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 19:27:31 +00:00
cata%netscape.com
eeaa4aa122 More doc added and changed.
git-svn-id: svn://10.0.0.236/trunk@20604 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 19:24:08 +00:00
pierre%netscape.com
c2c82c36e6 Made the ChildWindow destructor virtual
git-svn-id: svn://10.0.0.236/trunk@20602 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 19:15:32 +00:00
pierre%netscape.com
99ffcc7501 Fixed more problems with nsCOMPtrs
git-svn-id: svn://10.0.0.236/trunk@20601 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 19:15:03 +00:00
pierre%netscape.com
ed1a2a6f11 Fixed leak of the BrowserWindow in WebCrawler / Added nsViewerApp::CloseWindow()
git-svn-id: svn://10.0.0.236/trunk@20600 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 19:11:24 +00:00
terry%netscape.com
b99446c33e Give a useful error message if no pages found.
git-svn-id: svn://10.0.0.236/trunk@20599 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 19:08:39 +00:00
terry%netscape.com
9859213e7d Was ignoring "/" -- the main web page!
git-svn-id: svn://10.0.0.236/trunk@20598 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 19:08:06 +00:00
putterman%netscape.com
008255eed9 removing const from functions dealing with Init();
git-svn-id: svn://10.0.0.236/trunk@20597 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 19:03:08 +00:00
putterman%netscape.com
11a0501087 removing const from Init();
git-svn-id: svn://10.0.0.236/trunk@20596 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 19:02:18 +00:00
rods%netscape.com
076ccff595 compare build error fixed
git-svn-id: svn://10.0.0.236/trunk@20595 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 18:58:39 +00:00
bienvenu%netscape.com
30af4ede8c get rid of use of GetMozillaStatusFlags
git-svn-id: svn://10.0.0.236/trunk@20592 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 18:56:34 +00:00
wtc%netscape.com
24f5a3d9ca Make sure the redirected standard I/O fd's are blocking so that
libc's stdio.h functions can work.


git-svn-id: svn://10.0.0.236/trunk@20591 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 18:48:42 +00:00
wtc%netscape.com
8b848ea6ad In the Win32 implementation of PR_CreatePipe, mark the pipe endpoints
as inheritable.  (We probably should create them as non-inheritable.)


git-svn-id: svn://10.0.0.236/trunk@20590 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 18:47:18 +00:00
wtc%netscape.com
61a13359fc Redid the NT implementation of PR_NewTCPSocketPair so that neither socket
is associated with the I/O completion port.


git-svn-id: svn://10.0.0.236/trunk@20589 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 18:46:07 +00:00
wtc%netscape.com
b973f5ac69 Noted that the SetHandleInformation function is not implemented on Win95.
git-svn-id: svn://10.0.0.236/trunk@20588 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 18:43:52 +00:00
wtc%netscape.com
a262748d1c Minor improvements.
git-svn-id: svn://10.0.0.236/trunk@20587 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 18:41:52 +00:00
wtc%netscape.com
47c513fc7a Completely rewrote the test.
git-svn-id: svn://10.0.0.236/trunk@20586 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 18:41:36 +00:00
troy%netscape.com
176116b148 Fixed some errors related to switch to using nsCOMPtr
git-svn-id: svn://10.0.0.236/trunk@20585 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 18:41:26 +00:00
larryh%netscape.com
fe6eb6d858 make reader-writer locks
git-svn-id: svn://10.0.0.236/trunk@20584 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 18:40:42 +00:00
larryh%netscape.com
e63575051f Set version
git-svn-id: svn://10.0.0.236/trunk@20583 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 18:39:17 +00:00
kipp%netscape.com
2e10d1c4d8 Eliminate some linux compiler warnings
git-svn-id: svn://10.0.0.236/trunk@20582 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 18:24:53 +00:00
nhotta%netscape.com
7ce1632cc7 nsILocale integrarion.
git-svn-id: svn://10.0.0.236/trunk@20581 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 18:24:45 +00:00
nhotta%netscape.com
ea0d14982e nsILocale integration.
git-svn-id: svn://10.0.0.236/trunk@20580 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 18:23:54 +00:00
troy%netscape.com
1cb01c351a API change for pres shell
git-svn-id: svn://10.0.0.236/trunk@20579 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 18:22:08 +00:00
kipp%netscape.com
dfeb9b176c Build nsCaret
git-svn-id: svn://10.0.0.236/trunk@20578 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 18:21:29 +00:00
troy%netscape.com
477db97893 Fixed build bustage
git-svn-id: svn://10.0.0.236/trunk@20577 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 18:18:34 +00:00
pinkerton%netscape.com
0f0937d520 fixes for changes to nsIPresShell api's
git-svn-id: svn://10.0.0.236/trunk@20576 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 18:18:01 +00:00
terry%netscape.com
9e0a5b8dda Oops; last change caused all data to be charted as zeros.
git-svn-id: svn://10.0.0.236/trunk@20575 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 18:15:10 +00:00
troy%netscape.com
04d445235f Fixed some compile errors using nsCOMPtr
git-svn-id: svn://10.0.0.236/trunk@20574 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 18:15:02 +00:00
terry%netscape.com
a8d532bb79 Remove clutter by stripping years off of labels.
git-svn-id: svn://10.0.0.236/trunk@20573 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 18:12:18 +00:00
buster%netscape.com
34595f93fb changed DeleteSelection back to using nsIDOMRange directly.
git-svn-id: svn://10.0.0.236/trunk@20572 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 18:09:38 +00:00
buster%netscape.com
8d6a3ab755 removed renamed modules
git-svn-id: svn://10.0.0.236/trunk@20571 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 17:49:19 +00:00
kipp%netscape.com
9b917419dc COMized nsIPresShell and nsIPresContext
git-svn-id: svn://10.0.0.236/trunk@20570 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 17:45:58 +00:00
dcone%netscape.com
f15564054f First Checked In.
git-svn-id: svn://10.0.0.236/trunk@20569 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 17:39:49 +00:00
dcone%netscape.com
9970519fc4 added a manifest for Layout/html/table
git-svn-id: svn://10.0.0.236/trunk@20568 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 17:36:28 +00:00
troy%netscape.com
432a586840 Factored out the code that checked for anchors within the current document so
that "back" and "forward" used it, too


git-svn-id: svn://10.0.0.236/trunk@20567 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 17:32:17 +00:00
pinkerton%netscape.com
4a976707f8 remove trailing ';' on CID decl because it causes empty declaration warnings.
git-svn-id: svn://10.0.0.236/trunk@20566 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 17:32:01 +00:00
dcone%netscape.com
3d922201ed Renamed editor.cpp to nsEditor.cpp
and added nsTextEditor.cpp


git-svn-id: svn://10.0.0.236/trunk@20565 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 17:29:19 +00:00
terry%netscape.com
c9ddf3d724 Generate simple web page from database.
git-svn-id: svn://10.0.0.236/trunk@20564 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 17:27:15 +00:00
buster%netscape.com
d9511b5a50 using nsRegistry to get an nsITextEditor now.
git-svn-id: svn://10.0.0.236/trunk@20563 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 17:23:14 +00:00
buster%netscape.com
6d04acb923 * the viewer test app now instantiates an nsITextEditor via nsRepository for "Editor mode"
* the TxnMgr is invoked by the editor via nsRepository
* editor.h|cpp have been renamed nsEditor.h|cpp for consistency
* editorInterfaces.h|cpp have been renamed nsEditorEventListeners.c|hpp
* added nsITextEditor.h, nsTextEditor.h|cpp.  The text editor is a placeholder for the rules unique to text
editing.  It invokes the nsIEditor to do core editing operations.
* reworked nsIEditor and related interfaces as per emerging design.
* nsEditor::BeginTransaction and EndTransaction call nsTransactionManager::BeginBatch and EndBatch.


git-svn-id: svn://10.0.0.236/trunk@20562 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 17:18:58 +00:00
larryh%netscape.com
34ccb6c231 add reader-writer locks
git-svn-id: svn://10.0.0.236/trunk@20561 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 17:18:46 +00:00
buster%netscape.com
b00e86e289 splitting core editing from text editing
git-svn-id: svn://10.0.0.236/trunk@20560 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 17:18:04 +00:00
kipp%netscape.com
d7a75e4fba Removed some warnings
git-svn-id: svn://10.0.0.236/trunk@20559 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 17:14:26 +00:00
kipp%netscape.com
c931d836eb Added IID static method
git-svn-id: svn://10.0.0.236/trunk@20558 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 17:13:30 +00:00
kin%netscape.com
307fbf07da Removed all references to ServiceManager, we now rely on nsRepository directly.
git-svn-id: svn://10.0.0.236/trunk@20557 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 16:57:55 +00:00
kin%netscape.com
c2906b67bb Added NSRegisterSelf() and NSUnregisterSelf().
git-svn-id: svn://10.0.0.236/trunk@20556 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 16:56:04 +00:00
dcone%netscape.com
a49bf084ba fixed clipping, added ellipse and arc support
git-svn-id: svn://10.0.0.236/trunk@20555 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 16:12:15 +00:00
rods%netscape.com
55638075e8 Added some debug statment to the JavaScript
git-svn-id: svn://10.0.0.236/trunk@20554 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 15:57:23 +00:00
rods%netscape.com
4a805d6b49 Fixed loading of commands and toolbars now that we don't have nested windows
Removed UpdateButtons method


git-svn-id: svn://10.0.0.236/trunk@20553 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 15:56:54 +00:00
terry%netscape.com
da69d50760 Wasn't clearing out hash table after flushing its contents to the db.
git-svn-id: svn://10.0.0.236/trunk@20552 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 15:02:18 +00:00
terry%netscape.com
8c0b3b8851 Generate web page statistics.
git-svn-id: svn://10.0.0.236/trunk@20551 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 14:45:59 +00:00
pierre%netscape.com
667b1de51f Fixed the window-doesn't-close problem (backed out the nsCOMPtr conversions)
git-svn-id: svn://10.0.0.236/trunk@20550 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 11:47:25 +00:00
jfrancis%netscape.com
6da5abec3e divorce from nsIEnumerator
git-svn-id: svn://10.0.0.236/trunk@20549 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 08:20:40 +00:00
jfrancis%netscape.com
34af7a4608 backing out attempted fix of enumerator interface
git-svn-id: svn://10.0.0.236/trunk@20548 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 08:17:55 +00:00
peterl%netscape.com
9edc411146 fixed atom ref counting bug
git-svn-id: svn://10.0.0.236/trunk@20547 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 08:16:00 +00:00
peterl%netscape.com
e3cecd642e cleanups
git-svn-id: svn://10.0.0.236/trunk@20546 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 08:15:17 +00:00
peterl%netscape.com
30fa15edad xml cleanup
git-svn-id: svn://10.0.0.236/trunk@20545 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 08:13:45 +00:00
jfrancis%netscape.com
3640b78b2d scattered NS_IMETHOD liberally through interface
git-svn-id: svn://10.0.0.236/trunk@20544 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 07:01:06 +00:00
peterl%netscape.com
32d9feec85 fixed moz extension atoms
git-svn-id: svn://10.0.0.236/trunk@20543 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 06:21:34 +00:00
peterl%netscape.com
38427deaa9 changed all html atoms to lower case
git-svn-id: svn://10.0.0.236/trunk@20542 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 06:19:07 +00:00
peterl%netscape.com
32592fa6e1 changed all html tags to lower case
git-svn-id: svn://10.0.0.236/trunk@20541 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 06:17:06 +00:00
jband%netscape.com
7881284620 NOT YET PART Of SEAMONKEY - in the middle of adding support for converting more data types, changes to deal with changes to xpt_struct.h
git-svn-id: svn://10.0.0.236/trunk@20540 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 06:15:06 +00:00
blizzard%redhat.com
f8c7ce833e make resizing go.
git-svn-id: svn://10.0.0.236/trunk@20539 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 06:07:24 +00:00
jfrancis%netscape.com
501710cba1 adding nsIContentIterator.h
git-svn-id: svn://10.0.0.236/trunk@20538 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 06:00:06 +00:00
pierre%netscape.com
0cc94dceb2 GetHints() returns NS_RENDERING_HINT_FAST_8BIT_TEXT
git-svn-id: svn://10.0.0.236/trunk@20537 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 05:56:56 +00:00
briano%netscape.com
3e6fcb9dca Automated update
git-svn-id: svn://10.0.0.236/trunk@20534 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 05:45:37 +00:00
jfrancis%netscape.com
c1996b47bc File Removed.
git-svn-id: svn://10.0.0.236/trunk@20533 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 05:43:51 +00:00
troy%netscape.com
ec6abf170e Changed LoadURL() to look at the destination anchor and see if it's an element
within the current document. If so, it calls the pres shell's GoToAnchor()
function


git-svn-id: svn://10.0.0.236/trunk@20532 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 05:43:46 +00:00
troy%netscape.com
946499d8d7 Added GoToAnchor()
git-svn-id: svn://10.0.0.236/trunk@20531 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 05:39:33 +00:00
mscott%netscape.com
176b389e10 Build the tests directory...
git-svn-id: svn://10.0.0.236/trunk@20530 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 05:34:29 +00:00
mscott%netscape.com
1c7064c0af Add mailnews\local\tests\mailbox to list of mailnews directories to build makefiles for...
git-svn-id: svn://10.0.0.236/trunk@20529 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 05:32:17 +00:00
grail%cafebabe.org
061b634e4a Corrected access modifier.
git-svn-id: svn://10.0.0.236/trunk@20528 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 05:29:42 +00:00
jfrancis%netscape.com
31383c4410 XPCOMified the content iterator; fixed some bugs in DeleteRange()
git-svn-id: svn://10.0.0.236/trunk@20527 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 05:28:46 +00:00
jfrancis%netscape.com
ba034ddb21 XPCOMified nsContentIterator; added it to layout factory CreateInstance code
git-svn-id: svn://10.0.0.236/trunk@20526 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 05:28:12 +00:00
mscott%netscape.com
c7844ac086 Build mailbox protocol and mailbox url classes...
git-svn-id: svn://10.0.0.236/trunk@20525 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 05:27:36 +00:00
mscott%netscape.com
598d78aca8 Export nsIMailboxUrl.h
git-svn-id: svn://10.0.0.236/trunk@20524 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 05:27:04 +00:00
mscott%netscape.com
5dbaac9c50 makefile for building mailbox test stuff
git-svn-id: svn://10.0.0.236/trunk@20523 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 05:26:42 +00:00
mscott%netscape.com
859ff0ab5d Build mailbox test directory
git-svn-id: svn://10.0.0.236/trunk@20522 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 05:26:21 +00:00
evaughan%netscape.com
e0f9f5f8e2 Made the HTML input button gfx rendered and in the netscape look and feel. Minus rounded borders
that CSS doesn't currently support.


git-svn-id: svn://10.0.0.236/trunk@20521 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 05:20:55 +00:00
mscott%netscape.com
1b6258684f Added some comments about how this test app works...
git-svn-id: svn://10.0.0.236/trunk@20520 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 05:07:59 +00:00
waldemar%netscape.com
979a08812c Added getter, setter, with, default arguments, and renamed declarations to definitions
git-svn-id: svn://10.0.0.236/trunk@20519 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 04:59:19 +00:00
waldemar%netscape.com
e38564c283 Added option to turn off line breaks within a tag
git-svn-id: svn://10.0.0.236/trunk@20518 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 04:57:49 +00:00
mscott%netscape.com
e87813e07f Build the mailboxTest harness....
git-svn-id: svn://10.0.0.236/trunk@20517 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 04:49:04 +00:00
mscott%netscape.com
191b4e299a Test harness for mailbox urls.
git-svn-id: svn://10.0.0.236/trunk@20516 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 04:48:46 +00:00
mscott%netscape.com
e17e8659cb A stub implementation of the mailbox parser used to test parsing mail folder mailbox urls...
git-svn-id: svn://10.0.0.236/trunk@20515 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 04:48:31 +00:00
mscott%netscape.com
d1686af672 Build new mailbox protocol stuff...
git-svn-id: svn://10.0.0.236/trunk@20514 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 04:47:33 +00:00
mscott%netscape.com
05bd425eba First check in of the mailbox protocol module.
git-svn-id: svn://10.0.0.236/trunk@20513 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 04:46:51 +00:00
mscott%netscape.com
8c2a0f6b41 Implementation of nsIMailboxUrl interface
git-svn-id: svn://10.0.0.236/trunk@20512 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 04:46:24 +00:00
mscott%netscape.com
2e448ce46e Export nsIMailboxurl.h
git-svn-id: svn://10.0.0.236/trunk@20511 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 04:44:13 +00:00
mscott%netscape.com
983b5ddcd9 Interface for mailbox urls...
git-svn-id: svn://10.0.0.236/trunk@20510 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 04:43:46 +00:00
jfrancis%netscape.com
dcd6eb01ea added contentIterator cid
git-svn-id: svn://10.0.0.236/trunk@20509 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 04:42:14 +00:00
jfrancis%netscape.com
abf14ae01a fixing iid collision with simon
git-svn-id: svn://10.0.0.236/trunk@20508 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 04:39:21 +00:00
jfrancis%netscape.com
4e78b8f143 *** empty log message ***
git-svn-id: svn://10.0.0.236/trunk@20507 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 04:36:18 +00:00
jfrancis%netscape.com
2b152865b3 grabbed a couple id's for contentIterator iid and cid
git-svn-id: svn://10.0.0.236/trunk@20506 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 04:34:36 +00:00
jfrancis%netscape.com
0527883d33 First Checked In.
git-svn-id: svn://10.0.0.236/trunk@20505 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 04:28:29 +00:00
troy%netscape.com
3c4807983d Fixed a ref counting problem and added a cast so we're pointing at the
object and not the interface in function Equals()


git-svn-id: svn://10.0.0.236/trunk@20504 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 04:26:43 +00:00
rickg%netscape.com
ef0f4a25f7 reset top 100 pages
git-svn-id: svn://10.0.0.236/trunk@20503 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 03:00:38 +00:00
briano%netscape.com
d8cf6d28ef Automated update
git-svn-id: svn://10.0.0.236/trunk@20502 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 02:31:28 +00:00
slamm%netscape.com
9dd5f88a76 Add -Wall only if $CC and $CXX pass test
git-svn-id: svn://10.0.0.236/trunk@20500 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 02:22:25 +00:00
bienvenu%netscape.com
e584b6a5a1 test mailbox parser code
git-svn-id: svn://10.0.0.236/trunk@20499 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 02:00:08 +00:00
bienvenu%netscape.com
3f40b55e0c get test mailbox parser linking
git-svn-id: svn://10.0.0.236/trunk@20498 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 01:59:16 +00:00
bienvenu%netscape.com
dcd5aa9928 replace PR_ASSERT with NS_ASSERTION
git-svn-id: svn://10.0.0.236/trunk@20497 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 01:58:10 +00:00
slamm%netscape.com
cc020a6b86 Make pedantic an option until it can actually pass.
git-svn-id: svn://10.0.0.236/trunk@20495 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 01:53:54 +00:00
slamm%netscape.com
9325b614fe Clean up a temp file.
git-svn-id: svn://10.0.0.236/trunk@20494 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 01:46:18 +00:00
briano%netscape.com
f52cc1e74c Automated update
git-svn-id: svn://10.0.0.236/trunk@20493 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 01:45:35 +00:00
kipp%netscape.com
b66f5435a9 Disabled -pedantic support until it's fully tested!
git-svn-id: svn://10.0.0.236/trunk@20492 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 01:42:51 +00:00
slamm%netscape.com
754e790b4e Clean up CFLAGS. Move some items off CFLAGS and onto DEFINES.
git-svn-id: svn://10.0.0.236/trunk@20491 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 01:40:34 +00:00
hyatt%netscape.com
d5ba4ac966 Changes to the table frame construction code to fix breakage in the tree view.
git-svn-id: svn://10.0.0.236/trunk@20490 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 01:35:37 +00:00
briano%netscape.com
51076e2e13 Automated update
git-svn-id: svn://10.0.0.236/trunk@20489 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 01:32:08 +00:00
briano%netscape.com
3dcba141ec Can't use -Wall if we're not using gcc....
git-svn-id: svn://10.0.0.236/trunk@20488 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 01:30:50 +00:00
alecf%netscape.com
63f06d275e use built-in rules to build idlc compiler
git-svn-id: svn://10.0.0.236/trunk@20487 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 01:21:31 +00:00
alecf%netscape.com
fb75799b42 update windows makefile
git-svn-id: svn://10.0.0.236/trunk@20486 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 01:11:59 +00:00
alecf%netscape.com
8218669c3d fix XPIDL output
git-svn-id: svn://10.0.0.236/trunk@20485 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 01:05:30 +00:00
alecf%netscape.com
f2378893c8 add new nsMessengerFactory to instantiate the messenger AppCore
git-svn-id: svn://10.0.0.236/trunk@20484 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 01:01:56 +00:00
briano%netscape.com
3f2dbb314c Automated update
git-svn-id: svn://10.0.0.236/trunk@20483 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 01:00:35 +00:00
wtc%netscape.com
b493ea8e99 Added hash lock counts to collect statistics on how often each lock is
used.


git-svn-id: svn://10.0.0.236/trunk@20482 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 00:59:52 +00:00
slamm%netscape.com
f1cab8f326 Only write 'config-defs.h' if it has changed. Add -Wall and -pedantic to CFLAGS if they are supported by $(CC). Clean up test for -include flag.
git-svn-id: svn://10.0.0.236/trunk@20481 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 00:56:35 +00:00
sfraser%netscape.com
b1bfc6b9cf Fix after akkana's changes: nsISelection -> nsIDOMSelection
git-svn-id: svn://10.0.0.236/trunk@20480 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 00:55:46 +00:00
beard%netscape.com
c2c951e7f8 Fixed += operator, which would only work if you had a file or folder called "G'day" in the input directory.
git-svn-id: svn://10.0.0.236/trunk@20479 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 00:48:35 +00:00
sfraser%netscape.com
9b636c9328 Fix selection bustage, which was a post-merge error on my part.
git-svn-id: svn://10.0.0.236/trunk@20478 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 00:27:44 +00:00
sfraser%netscape.com
ced8ef4d71 Fixing build bustage
git-svn-id: svn://10.0.0.236/trunk@20477 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 00:11:25 +00:00
sfraser%netscape.com
b4a259e54f #ifdef tbe blue selection triangles in until the caret code is turned on
git-svn-id: svn://10.0.0.236/trunk@20476 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 00:05:19 +00:00
chuang%netscape.com
5087b40527 Open a separate 3 pane Mail window using Javascrip
git-svn-id: svn://10.0.0.236/trunk@20475 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 00:05:13 +00:00
pierre%netscape.com
c3570833a5 added webshell/embed/mac/RaptorShell.mcp
git-svn-id: svn://10.0.0.236/trunk@20474 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 00:04:45 +00:00
sfraser%netscape.com
7b5c0a5490 Add code to show a caret (#ifdeffed out for now)
git-svn-id: svn://10.0.0.236/trunk@20473 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 00:02:56 +00:00
sfraser%netscape.com
0e66d5506a Add two new methods needed for caret support (and other things): GetPointFromOffset, to get frame-relative coordinates of a given content offset, and GetChildFrameContainingOffset, to find the child frame that really contains the given content offset
git-svn-id: svn://10.0.0.236/trunk@20472 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 00:02:31 +00:00
pierre%netscape.com
dd28e872ad First Checked In.
git-svn-id: svn://10.0.0.236/trunk@20471 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-12 00:00:20 +00:00
sfraser%netscape.com
1d05d66559 Add support for selection listener interfaces
git-svn-id: svn://10.0.0.236/trunk@20470 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 23:58:46 +00:00
sfraser%netscape.com
cadc7286e4 Export nsCaretProperties.h
git-svn-id: svn://10.0.0.236/trunk@20469 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 23:57:54 +00:00
sfraser%netscape.com
175269d933 Added nsICaret and nsIDOMSelectionListener to exports
git-svn-id: svn://10.0.0.236/trunk@20468 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 23:56:11 +00:00
sfraser%netscape.com
1186101405 Add nsCaret.cpp
git-svn-id: svn://10.0.0.236/trunk@20467 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 23:52:06 +00:00
sfraser%netscape.com
9845bce011 Added nsCaretPropertiesMac.cpp
git-svn-id: svn://10.0.0.236/trunk@20466 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 23:51:45 +00:00
pierre%netscape.com
bc1f73cd9e Fixed GetClipRegion/SetClipRegion to work with the actual region instead of its bounding box
git-svn-id: svn://10.0.0.236/trunk@20465 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 23:51:15 +00:00
pierre%netscape.com
0a55bab557 Added SetNativeRegion() + fixed 2 small bugs
git-svn-id: svn://10.0.0.236/trunk@20464 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 23:50:12 +00:00
sfraser%netscape.com
8b520832b9 Add nsICaret and nsIDOMSelectionListener.h
git-svn-id: svn://10.0.0.236/trunk@20463 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 23:50:04 +00:00
sfraser%netscape.com
cdd9b46762 First Checked In.
git-svn-id: svn://10.0.0.236/trunk@20462 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 23:49:08 +00:00
sfraser%netscape.com
5087b9b097 Add nsCaretProperties.h
git-svn-id: svn://10.0.0.236/trunk@20461 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 23:48:25 +00:00
sfraser%netscape.com
37112bc046 Un-macro the release for ease of debugging
git-svn-id: svn://10.0.0.236/trunk@20460 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 23:46:59 +00:00
sfraser%netscape.com
d694ab972f Reserve a couple of IIDs for caret
git-svn-id: svn://10.0.0.236/trunk@20459 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 23:46:02 +00:00
briano%netscape.com
dcb6bd5973 Automated update
git-svn-id: svn://10.0.0.236/trunk@20458 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 23:15:44 +00:00
akkana%netscape.com
0ebe0a4652 Rename nsISelection to nsIFrameSelection
git-svn-id: svn://10.0.0.236/trunk@20457 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 23:12:28 +00:00
hyatt%netscape.com
a18676255d Changes to RDF elements to support the XUL node API.
git-svn-id: svn://10.0.0.236/trunk@20456 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 23:11:36 +00:00
hyatt%netscape.com
1c79aff237 Adding the XUL Node auto-generated file (from the IDL).
git-svn-id: svn://10.0.0.236/trunk@20455 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 23:10:33 +00:00
akkana%netscape.com
f48015fd94 Renaming nsISelection to nsIFrameSelection.
Here is the old log from nsISelection (since CVS doesn't allow renames):
> revision 1.9
> date: 1999/02/02 00:23:35;  author: mjudge%netscape.com;  state: Exp;  lines: +2 -1
> keyboard navigation of selection.  adding API for nsIFrame. fixing nsFrame and nstextframe to reflect the implementations of the nsIFrame API.  nsRangeList implements the handlekeyevent now.
> ----------------------------
> revision 1.8
> date: 1999/01/29 18:57:51;  author: akkana%netscape.com;  state: Exp;  lines: +6 -0
> Implement a new interface, nsIDOMSelection, intended to become the
> external interface for selection (to be IDL-ified later).
>
> Fix some editor bugs:
> - Advance the cursor on text insert (so text is inserted in the right order)
> - Make DeleteSelection in the editor call the actual selection
> - Make DeleteSelection update the frames' notion of the selection
> ----------------------------
> revision 1.7
> date: 1999/01/25 01:42:32;  author: mjudge%netscape.com;  state: Exp;  lines: +3 -4
> Focus tracker needs to send the tracker to the implementation of selection so that it can update the tracker as to which frame(s) should be considered the focus frames ect.  This is not yet working fully.  Everything I am checking in will stay, I simply have a decision to make as to exactly what to do next.  RangeList also had some modifications to better selection
> ----------------------------
> revision 1.6
> date: 1999/01/22 18:58:09;  author: mjudge%netscape.com;  state: Exp;  lines: +6 -0
> chagnes for selection to work
> ----------------------------
> revision 1.5
> date: 1999/01/18 22:57:08;  author: mjudge%netscape.com;  state: Exp;  lines: +1 -1
> Files for selection across frames.
> ----------------------------
> revision 1.4
> date: 1998/12/14 18:34:09;  author: mjudge%netscape.com;  state: Exp;  lines: +13 -1
> adding in selection
> ----------------------------
> revision 1.3
> date: 1998/12/08 18:25:37;  author: mjudge%netscape.com;  state: Exp;  lines: +9 -32
> changes to selection
> ----------------------------
> revision 1.2
> date: 1998/05/01 05:55:11;  author: rpotts;  state: Exp;  lines: +1 -1
> nslayout.h is *all* lower case
> ----------------------------
> revision 1.1
> date: 1998/04/30 19:15:05;  author: rods;  state: Exp;
> initial


git-svn-id: svn://10.0.0.236/trunk@20454 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 23:10:20 +00:00
hyatt%netscape.com
2490c245af COmmitting the idl for the XUlNode.
git-svn-id: svn://10.0.0.236/trunk@20453 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 23:10:09 +00:00
hyatt%netscape.com
2172a75d87 Removing some interfaces.
git-svn-id: svn://10.0.0.236/trunk@20452 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 23:09:41 +00:00
hyatt%netscape.com
2ffd018374 SHuffling around of interfaces.
git-svn-id: svn://10.0.0.236/trunk@20451 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 23:08:52 +00:00
karnaze%netscape.com
244cccb5d1 table related frames don't create frames for children that are invalid (e.g. map, body, etc.)
git-svn-id: svn://10.0.0.236/trunk@20449 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 23:08:28 +00:00
alecf%netscape.com
dd0604d5eb forgot to substitute MOZ_XTERM_UPDATE
git-svn-id: svn://10.0.0.236/trunk@20448 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 23:08:26 +00:00
troy%netscape.com
16ef48adcd Partial fix for bug #644. We still re-load the document un-necessarily, but
at least now we move to the anchor


git-svn-id: svn://10.0.0.236/trunk@20447 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 23:08:04 +00:00
ramiro%netscape.com
5467c1838d C++ comment in c file.
git-svn-id: svn://10.0.0.236/trunk@20445 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 23:03:25 +00:00
rhp%netscape.com
225f0584da Updated the way to access the web shell of interest.
git-svn-id: svn://10.0.0.236/trunk@20444 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 23:02:51 +00:00
dougt%netscape.com
f8c051689b removing extra semicolons so that the mac build does not complain.
git-svn-id: svn://10.0.0.236/trunk@20443 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 20:51:37 +00:00
wtc%netscape.com
2ade6c86f9 Bugsplat bug #342631: a better implementation of the atomic routines
for HP-UX 11.  Use a set of locks to reduce lock contention.  Thanks
to Rick Swift <swift@npec.netscape.com> for contributing this code.


git-svn-id: svn://10.0.0.236/trunk@20442 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 20:06:31 +00:00
dougt%netscape.com
ddaccc1f26 Removed Rods Spears changes to this file.
git-svn-id: svn://10.0.0.236/trunk@20441 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 20:05:34 +00:00
rhp%netscape.com
fbee0b5524 Added changes to get a hold of the webshell.
git-svn-id: svn://10.0.0.236/trunk@20440 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 19:56:40 +00:00
pinkerton%netscape.com
2a24ef0296 Dont export or build toolbar or tree stuff.
git-svn-id: svn://10.0.0.236/trunk@20439 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 19:20:35 +00:00
rods%netscape.com
a1c6abd840 Removed the PasswordUsername method.
git-svn-id: svn://10.0.0.236/trunk@20438 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 19:14:28 +00:00
rhp%netscape.com
4232c39a18 Adding windows makefiles
git-svn-id: svn://10.0.0.236/trunk@20437 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 19:11:07 +00:00
rods%netscape.com
7b4aad86e1 Added a comment
git-svn-id: svn://10.0.0.236/trunk@20436 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 18:43:03 +00:00
rods%netscape.com
6fb34e8453 Fixed mail demo so it works
git-svn-id: svn://10.0.0.236/trunk@20435 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 18:42:46 +00:00
rods%netscape.com
cbf3244393 Added some more debugging
git-svn-id: svn://10.0.0.236/trunk@20434 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 18:42:09 +00:00
rhp%netscape.com
9e9dae4511 Makefile updates
git-svn-id: svn://10.0.0.236/trunk@20433 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 18:36:41 +00:00
rods%netscape.com
616d38e01a Commented out the rollover code that sets the class to a pseudo-class
git-svn-id: svn://10.0.0.236/trunk@20432 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 18:36:40 +00:00
rhp%netscape.com
4aa9574ffe Removed the NET_RegisterContentTypeHandler call from the test app.
git-svn-id: svn://10.0.0.236/trunk@20431 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 18:35:45 +00:00
pinkerton%netscape.com
b049d85cf0 Reexport nsIToolbarItem (for throbber).
git-svn-id: svn://10.0.0.236/trunk@20430 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 18:30:04 +00:00
rhp%netscape.com
3d953cbb83 Added NET_RegisterContentTypeConverter into the factory autoregistration
code so we don't have to hack viewer, etc... anymore to do this.


git-svn-id: svn://10.0.0.236/trunk@20429 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 18:29:24 +00:00
pinkerton%netscape.com
c50f8d3acf reexport nsIToolbarItem because the throbber needs it (this needs to be removed).
git-svn-id: svn://10.0.0.236/trunk@20428 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 18:29:05 +00:00
kmcclusk%netscape.com
6e1121c2d9 Added reset, submit, button, and file input types to test_pr sample.
git-svn-id: svn://10.0.0.236/trunk@20427 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 18:28:41 +00:00
kmcclusk%netscape.com
ab05faab56 Added additional style rules+properties for INPUT elements for printing and gfx-rendering.
git-svn-id: svn://10.0.0.236/trunk@20426 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 18:27:38 +00:00
terry%netscape.com
ad3e9eec3f Removed duplicate entries.
git-svn-id: svn://10.0.0.236/trunk@20424 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 18:24:52 +00:00
pinkerton%netscape.com
b2ff2f5475 Don't build or export the tree/toolbar stuff since they aren't widgets anymore
git-svn-id: svn://10.0.0.236/trunk@20423 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 18:08:25 +00:00
bienvenu%netscape.com
b1f31a9e30 get local folder stuff to linking point
git-svn-id: svn://10.0.0.236/trunk@20422 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 18:06:08 +00:00
pinkerton%netscape.com
3148db617e don't export tree or toolbar stuff.
git-svn-id: svn://10.0.0.236/trunk@20421 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 17:58:17 +00:00
pinkerton%netscape.com
466262b0fd Removing tree and toolbar widgets from being created, as they are now frames.
git-svn-id: svn://10.0.0.236/trunk@20420 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 17:58:07 +00:00
pinkerton%netscape.com
ba7bcd62b9 remove toolbars and tree widget registry, as they are no longer widgets.
git-svn-id: svn://10.0.0.236/trunk@20419 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 17:51:56 +00:00
rods%netscape.com
bd05ec34b5 Moved toolbar images from dead xpviewer directory to appcores/xul/resources
git-svn-id: svn://10.0.0.236/trunk@20418 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 17:17:56 +00:00
pinkerton%netscape.com
489dcad781 Remove toolbar/tree demo code (which was commented out).
git-svn-id: svn://10.0.0.236/trunk@20417 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 16:48:13 +00:00
rods%netscape.com
75e870bf80 Removed XULCOmmandCID
git-svn-id: svn://10.0.0.236/trunk@20416 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 16:14:43 +00:00
rods%netscape.com
f3715745e2 Fixed up toolbar.xml so Back and Forward work
Added BrowserInitPage.html for easy testing of browser features


git-svn-id: svn://10.0.0.236/trunk@20415 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 16:01:56 +00:00
rods%netscape.com
bdf9731aad Fixed a few things, added APP_DEBUG for turning on and off debugging
git-svn-id: svn://10.0.0.236/trunk@20414 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 15:57:08 +00:00
troy%netscape.com
fcbf19b87f API changes for nsIPresContext ResolveStyleContextFor and ResolvePseudoStyleContextFor
git-svn-id: svn://10.0.0.236/trunk@20413 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 15:56:23 +00:00
troy%netscape.com
46adb79a84 Changed to using nsCOMPtr
git-svn-id: svn://10.0.0.236/trunk@20412 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 15:54:13 +00:00
troy%netscape.com
982bcc6574 Changed ResolveStyleContextFor and ResolvePseudoStyleContextFor to use pointer
arguments instead of references for OUT parameters


git-svn-id: svn://10.0.0.236/trunk@20411 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 15:53:26 +00:00
rods%netscape.com
fd9c02553e Removed the commented out XULCommandCID
git-svn-id: svn://10.0.0.236/trunk@20410 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 15:20:42 +00:00
dcone%netscape.com
8f0051e5da added nsXULCommand.cpp to project
git-svn-id: svn://10.0.0.236/trunk@20409 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 15:18:54 +00:00
rods%netscape.com
90bade3f9e Added XULCommand back in fixed commands
git-svn-id: svn://10.0.0.236/trunk@20408 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 15:14:34 +00:00
rods%netscape.com
879bcd3dbe Moved XULCommand back to xpfe/appshell
git-svn-id: svn://10.0.0.236/trunk@20407 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 15:13:29 +00:00
dcone%netscape.com
1570ae2e1e Took out nsXULCommand.cpp
git-svn-id: svn://10.0.0.236/trunk@20406 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 15:13:20 +00:00
grail%cafebabe.org
7dd61549ae Patches to make sure everything is correctly typed and good.
git-svn-id: svn://10.0.0.236/trunk@20405 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 11:07:55 +00:00
briano%netscape.com
183367f869 Automated update
git-svn-id: svn://10.0.0.236/trunk@20404 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 09:32:01 +00:00
briano%netscape.com
2a6670788d Automated update
git-svn-id: svn://10.0.0.236/trunk@20403 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 09:19:28 +00:00
briano%netscape.com
9e740fac46 Automated update
git-svn-id: svn://10.0.0.236/trunk@20402 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 07:45:35 +00:00
alecf%netscape.com
375c80910b add new mail/news, js, and xpfe Makefiles (js and xpfe/AppCore/idl aren't active yet)
git-svn-id: svn://10.0.0.236/trunk@20401 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 07:32:54 +00:00
alecf%netscape.com
64a99cbcc4 ignore generated files
git-svn-id: svn://10.0.0.236/trunk@20400 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 07:31:53 +00:00
alecf%netscape.com
a2778fad2f add Unix makefiles
git-svn-id: svn://10.0.0.236/trunk@20399 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 07:29:55 +00:00
alecf%netscape.com
7d3efd1ae3 add makefile so we can export the IDL files
git-svn-id: svn://10.0.0.236/trunk@20398 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 07:29:02 +00:00
alecf%netscape.com
1ef2b77848 add db to list now that it's in the configure.in script
git-svn-id: svn://10.0.0.236/trunk@20397 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 07:28:08 +00:00
alecf%netscape.com
bcc7ef2082 update libraries because RDF now depends on layout (which has a zillion other dependancies)
git-svn-id: svn://10.0.0.236/trunk@20396 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 07:27:39 +00:00
alecf%netscape.com
a704f3bb96 get rid of duplicate NET_SACat definition
git-svn-id: svn://10.0.0.236/trunk@20395 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 07:27:19 +00:00
bienvenu%netscape.com
63236dfa91 start getting mailbox parsing going
git-svn-id: svn://10.0.0.236/trunk@20394 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 07:10:24 +00:00
bienvenu%netscape.com
468ac41b66 changes for getting local mail folder parsing to work
git-svn-id: svn://10.0.0.236/trunk@20393 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 07:09:26 +00:00
bienvenu%netscape.com
b1d4970f0e add error for not a mail folder
git-svn-id: svn://10.0.0.236/trunk@20392 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 07:09:05 +00:00
alecf%netscape.com
c24d3c37c3 add glue code for GetNewMail()
git-svn-id: svn://10.0.0.236/trunk@20391 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 07:02:06 +00:00
alecf%netscape.com
0081d86569 more and more fixes for unix
git-svn-id: svn://10.0.0.236/trunk@20390 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 06:53:55 +00:00
alecf%netscape.com
065bc208b3 ignore Makefile
git-svn-id: svn://10.0.0.236/trunk@20389 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 06:51:42 +00:00
peterl%netscape.com
742ab46863 added :-moz-viewport
git-svn-id: svn://10.0.0.236/trunk@20388 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 06:48:51 +00:00
alecf%netscape.com
d001b2a986 more fixes to make this compile on unix
git-svn-id: svn://10.0.0.236/trunk@20387 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 06:47:01 +00:00
peterl%netscape.com
d024afd811 made class values case sensitive
git-svn-id: svn://10.0.0.236/trunk@20386 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 06:43:14 +00:00
peterl%netscape.com
484307c6dc handle case sensitivity in attribute selector values here
git-svn-id: svn://10.0.0.236/trunk@20385 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 06:42:49 +00:00
peterl%netscape.com
e64bbf889e fixed bug while tokenizing ints at end of input stream
git-svn-id: svn://10.0.0.236/trunk@20384 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 06:42:02 +00:00
peterl%netscape.com
b5c996e95b made class selectors case sensitive
moved case-insensitive support for attribute values to style sheet


git-svn-id: svn://10.0.0.236/trunk@20383 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 06:41:21 +00:00
peterl%netscape.com
e6e9460541 make viewport frame use a viewport pseudo tag
connected doc root frame's style context to parent frame's style context


git-svn-id: svn://10.0.0.236/trunk@20382 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 06:40:13 +00:00
alecf%netscape.com
79e1e729a1 use new NSPR types and functions
git-svn-id: svn://10.0.0.236/trunk@20381 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 06:39:09 +00:00
peterl%netscape.com
d77f11eff2 added viewport pseudo element tag
git-svn-id: svn://10.0.0.236/trunk@20380 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 06:39:07 +00:00
alecf%netscape.com
4be3a056c9 minor makefile/cvs fixes to make stuff build on Unix
git-svn-id: svn://10.0.0.236/trunk@20379 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 06:37:17 +00:00
alecf%netscape.com
6c61a1d979 add support for creating new appcore
git-svn-id: svn://10.0.0.236/trunk@20378 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 06:27:27 +00:00
alecf%netscape.com
1b36cf1517 include the new header file so our factory method is done correctly
git-svn-id: svn://10.0.0.236/trunk@20377 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 06:26:09 +00:00
alecf%netscape.com
a7eb073f7f fix some warnings and add a new header file which does object construction
git-svn-id: svn://10.0.0.236/trunk@20376 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 06:25:16 +00:00
alecf%netscape.com
681521266d export the private header file
git-svn-id: svn://10.0.0.236/trunk@20375 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 06:23:58 +00:00
karnaze%netscape.com
2bae921097 tests collapsing rows, row groups, cols, col groups
git-svn-id: svn://10.0.0.236/trunk@20374 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 06:23:43 +00:00
sfraser%netscape.com
10824c470f That last checkin should have read: fix a bug in CompressWhitespace that caused the string length to be set incorrectly, when Trim shortened the string.
git-svn-id: svn://10.0.0.236/trunk@20373 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 06:23:29 +00:00
karnaze%netscape.com
6ccd350a1d collapsing rows, row groups, cols, col groups
git-svn-id: svn://10.0.0.236/trunk@20372 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 06:22:33 +00:00
sfraser%netscape.com
9e2845f5e9 Fix a bug in
git-svn-id: svn://10.0.0.236/trunk@20371 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 06:22:03 +00:00
waterson%netscape.com
37a0fec61a Add parser utils.
git-svn-id: svn://10.0.0.236/trunk@20370 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 06:06:57 +00:00
alecf%netscape.com
457f7b1e94 first checkin of Unix makefiles for UI stuff
git-svn-id: svn://10.0.0.236/trunk@20369 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 05:36:50 +00:00
alecf%netscape.com
feafd5eb60 finish implementing nsMsgAppCore
git-svn-id: svn://10.0.0.236/trunk@20368 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 05:35:20 +00:00
alecf%netscape.com
5339627bca and now it compiles on Unix. Whoo hoo!
git-svn-id: svn://10.0.0.236/trunk@20367 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 05:23:48 +00:00
alecf%netscape.com
f754194d31 first checkin for Messenger AppCore
git-svn-id: svn://10.0.0.236/trunk@20366 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 05:16:05 +00:00
alecf%netscape.com
dbc2872088 export nsIAllocator on Unix for XPConnect
git-svn-id: svn://10.0.0.236/trunk@20365 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 04:41:08 +00:00
sfraser%netscape.com
73c7b11b00 Added an assert in GetWidth, which fires if you try to measure width on a longer string than you really have. (May be triggered by selection code.)
git-svn-id: svn://10.0.0.236/trunk@20364 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 04:37:41 +00:00
sfraser%netscape.com
4d3a7a38f1 Temporary key handling code, so that basic navigation keys work.
git-svn-id: svn://10.0.0.236/trunk@20363 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 04:36:39 +00:00
waterson%netscape.com
96756c14d9 Added nsRDFParserUtils.cpp to Unix build.
git-svn-id: svn://10.0.0.236/trunk@20362 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 04:20:44 +00:00
alecf%netscape.com
36a6b55866 fix for AIX compiler bustage
git-svn-id: svn://10.0.0.236/trunk@20361 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 04:13:50 +00:00
waterson%netscape.com
3ab78a2fec Doh! Forgot to make two of the methods static.
git-svn-id: svn://10.0.0.236/trunk@20360 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 04:10:36 +00:00
waterson%netscape.com
d1f266d3fa Added nsRDFParserUtils.cpp.
git-svn-id: svn://10.0.0.236/trunk@20359 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 04:06:02 +00:00
waterson%netscape.com
7a5bd2f430 Added some routines for use with parsing RDF/XML and XUL.
git-svn-id: svn://10.0.0.236/trunk@20358 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 04:05:41 +00:00
briano%netscape.com
100fa1c227 Automated update
git-svn-id: svn://10.0.0.236/trunk@20357 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 04:00:36 +00:00
mscott%netscape.com
dbf2a0eef6 Add local/tests/pop3 to list of mailnews directories...
git-svn-id: svn://10.0.0.236/trunk@20356 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 03:58:22 +00:00
mscott%netscape.com
83aaaa04ba Replaces old Makefile.in. We now want to build pop3 directory...
git-svn-id: svn://10.0.0.236/trunk@20355 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 03:57:53 +00:00
mscott%netscape.com
3e4860116c Adding to build new directory...
git-svn-id: svn://10.0.0.236/trunk@20354 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 03:56:36 +00:00
troy%netscape.com
a0c49af128 Fix for bug #3089
git-svn-id: svn://10.0.0.236/trunk@20353 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 03:56:00 +00:00
mscott%netscape.com
091da21cf4 moved into new subdirectory....
git-svn-id: svn://10.0.0.236/trunk@20352 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 03:33:04 +00:00
mscott%netscape.com
ef5749914b Build pop3 subdirectory...
git-svn-id: svn://10.0.0.236/trunk@20351 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 03:32:20 +00:00
mscott%netscape.com
a0a263475e This has been moved into a tests/pop3 subdirectory...
git-svn-id: svn://10.0.0.236/trunk@20349 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 03:31:14 +00:00
mscott%netscape.com
d3952da2d6 use of sockstub protocol to implement a socket connection for a url is now BLIND to the protocol. So let the protocol use its original scheme when building urls. The transport layer will now worry about chaning the scheme to sockstub when appropriate....
git-svn-id: svn://10.0.0.236/trunk@20348 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 03:10:28 +00:00
mscott%netscape.com
7eca6494db Remove assertion that is no longer valid...
git-svn-id: svn://10.0.0.236/trunk@20347 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 03:07:24 +00:00
spence%netscape.com
bcfa0713ea updated to use mozilla/base from nsFileStream
git-svn-id: svn://10.0.0.236/trunk@20346 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 03:07:05 +00:00
mscott%netscape.com
88333318d6 Remove in-appropriate assertion...the rules have changed...
git-svn-id: svn://10.0.0.236/trunk@20345 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 03:03:51 +00:00
mscott%netscape.com
36c56bfc85 Add the ability to open a file based socket. (Part of the nsITransport) code....
git-svn-id: svn://10.0.0.236/trunk@20343 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 02:59:53 +00:00
mscott%netscape.com
45da5a7fd0 Added code to make a file based socket transport. nsSocketTransport can now open a file or a network based socket.
When opening a url through a transport, convert the application url scheme to either file or 'sockstub' based on the type
of socket connection.


git-svn-id: svn://10.0.0.236/trunk@20342 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 02:56:58 +00:00
kipp%netscape.com
c0eabe2017 Removed some warnings; made the resource noise a one-shot
git-svn-id: svn://10.0.0.236/trunk@20341 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 02:53:38 +00:00
ducarroz%netscape.com
6db1abe692 re-added compose to the build
git-svn-id: svn://10.0.0.236/trunk@20340 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 02:38:53 +00:00
ducarroz%netscape.com
d27bb31aa9 Add library raptorbase.lib to the build
git-svn-id: svn://10.0.0.236/trunk@20339 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 02:37:35 +00:00
briano%netscape.com
297f9e16ec Automated update
git-svn-id: svn://10.0.0.236/trunk@20338 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 02:31:28 +00:00
spence%netscape.com
0ed3738afe updated to use mozilla/base nsFileStream
git-svn-id: svn://10.0.0.236/trunk@20336 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 02:25:25 +00:00
kipp%netscape.com
fe7377435f Fixed memory corruption crasher by passing in the correct width/height to the swizzler routine
git-svn-id: svn://10.0.0.236/trunk@20335 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 02:21:48 +00:00
buster%netscape.com
63b56c396b added layout/html/table/public
git-svn-id: svn://10.0.0.236/trunk@20334 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 02:20:31 +00:00
michaelp%netscape.com
fd120dee00 made GetRects() and FreeRects() work. killed ForEachRect().
git-svn-id: svn://10.0.0.236/trunk@20332 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 01:54:01 +00:00
michaelp%netscape.com
9da531cd6b killed ForEachRect().
git-svn-id: svn://10.0.0.236/trunk@20331 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 01:53:42 +00:00
buster%netscape.com
aabfe0f826 tell the build system that "public" dir needs building
git-svn-id: svn://10.0.0.236/trunk@20330 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 01:51:20 +00:00
scc%netscape.com
390cefda5f Activate browser so you get the colorized source
git-svn-id: svn://10.0.0.236/trunk@20329 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 01:35:54 +00:00
scc%netscape.com
218ef805b6 Added |nsresult nsCOMPtr::assignment_error() const;| which returns the error, if any, from the most recent operation (constructor or assignment operator) that implicitly calls |QueryInterface|. This did not increase the size of an |nsCOMPtr|.
git-svn-id: svn://10.0.0.236/trunk@20328 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 01:34:07 +00:00
buster%netscape.com
608179b291 changed table cell getters to be XP_COM-like, with out-params instead of return values.
this is so these getters can be bound to an XPCOM interface, nsITableCellLayout


git-svn-id: svn://10.0.0.236/trunk@20327 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 01:17:19 +00:00
buster%netscape.com
3dbeb7eb3f changed getters to be XP_COM-like, with out-params instead of return values.
this is so these getters can be bound to an XPCOM interface, nsITableCellLayout


git-svn-id: svn://10.0.0.236/trunk@20326 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 01:16:28 +00:00
kmcclusk%netscape.com
4f668b7081 Fixed border rendering during printing for Select and text, and text areas.
Implemented SetProperty/GetProperty methods for FileControlFrame
Added nsGenericHTMLElement::GetPrimaryFrame check for nsnull for doc return type.
nsHTMLInputElement.cpp replace NS_OK == with  NS_SUCCEEDED in GetValue and SetValue
Added GetName and GetValue utility methods to nsFormControlHelper
modified nsButtonControlFrame::PaintButton to take the label to paint as an extra parameter.
This allows it to be callable from the nsFileControlFrame code to render the button.


git-svn-id: svn://10.0.0.236/trunk@20325 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 01:13:28 +00:00
radha%netscape.com
0b91100f7c Make the throbber button display netcenter in the main page not in the toolbar area
git-svn-id: svn://10.0.0.236/trunk@20324 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 01:13:24 +00:00
ducarroz%netscape.com
6ed5f63bed Add directory build
git-svn-id: svn://10.0.0.236/trunk@20323 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 01:05:18 +00:00
ducarroz%netscape.com
81ed947e44 Initial check in
git-svn-id: svn://10.0.0.236/trunk@20322 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 01:01:47 +00:00
ducarroz%netscape.com
666a630c33 no comment
git-svn-id: svn://10.0.0.236/trunk@20321 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 00:59:19 +00:00
ducarroz%netscape.com
850497c0cd Initial check in
git-svn-id: svn://10.0.0.236/trunk@20320 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 00:54:40 +00:00
pierre%netscape.com
51c9f366be Added checkbox and radiobox size to the LookAndFeel (bug#2923 "Checkboxes don't display ")
git-svn-id: svn://10.0.0.236/trunk@20319 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 00:51:36 +00:00
ducarroz%netscape.com
673b825eb8 no comment
git-svn-id: svn://10.0.0.236/trunk@20318 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 00:49:04 +00:00
wtc%netscape.com
7c0e3e8a42 Added the sockping and sockpong tests.
git-svn-id: svn://10.0.0.236/trunk@20317 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 00:44:06 +00:00
ducarroz%netscape.com
3fed540617 Initial check in
git-svn-id: svn://10.0.0.236/trunk@20316 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 00:43:57 +00:00
wtc%netscape.com
b092c9244f Declare Test_Result as returning void. Changed AF_INET and INADDR_XXX
to PR_AF_INET and PR_INADDR_XXX.


git-svn-id: svn://10.0.0.236/trunk@20315 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 00:43:30 +00:00
nhotta%netscape.com
4eb16d16d7 Changed csid to charset name for MIME header decoding.
git-svn-id: svn://10.0.0.236/trunk@20314 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 00:43:20 +00:00
nhotta%netscape.com
5e7cf504fd Changed csid to charset name, Unicode converter wrapper callable by C code.
git-svn-id: svn://10.0.0.236/trunk@20313 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 00:41:30 +00:00
wtc%netscape.com
ebc409c1ab Changed AF_INET and INADDR_XXX to PR_AF_INET and PR_INADDR_XXX.
git-svn-id: svn://10.0.0.236/trunk@20312 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 00:39:16 +00:00
ducarroz%netscape.com
ad102c9784 no comment
git-svn-id: svn://10.0.0.236/trunk@20311 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 00:38:13 +00:00
nhotta%netscape.com
23ab9042c7 Added an include path for the unicode converter.
git-svn-id: svn://10.0.0.236/trunk@20310 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 00:30:30 +00:00
ducarroz%netscape.com
1e93bb44a7 add export for rosetta_mailnews.h
git-svn-id: svn://10.0.0.236/trunk@20308 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 00:10:48 +00:00
ducarroz%netscape.com
05e69a161e Initial check in
git-svn-id: svn://10.0.0.236/trunk@20307 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 00:06:35 +00:00
sar%netscape.com
31c3b38273 Turn of "modification date caching" so that dependencies are sure to work.
git-svn-id: svn://10.0.0.236/trunk@20306 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 00:04:46 +00:00
law%netscape.com
d385a92372 moz->ns
git-svn-id: svn://10.0.0.236/trunk@20305 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 23:27:09 +00:00
buster%netscape.com
f303703535 added GetLayoutObjectFor for getting a layout object as an nsISupports
while not exposing nsIFrame.


git-svn-id: svn://10.0.0.236/trunk@20304 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 23:21:22 +00:00
chuang%netscape.com
e590ed528d Updated toobar xul
git-svn-id: svn://10.0.0.236/trunk@20303 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 22:59:44 +00:00
erik%netscape.com
87455362bb Re-enabling the string bundle testing code, now that the nsIProperties
bug has been fixed.


git-svn-id: svn://10.0.0.236/trunk@20302 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 22:53:35 +00:00
erik%netscape.com
51d0ad7397 Forgot to say "public" in "class nsPropertiesFactory : nsIFactory".
This caused it to fail on Linux, but not on Windows. Go figure. Sigh.


git-svn-id: svn://10.0.0.236/trunk@20301 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 22:51:01 +00:00
kipp%netscape.com
7193d515a9 Implement support for the spacing array for DrawString; fixed bug - didn't init mDrawStringBuf in ctor
git-svn-id: svn://10.0.0.236/trunk@20300 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 22:23:16 +00:00
terry%netscape.com
d0af8926a5 Updated version string to 2.3 (development)
git-svn-id: svn://10.0.0.236/trunk@20299 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 22:12:03 +00:00
terry%netscape.com
833b4d4d0d Updated version string to 2.2 (shipping)
git-svn-id: svn://10.0.0.236/trunk@20297 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 22:11:52 +00:00
pinkerton%netscape.com
fce42ff00f my bad. green toolbars? who would ever want that?? ;)
git-svn-id: svn://10.0.0.236/trunk@20296 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 22:10:02 +00:00
pinkerton%netscape.com
df3d6278c2 remove the bg-image in the toolbar to get things to suck less on windows.
git-svn-id: svn://10.0.0.236/trunk@20295 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 22:09:00 +00:00
pinkerton%netscape.com
a041ac5c7a add some styles for collapsing toolbars and the throbber.
git-svn-id: svn://10.0.0.236/trunk@20294 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 22:08:28 +00:00
pinkerton%netscape.com
a26fdf4b82 go back to relative positioning for throbber and take out the <A> tag around it so that NetCenter doesn't load in the toolbar frame ;)
git-svn-id: svn://10.0.0.236/trunk@20293 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 22:07:50 +00:00
pinkerton%netscape.com
946c2cc718 add samples 10-12 to mac viewer.
git-svn-id: svn://10.0.0.236/trunk@20292 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 22:04:41 +00:00
despotdaemon%netscape.com
fcdda5c5c1 Pseudo-automatic update of changes made by syd@netscape.com.
git-svn-id: svn://10.0.0.236/trunk@20291 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 21:40:50 +00:00
rhp%netscape.com
abda00a8fc New changes for factory self registration.
git-svn-id: svn://10.0.0.236/trunk@20290 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 21:38:47 +00:00
chuang%netscape.com
8f2154011e Initial 3 pane mail ui files
git-svn-id: svn://10.0.0.236/trunk@20289 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 21:31:01 +00:00
chuang%netscape.com
211d1478d5 Mail toolbar buttons gif files
git-svn-id: svn://10.0.0.236/trunk@20288 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 21:24:55 +00:00
rods%netscape.com
a1e4c2a923 Back and forward did not work for frames, so I put in a temporary fix
git-svn-id: svn://10.0.0.236/trunk@20286 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 20:44:31 +00:00
ducarroz%netscape.com
08c475b210 remove msgcompose.lib
git-svn-id: svn://10.0.0.236/trunk@20285 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 20:10:39 +00:00
hyatt%netscape.com
cb298f94b8 Adding support for tree columns.
git-svn-id: svn://10.0.0.236/trunk@20284 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 19:51:29 +00:00
hyatt%netscape.com
db2d99b076 Changing the way table frames are created so that tree frames can be made
as well.


git-svn-id: svn://10.0.0.236/trunk@20283 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 19:50:50 +00:00
law%netscape.com
f91535f863 Cleaned up i/f, XPCOM-wise
git-svn-id: svn://10.0.0.236/trunk@20282 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 19:47:56 +00:00
wtc%netscape.com
8676f937c5 Added the pipeping, pipepong, and pipeself tests.
git-svn-id: svn://10.0.0.236/trunk@20281 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 19:46:39 +00:00
waterson%netscape.com
fa92838811 Fixed nsISelection bustage.
git-svn-id: svn://10.0.0.236/trunk@20280 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 19:39:29 +00:00
waterson%netscape.com
0889233a65 Changed LocalStore.rdf to sidebar.xul & sidebar.css.
git-svn-id: svn://10.0.0.236/trunk@20279 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 19:17:02 +00:00
waterson%netscape.com
fc005bd21c Initial revision.
git-svn-id: svn://10.0.0.236/trunk@20278 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 19:15:46 +00:00
waterson%netscape.com
9c7104846c Added XP_UNIX filename for bookmarks.
git-svn-id: svn://10.0.0.236/trunk@20277 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 19:13:12 +00:00
waterson%netscape.com
0c1bfe75d8 Take _address_ of mTreeFrame.
git-svn-id: svn://10.0.0.236/trunk@20276 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 19:08:58 +00:00
mjudge%netscape.com
07be1b0f72 removing nsICollection
git-svn-id: svn://10.0.0.236/trunk@20275 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 18:57:54 +00:00
mjudge%netscape.com
2a9e445535 Keyboard navigation, removing nsICollection(not used) adding PeekOffset to have the nsIFrame tell us where to go when moving a character ect. adding nsFrameTraversal to traverse frames, based on nsIEnumerator. mjudge x4661
git-svn-id: svn://10.0.0.236/trunk@20274 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 18:55:25 +00:00
pinkerton%netscape.com
3d14e0916d add Network shlb.
git-svn-id: svn://10.0.0.236/trunk@20273 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 18:48:13 +00:00
pinkerton%netscape.com
5ceb3206bb add the remaining things in this folder to the manifest so I don't have to do this process again.
git-svn-id: svn://10.0.0.236/trunk@20272 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 18:39:31 +00:00
pinkerton%netscape.com
c825e4b301 nsIXULCommand.h doesn't live here anymore.
git-svn-id: svn://10.0.0.236/trunk@20271 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 18:22:30 +00:00
pinkerton%netscape.com
77eb4f3439 Add manifest file for xpfe/appshell/public
git-svn-id: svn://10.0.0.236/trunk@20270 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 18:20:47 +00:00
troy%netscape.com
c6590e6940 Re-ordered DeleteFrame() code to fix a FMR
git-svn-id: svn://10.0.0.236/trunk@20269 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 18:12:24 +00:00
pinkerton%netscape.com
a63203122e export nsIWebShellWindow.h
git-svn-id: svn://10.0.0.236/trunk@20268 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 18:11:37 +00:00
rods%netscape.com
cb04e26922 Added the Mail files again
git-svn-id: svn://10.0.0.236/trunk@20267 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 17:59:39 +00:00
kipp%netscape.com
66875f5837 Use a growable buffer to translate unicode to GdkWChar's instead of mallocing for every draw/measure
git-svn-id: svn://10.0.0.236/trunk@20266 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 17:58:43 +00:00
kipp%netscape.com
e925328b5c Eliminate a compiler warning
git-svn-id: svn://10.0.0.236/trunk@20265 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 17:58:16 +00:00
coop%netscape.com
789a083e10 NOT YET PART OF SEAMONKEY:
* changed type descriptor tag defines into one big enum
* made corresponding changes to xpt_dump


git-svn-id: svn://10.0.0.236/trunk@20264 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 17:44:05 +00:00
rods%netscape.com
fd8d8e3fd8 initial checkin
git-svn-id: svn://10.0.0.236/trunk@20263 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 17:31:17 +00:00
rods%netscape.com
deac8ecb86 Added SetWebShellWindow
git-svn-id: svn://10.0.0.236/trunk@20262 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 16:48:31 +00:00
rods%netscape.com
7485ef4bb4 Added SetWebShellWindow to toolbar core
Made ToolBarCore a StreamObserver and nsINetSupport listener
Commented out status bar code


git-svn-id: svn://10.0.0.236/trunk@20261 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 16:46:47 +00:00
rods%netscape.com
3ab3644d20 Added extra parameeter to CreatetopLevelWindow
git-svn-id: svn://10.0.0.236/trunk@20260 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 16:41:07 +00:00
rods%netscape.com
8a5d0ddf5f Must build appshell dir first
git-svn-id: svn://10.0.0.236/trunk@20259 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 16:39:35 +00:00
rods%netscape.com
baf0aa3a0a must build appshell first
git-svn-id: svn://10.0.0.236/trunk@20258 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 16:39:16 +00:00
rods%netscape.com
960299f551 Added new interface nsIAppShellService
git-svn-id: svn://10.0.0.236/trunk@20257 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 16:38:51 +00:00
kostello%netscape.com
ded383e7e5 Added NS_INIT_REFCNT in the constructors
git-svn-id: svn://10.0.0.236/trunk@20256 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 16:38:10 +00:00
rods%netscape.com
829f95d1e4 It now implements nsIDocumentLoaderObserver
git-svn-id: svn://10.0.0.236/trunk@20255 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 16:32:55 +00:00
rods%netscape.com
8ba2c2c961 Added GetWebShell
git-svn-id: svn://10.0.0.236/trunk@20254 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 16:25:49 +00:00
rods%netscape.com
d52a9494a8 Added GetWebShell method
git-svn-id: svn://10.0.0.236/trunk@20253 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 16:25:11 +00:00
rods%netscape.com
3ff0cf564d Added GetNativeEvent and DispatchNativeEvent, these are neded for future modal dialog support
git-svn-id: svn://10.0.0.236/trunk@20252 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 16:20:29 +00:00
pierre%netscape.com
5e50cc117b Fixed a small bug when resizing very fast
git-svn-id: svn://10.0.0.236/trunk@20251 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 11:42:46 +00:00
pierre%netscape.com
2992df5b5a removed some spurious file access paths
git-svn-id: svn://10.0.0.236/trunk@20250 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 11:00:30 +00:00
pierre%netscape.com
b37c86dc20 backed out ftang's changes from version 1.72
git-svn-id: svn://10.0.0.236/trunk@20249 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 10:24:57 +00:00
hyatt%netscape.com
d408a4413d Fixing the auto-generated JS file since the IDL changed.
git-svn-id: svn://10.0.0.236/trunk@20248 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 10:16:34 +00:00
hyatt%netscape.com
f6d39212e9 Fixing the auto-generated file since the IDL changed.
git-svn-id: svn://10.0.0.236/trunk@20247 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 10:15:47 +00:00
hyatt%netscape.com
e1240ab078 Added a SetBroadcaster method so that I have a convenient way to set the broadcaster
for a given broadcast listener.


git-svn-id: svn://10.0.0.236/trunk@20246 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 10:15:22 +00:00
hyatt%netscape.com
ee4b78af1f The auto-generated file for the XUL broadcast listener.
git-svn-id: svn://10.0.0.236/trunk@20245 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 09:53:39 +00:00
hyatt%netscape.com
0c343f8c51 The auto-generated JS file for the XUL broadcaster.
git-svn-id: svn://10.0.0.236/trunk@20244 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 09:53:19 +00:00
hyatt%netscape.com
8ae908a372 The auto-generated JS file for the XUL command.
git-svn-id: svn://10.0.0.236/trunk@20243 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 09:52:48 +00:00
hyatt%netscape.com
364fdd5a9a The auto-generated header file for the XULCommand idl.
git-svn-id: svn://10.0.0.236/trunk@20242 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 09:50:59 +00:00
hyatt%netscape.com
ddcdca1972 The auto-generated header file for the XULBroadcastListener idl.
git-svn-id: svn://10.0.0.236/trunk@20241 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 09:50:28 +00:00
hyatt%netscape.com
702ce6032c The auto-generated file for the XULBroadcaster IDL.
git-svn-id: svn://10.0.0.236/trunk@20240 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 09:49:50 +00:00
hyatt%netscape.com
e57c5fedba IDL for enhancements to XUL content nodes, namely the ability to invoke
the commands associated with command nodes and the ability to provide
automatic attribute-chaining between a set of broadcasters and broadcast
listeners.


git-svn-id: svn://10.0.0.236/trunk@20239 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 09:48:00 +00:00
pierre%netscape.com
091d8a00a7 Fix a crash when interrupting a page load
git-svn-id: svn://10.0.0.236/trunk@20238 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 09:12:48 +00:00
rickg%netscape.com
a1f45d1784 added a few comment tests
git-svn-id: svn://10.0.0.236/trunk@20237 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 09:11:54 +00:00
rickg%netscape.com
27c01fccd5 added a few comment tests
git-svn-id: svn://10.0.0.236/trunk@20236 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 09:08:35 +00:00
rickg%netscape.com
97898ac00a added a few comment tests
git-svn-id: svn://10.0.0.236/trunk@20235 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 09:07:37 +00:00
peterl%netscape.com
10b169bbbd Improved handling of bad properties
git-svn-id: svn://10.0.0.236/trunk@20234 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 08:37:52 +00:00
peterl%netscape.com
33444d5bfd added append struct value
git-svn-id: svn://10.0.0.236/trunk@20233 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 08:37:28 +00:00
peterl%netscape.com
4bc1a77489 added missing ToString case
git-svn-id: svn://10.0.0.236/trunk@20232 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 08:36:37 +00:00
alecf%netscape.com
3eaef57ed6 fix casting for strict compilers
git-svn-id: svn://10.0.0.236/trunk@20231 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 08:24:04 +00:00
alecf%netscape.com
c833d569c4 cast correctly to avoid confusing strict compilers
git-svn-id: svn://10.0.0.236/trunk@20230 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 08:23:36 +00:00
alecf%netscape.com
8966bc4b40 add a few more string cases to fix compilers who complain about ambiguous overloading
git-svn-id: svn://10.0.0.236/trunk@20229 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 08:22:47 +00:00
sfraser%netscape.com
384b9f6b4e Revert project back to 1.5 (remove cyeh's static lib targets, which broke the optimized build). On instruction from sar.
git-svn-id: svn://10.0.0.236/trunk@20228 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 06:50:04 +00:00
waldemar%netscape.com
f33d1fd371 First complete release
git-svn-id: svn://10.0.0.236/trunk@20227 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 06:42:20 +00:00
waldemar%netscape.com
d524d1607b Reorganized left-side-expression and suppressed unused nonterminal warnings
git-svn-id: svn://10.0.0.236/trunk@20226 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 06:41:43 +00:00
waldemar%netscape.com
b03844fe0f Added :spc
git-svn-id: svn://10.0.0.236/trunk@20225 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 06:40:53 +00:00
waldemar%netscape.com
a3902839d9 Added support for excluding some nonterminals from grammar
git-svn-id: svn://10.0.0.236/trunk@20224 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 06:39:58 +00:00
troy%netscape.com
bd78450e96 Changed GetNextSibling() to use a pointer argument instead of a reference
git-svn-id: svn://10.0.0.236/trunk@20223 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 06:13:38 +00:00
troy%netscape.com
339afcce8a Changed a bunch more nsIFrame member functions to be pointer arguments
instead of references


git-svn-id: svn://10.0.0.236/trunk@20222 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 05:38:18 +00:00
mcafee%netscape.com
d76d572b5a Unix, Win32 now get qsort out of mozilla/lib/xp/xp_qsort.c and mozilla/include/xp_qsort.h. Leaving XP_MAC here until the mac people figure this out, bug 2998 filed to pierre about this.
git-svn-id: svn://10.0.0.236/trunk@20221 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 04:33:45 +00:00
mcafee%netscape.com
37070ed319 Point Unix, Win32 at mozilla/include/xp_qsort
git-svn-id: svn://10.0.0.236/trunk@20220 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 04:29:17 +00:00
mcafee%netscape.com
c5ae175c14 Cleaning this Makefile up; removing dead rules, unused stuff
git-svn-id: svn://10.0.0.236/trunk@20219 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 04:26:53 +00:00
mcafee%netscape.com
6812881a0e removing unused rule
git-svn-id: svn://10.0.0.236/trunk@20218 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 04:23:40 +00:00
mcafee%netscape.com
b17310ba03 Fixing xpcom/reg breakage.
git-svn-id: svn://10.0.0.236/trunk@20217 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 04:19:23 +00:00
jband%netscape.com
03568c1065 NOT YET PART OF SEAMONKEY - prepped the four files for movement to libxpt, centralized/simplified access to services, fixed InterfaceInfoImpl::GetName, removed files I forgot to remove before
git-svn-id: svn://10.0.0.236/trunk@20216 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 04:17:53 +00:00
troy%netscape.com
dbedf1803d Changed GetFrameState() and GetFrameType() to use pointer arguments instead of
references


git-svn-id: svn://10.0.0.236/trunk@20215 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 04:17:06 +00:00
briano%netscape.com
2be995a545 Automated update
git-svn-id: svn://10.0.0.236/trunk@20214 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 04:15:35 +00:00
briano%netscape.com
379e584b92 Another minor tweak for BSD/OS (3.1).
git-svn-id: svn://10.0.0.236/trunk@20213 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 04:05:13 +00:00
troy%netscape.com
3635a7c72c Changed GetAdditionalChildListName() and FirstChild() to use ** instead
of *&


git-svn-id: svn://10.0.0.236/trunk@20212 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 02:25:01 +00:00
michaelp%netscape.com
9699371b8c added GetRects()/FreeRects() to nsIRegion. add GetDrawingSurface() to
nsIRenderingContext.


git-svn-id: svn://10.0.0.236/trunk@20211 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 02:15:47 +00:00
briano%netscape.com
dd19db0171 Automated update
git-svn-id: svn://10.0.0.236/trunk@20210 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 02:15:36 +00:00
briano%netscape.com
b2795bfed8 Added a feeble first attempt at handling BSDI BSD/OS.
git-svn-id: svn://10.0.0.236/trunk@20209 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 02:14:35 +00:00
dp%netscape.com
fbd9ebf114 Adding libreg as xpcom depends on it
git-svn-id: svn://10.0.0.236/trunk@20208 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 02:01:50 +00:00
akkana%netscape.com
fa04adcb99 Comment out ostream code on Linux for now
git-svn-id: svn://10.0.0.236/trunk@20207 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 01:55:42 +00:00
mcafee%netscape.com
0e9be6ddc6 More portable Makefile, and this one builds
git-svn-id: svn://10.0.0.236/trunk@20206 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 01:50:29 +00:00
troy%netscape.com
2af2ec249b Changed GetParent() to use ** instead of *&
git-svn-id: svn://10.0.0.236/trunk@20205 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 01:36:30 +00:00
mcafee%netscape.com
72c48ee8e7 Fixing windows breakage
git-svn-id: svn://10.0.0.236/trunk@20204 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 01:34:45 +00:00
mcafee%netscape.com
235cb9eb66 Wrapping tests up in ENABLE_TESTS
git-svn-id: svn://10.0.0.236/trunk@20203 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 01:21:39 +00:00
mscott%netscape.com
095504a872 Fix build breakage....for some reason it suddennly started having problems with LINEBREAK. I added a defintion here...although
it is also defined in nsMsgLinebuffer.cpp....seems like we want to find a generic place for this.


git-svn-id: svn://10.0.0.236/trunk@20202 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 01:16:37 +00:00
mcafee%netscape.com
0cc6721116 Wrapping tests in ENABLE_TESTS
git-svn-id: svn://10.0.0.236/trunk@20201 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 01:01:07 +00:00
mcafee%netscape.com
2fa35a3162 More portable way of writing this Makefile.
git-svn-id: svn://10.0.0.236/trunk@20200 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 00:49:34 +00:00
troy%netscape.com
8934624982 Changed some nsIFrame member functions to use ** instead of *& for OUT
paremeters


git-svn-id: svn://10.0.0.236/trunk@20199 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 00:42:56 +00:00
buster%netscape.com
4ed9a862df initial checkin of public table layout interfaces
git-svn-id: svn://10.0.0.236/trunk@20198 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 00:38:01 +00:00
michaelp%netscape.com
a2bd5d7922 fleshed out rect enumeration method.
git-svn-id: svn://10.0.0.236/trunk@20197 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 00:35:04 +00:00
ftang%netscape.com
f21bf31eb0 back up the #ifndef XP_UNIX
git-svn-id: svn://10.0.0.236/trunk@20196 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 00:35:02 +00:00
mcafee%netscape.com
96a55c36a5 un-hardcoding SOLARIS
git-svn-id: svn://10.0.0.236/trunk@20195 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 00:13:25 +00:00
waterson%netscape.com
ba3e4b0f20 Added bookmarks.html to the install.
git-svn-id: svn://10.0.0.236/trunk@20194 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 00:09:29 +00:00
alecf%netscape.com
0ae6479a1e fix dependancies for static libraries which build up shared libraries
git-svn-id: svn://10.0.0.236/trunk@20193 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 00:07:01 +00:00
akkana%netscape.com
625d626ffc Change stream ifdefs to be easier to follow; include debug code for Linux DoCopy(); comment out a bunch of lines that caused warnings
git-svn-id: svn://10.0.0.236/trunk@20192 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 00:06:19 +00:00
cyeh%netscape.com
fcd65c543a add static lib targets for source files.
git-svn-id: svn://10.0.0.236/trunk@20191 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 00:04:05 +00:00
briano%netscape.com
9a1606dbb2 Automated update
git-svn-id: svn://10.0.0.236/trunk@20190 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 00:00:50 +00:00
ftang%netscape.com
2996818b97 check in some changes
git-svn-id: svn://10.0.0.236/trunk@20189 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 23:57:14 +00:00
ftang%netscape.com
fa441ace42 fix xpcom code
git-svn-id: svn://10.0.0.236/trunk@20188 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 23:56:05 +00:00
ftang%netscape.com
4736a601af check in the implementation of General Category code
git-svn-id: svn://10.0.0.236/trunk@20187 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 23:52:36 +00:00
akkana%netscape.com
f8413c4ccd Separate gprof option from debug
git-svn-id: svn://10.0.0.236/trunk@20186 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 23:51:54 +00:00
ftang%netscape.com
8b5c24895c first check in
git-svn-id: svn://10.0.0.236/trunk@20185 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 23:51:43 +00:00
ftang%netscape.com
7088cd1bf8 make small changes
git-svn-id: svn://10.0.0.236/trunk@20184 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 23:51:02 +00:00
ftang%netscape.com
f2e4f73f72 reduce table size
git-svn-id: svn://10.0.0.236/trunk@20183 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 23:49:30 +00:00
mscott%netscape.com
9aa3de4341 Add compose/tests/smtp and compose/tests/compose to list of mail news directories.
git-svn-id: svn://10.0.0.236/trunk@20182 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 23:49:20 +00:00
ftang%netscape.com
f449c5a84e reduce the table size
git-svn-id: svn://10.0.0.236/trunk@20181 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 23:48:56 +00:00
briano%netscape.com
96d268d75c Automated update
git-svn-id: svn://10.0.0.236/trunk@20180 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 23:32:00 +00:00
dp%netscape.com
d4c5628835 Adding libreg
git-svn-id: svn://10.0.0.236/trunk@20179 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 23:29:48 +00:00
slamm%netscape.com
2860db776d Shorten the compile line. Add test and support for preprocessor '-include' flag
git-svn-id: svn://10.0.0.236/trunk@20178 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 23:24:12 +00:00
dp%netscape.com
faf9dec2f3 CFLAGS->DEFINES
git-svn-id: svn://10.0.0.236/trunk@20177 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 22:48:00 +00:00
dp%netscape.com
27d0742fde Adding libreg
git-svn-id: svn://10.0.0.236/trunk@20176 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 22:47:21 +00:00
mscott%netscape.com
7edacf7a1d Export nsSmtpProtocol.h.
git-svn-id: svn://10.0.0.236/trunk@20175 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 21:39:29 +00:00
mscott%netscape.com
9cf2df2097 Remove nsMsgCompFields.h from the export list...
git-svn-id: svn://10.0.0.236/trunk@20174 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 21:39:00 +00:00
dp%netscape.com
96174e85fa Commenting CreateInstance2().
git-svn-id: svn://10.0.0.236/trunk@20173 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 21:32:13 +00:00
erik%netscape.com
7fd758d256 disable this string bundle test until I figure out why Unix viewer crashes
git-svn-id: svn://10.0.0.236/trunk@20172 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 21:28:27 +00:00
dp%netscape.com
79ea35270e Removing wrong delete.
git-svn-id: svn://10.0.0.236/trunk@20171 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 21:21:30 +00:00
mscott%netscape.com
355b4331a7 Running SMTP urls should use a brand new transport and a brand new protocol instance for each url....
git-svn-id: svn://10.0.0.236/trunk@20170 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 21:19:09 +00:00
mscott%netscape.com
a6fedb424b Add some cleanup code to the protocol destructor....
git-svn-id: svn://10.0.0.236/trunk@20169 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 21:17:34 +00:00
dp%netscape.com
d1401ae1e7 Commenting FACTORY2
git-svn-id: svn://10.0.0.236/trunk@20168 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 21:06:34 +00:00
beard%netscape.com
95a77014e6 Removed an absolute path from optimized build's access paths. This could break the build.
git-svn-id: svn://10.0.0.236/trunk@20167 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 20:40:10 +00:00
dp%netscape.com
2dec274052 Major repository upgrade to use a presistent regitry. We use libreg/ directly (NR_*() functions) for now.
git-svn-id: svn://10.0.0.236/trunk@20166 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 20:31:24 +00:00
dp%netscape.com
c5216bcf50 Added new constructor that takes lastmodtime and size
git-svn-id: svn://10.0.0.236/trunk@20165 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 20:30:34 +00:00
dp%netscape.com
b2fdbf4cb4 variable id changes + commenting CreateInstance2()
git-svn-id: svn://10.0.0.236/trunk@20164 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 20:29:46 +00:00
dp%netscape.com
e205358e25 Hierarchy change for filemodifieddata and size
git-svn-id: svn://10.0.0.236/trunk@20163 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 20:28:54 +00:00
terry%netscape.com
676b7edbaf Figure out the secure URL in an apache-friendly manner.
git-svn-id: svn://10.0.0.236/trunk@20162 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 20:13:15 +00:00
alecf%netscape.com
9c60acb6ce update to new NSPR types, and make it build on Unix
git-svn-id: svn://10.0.0.236/trunk@20161 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 20:08:35 +00:00
erik%netscape.com
dc7eed33bc fixing the build bustage.
git-svn-id: svn://10.0.0.236/trunk@20160 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 20:01:44 +00:00
briano%netscape.com
36886026e8 Automated update
git-svn-id: svn://10.0.0.236/trunk@20159 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 19:45:41 +00:00
akkana%netscape.com
096e767f95 Add --enable-gprof flag to add -pg flag
git-svn-id: svn://10.0.0.236/trunk@20158 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 19:32:04 +00:00
erik%netscape.com
b2af9e1427 adding some string bundle testing code
git-svn-id: svn://10.0.0.236/trunk@20157 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 19:29:03 +00:00
erik%netscape.com
027b873ef5 adding viewer.properties to build for testing string bundle stuff
git-svn-id: svn://10.0.0.236/trunk@20156 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 19:27:04 +00:00
michaelp%netscape.com
2bd34cf543 added xregion.h (formerly known as region.h in the old xfe).
added support for enumerating over the rects of an XRegion.


git-svn-id: svn://10.0.0.236/trunk@20155 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 19:22:33 +00:00
erik%netscape.com
4d2b17f530 adding viewer.properties to build for testing string bundle stuff
git-svn-id: svn://10.0.0.236/trunk@20154 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 19:21:02 +00:00
terry%netscape.com
65c348f115 Last change wasn't working if grabbing multiple trees.
git-svn-id: svn://10.0.0.236/trunk@20153 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 19:13:40 +00:00
erik%netscape.com
acbb7712ae A new property file for "viewer", to test the string bundle stuff
git-svn-id: svn://10.0.0.236/trunk@20152 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 19:11:52 +00:00
kmcclusk%netscape.com
d2ec18b325 Added test_gfx to set of test files to export to res\samples
git-svn-id: svn://10.0.0.236/trunk@20151 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 18:41:47 +00:00
terry%netscape.com
e9f9c520c6 Don't put builds into quickparse that we have marked as "ignore".
git-svn-id: svn://10.0.0.236/trunk@20150 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 18:40:56 +00:00
kmcclusk%netscape.com
670fa86718 Added test_gfx.html file to test gfx rendering of form elements.
git-svn-id: svn://10.0.0.236/trunk@20149 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 18:36:04 +00:00
kmcclusk%netscape.com
35f21942b9 Undef'ed NS_GFX_RENDER_FORM_ELEMENTS
git-svn-id: svn://10.0.0.236/trunk@20148 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 18:31:41 +00:00
kmcclusk%netscape.com
15bf313676 Added rule for INPUT[type=radio] to set properties for gfx-rendered radio buttons.
git-svn-id: svn://10.0.0.236/trunk@20147 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 18:29:15 +00:00
kmcclusk%netscape.com
c5a5921a54 Added support to gfx-render radio buttons. Both checkboxes and radio buttons
now use CSS style to get colors for rendering. Checkboxes also use the CSS border rendering
code. Added New utility methods to nsFormControlFrame to PaintCircular backgrounds and
borders. Set compiler directive to gfx-render radiobuttons and checkboxes both for printing
and on-screen display.


git-svn-id: svn://10.0.0.236/trunk@20146 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 18:25:40 +00:00
rods%netscape.com
60ee060f62 Fixed problem with marshalling the window create method
git-svn-id: svn://10.0.0.236/trunk@20145 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 18:20:18 +00:00
ducarroz%netscape.com
c89e5197d3 Remove any reference to compose classes
git-svn-id: svn://10.0.0.236/trunk@20144 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 17:33:29 +00:00
kipp%netscape.com
7f58c1cf8f Whacked away nsBaseIBFrame and BLOCK_IS_INLINE cruft
git-svn-id: svn://10.0.0.236/trunk@20143 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 17:31:33 +00:00
kipp%netscape.com
ab01d56e79 Handle breaking before an anonymous block when the line isn't empty; push/pop inline reflow state so that floaters work properly
git-svn-id: svn://10.0.0.236/trunk@20142 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 17:31:14 +00:00
ftang%netscape.com
61f92897ed first check in
git-svn-id: svn://10.0.0.236/trunk@20141 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 16:04:07 +00:00
ftang%netscape.com
6b79d15f4c first chek in
git-svn-id: svn://10.0.0.236/trunk@20140 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 16:03:03 +00:00
ftang%netscape.com
8e43f2a2e9 check in interface and not working stub
git-svn-id: svn://10.0.0.236/trunk@20139 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 16:01:48 +00:00
ftang%netscape.com
624b1625b9 change ToTitle interface
git-svn-id: svn://10.0.0.236/trunk@20138 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 15:57:48 +00:00
terry%netscape.com
46b275078b Renamed "Rendering" to be "Compositor".
git-svn-id: svn://10.0.0.236/trunk@20137 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 15:48:30 +00:00
terry%netscape.com
371cb2fc61 Added FreeBSD.
git-svn-id: svn://10.0.0.236/trunk@20136 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 15:48:04 +00:00
shaver%netscape.com
f9888f9161 fix #define for generated headers
git-svn-id: svn://10.0.0.236/trunk@20135 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 15:30:31 +00:00
mcafee%netscape.com
5495555f65 Reverting back to 3.4
git-svn-id: svn://10.0.0.236/trunk@20134 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 12:27:07 +00:00
mcafee%netscape.com
09874be8dc Reverting back to 3.7
git-svn-id: svn://10.0.0.236/trunk@20133 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 12:26:27 +00:00
mcafee%netscape.com
18470b68ba reverting back to 3.2
git-svn-id: svn://10.0.0.236/trunk@20132 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 12:23:00 +00:00
mcafee%netscape.com
7b59ba0a02 Reverting back to 3.1
git-svn-id: svn://10.0.0.236/trunk@20131 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 12:18:30 +00:00
mcafee%netscape.com
68ad4de532 Solaris defines BROKEN_QSORT, removing explicit SOLARIS reference
git-svn-id: svn://10.0.0.236/trunk@20130 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 11:26:41 +00:00
mcafee%netscape.com
3e88623c12 Fixing mac bustage: XP_QSORT()
git-svn-id: svn://10.0.0.236/trunk@20129 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 11:22:47 +00:00
mcafee%netscape.com
d914fa40b4 Fixing XP_QSORT() breakage, we're using lib/xp/xp_qsort.cpp version now
git-svn-id: svn://10.0.0.236/trunk@20128 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 08:37:35 +00:00
grail%cafebabe.org
c193c19371 Layouts are now rearranged correctly.
git-svn-id: svn://10.0.0.236/trunk@20127 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 08:28:06 +00:00
mcafee%netscape.com
85a4bf1d8e Yanking XP_QSORT() out (Mac, Solaris) in favor of the version in /lib/xp/xp_qsort.c. Removing dead windows include files. a=pnunn@netscape.com (2998)
git-svn-id: svn://10.0.0.236/trunk@20126 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 08:19:24 +00:00
leaf%mozilla.org
0c9b70f32b Adding the glib/gtk+ updating script. and the directory readme.
git-svn-id: svn://10.0.0.236/trunk@20125 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 08:09:58 +00:00
grail%cafebabe.org
e174d58ed7 Fix minor "bug" in xml description.
git-svn-id: svn://10.0.0.236/trunk@20124 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 08:06:30 +00:00
grail%cafebabe.org
1e9c0a90e0 Build a panel presumably for dialogs and such.
git-svn-id: svn://10.0.0.236/trunk@20123 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 08:06:09 +00:00
grail%cafebabe.org
b2169c29b8 Restructured to accomodate parent class XMLWidgetBuilder.
git-svn-id: svn://10.0.0.236/trunk@20122 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 08:05:42 +00:00
grail%cafebabe.org
cb5423e712 Base object for UI builders from XML descriptions.
git-svn-id: svn://10.0.0.236/trunk@20121 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 08:05:17 +00:00
grail%cafebabe.org
3baae40304 Fixed char values used where bytes should be for switch
statement. Language sanity issues.


git-svn-id: svn://10.0.0.236/trunk@20120 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 08:04:42 +00:00
jband%netscape.com
c7dda3e1f6 NOT YET PART OF SEAMONKEY - now using types based on xpcom/src/libxpt/public/xpt_struct.h. Using nsIAllocator (which has an implementation hacked in in test/TestXPC.cpp - since the real one in xpcom/src is not being registered and used)
git-svn-id: svn://10.0.0.236/trunk@20119 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 07:31:00 +00:00
fur%netscape.com
1ba5cdbaf6 *** empty log message ***
git-svn-id: svn://10.0.0.236/trunk@20118 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 06:47:12 +00:00
fur%netscape.com
1a22639c79 Make g++ default C++ compiler
git-svn-id: svn://10.0.0.236/trunk@20117 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 06:47:00 +00:00
fur%netscape.com
534006a292 Remove C++ comment in C file
git-svn-id: svn://10.0.0.236/trunk@20116 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 06:46:12 +00:00
fur%netscape.com
310da7ba2f Kill routine that has name conflict w/ libc
git-svn-id: svn://10.0.0.236/trunk@20115 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 05:47:33 +00:00
fur%netscape.com
043794682b Wrong path for Packages binaries
git-svn-id: svn://10.0.0.236/trunk@20114 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 05:46:47 +00:00
troy%netscape.com
90c9d94a64 Added GetFrameType() member function
git-svn-id: svn://10.0.0.236/trunk@20113 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 05:44:13 +00:00
troy%netscape.com
5b4c0b3c70 Fix for bug #2661. Now handles the case where the root-frame has a fixed
height


git-svn-id: svn://10.0.0.236/trunk@20112 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 05:09:39 +00:00
bienvenu%netscape.com
37753945fc put linebreak defines here since I can't put them in nsCRT.h
git-svn-id: svn://10.0.0.236/trunk@20110 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 05:07:21 +00:00
bienvenu%netscape.com
375440882d back out linebreak defines
git-svn-id: svn://10.0.0.236/trunk@20109 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 05:06:35 +00:00
troy%netscape.com
80a11a7ad3 Fixed a silly error I introduced in the previous check-in
git-svn-id: svn://10.0.0.236/trunk@20108 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 05:01:11 +00:00
waterson%netscape.com
292b375a2f Made nsRDFContentUtils routines static members of a class. Made the tree builder more polite about creating cells. Made the tree builder look at the <xul:tree>'s <xul:treecol> elements for column info.
git-svn-id: svn://10.0.0.236/trunk@20107 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 04:59:11 +00:00
bienvenu%netscape.com
0df21a1729 add line buffering class
git-svn-id: svn://10.0.0.236/trunk@20106 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 04:46:12 +00:00
tague%netscape.com
a1e72bba1e Added autoregistration to Windows locale DLL
git-svn-id: svn://10.0.0.236/trunk@20105 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 04:44:23 +00:00
bienvenu%netscape.com
d280b1d9d7 add platform specific linebreak defines
git-svn-id: svn://10.0.0.236/trunk@20104 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 04:43:58 +00:00
tague%netscape.com
45bbaba878 Added XPCOM autoregistration to the Mac version of the locale shared object.
git-svn-id: svn://10.0.0.236/trunk@20103 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 04:31:32 +00:00
troy%netscape.com
c9a7e63cc4 Fixed a problem where absolutely positioned child frames with an 'auto'
offset weren't getting re-positioned during an incremental reflow of the
flowed items


git-svn-id: svn://10.0.0.236/trunk@20102 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 04:31:09 +00:00
warren%netscape.com
3da87a4b64 Moved NS_ERROR_MODULE_MAILNEWS to xpcom/public/nsError.h
git-svn-id: svn://10.0.0.236/trunk@20101 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 04:28:35 +00:00
warren%netscape.com
1ccbf85b35 Added NS_ERROR_MODULE_MAILNEWS
git-svn-id: svn://10.0.0.236/trunk@20100 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 04:28:17 +00:00
warren%netscape.com
3c55c995a0 Changed uses of MsgErr to nsresult. Moved CR LF macros to base/src/nsCRT.h.
git-svn-id: svn://10.0.0.236/trunk@20099 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 04:20:46 +00:00
warren%netscape.com
4f7018f975 Added CR LF defines for general use.
git-svn-id: svn://10.0.0.236/trunk@20098 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 04:19:58 +00:00
troy%netscape.com
d53851dcae Turned off some code until the frame construction code handles the case
where the replaced element that can't be rendered is floated or absolutely
positioned


git-svn-id: svn://10.0.0.236/trunk@20097 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 04:05:21 +00:00
mscott%netscape.com
64bf413f6a Bring first part of the smtp service online. We can now read in a file name and send the message to the SMTP server.
git-svn-id: svn://10.0.0.236/trunk@20096 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 03:51:50 +00:00
mscott%netscape.com
32270a048a Removing from directory as this has been moved to tests\smtp\smtpTest.cpp
git-svn-id: svn://10.0.0.236/trunk@20095 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 03:50:32 +00:00
mscott%netscape.com
75366daa97 Build nsSmtpProtocol.cpp...
git-svn-id: svn://10.0.0.236/trunk@20094 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 03:49:59 +00:00
mscott%netscape.com
6534d0c80b New method to post a file containing a message.
git-svn-id: svn://10.0.0.236/trunk@20093 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 03:49:31 +00:00
mscott%netscape.com
f231a9a4cb Many many changes. Most notably code to correctly parse a file containing an email message, append appropriate CRLFs and transmit the file to the SMTP server.
git-svn-id: svn://10.0.0.236/trunk@20092 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 03:48:56 +00:00
mscott%netscape.com
58d8ef8d01 Small changes. Added support for getting/setting a file name for the file to be posted.
git-svn-id: svn://10.0.0.236/trunk@20091 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 03:46:34 +00:00
warren%netscape.com
86885e81e1 Broke out IMAP stuff.
git-svn-id: svn://10.0.0.236/trunk@20090 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 03:45:02 +00:00
mscott%netscape.com
3174ee1055 Add accessors for getting/setting the file name for the email message to be posted.
git-svn-id: svn://10.0.0.236/trunk@20089 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 03:44:47 +00:00
srinivas%netscape.com
e0a0cd6cc0 Display nspr version info. by default.
git-svn-id: svn://10.0.0.236/trunk@20088 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 03:34:09 +00:00
srinivas%netscape.com
e2b9415d7c Code cleanup.
git-svn-id: svn://10.0.0.236/trunk@20087 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 03:30:29 +00:00
srinivas%netscape.com
269ea070e6 Reduce default thread count.
git-svn-id: svn://10.0.0.236/trunk@20086 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 03:29:40 +00:00
tague%netscape.com
b8067fe39e Added autoregistration to UNIX .so
git-svn-id: svn://10.0.0.236/trunk@20085 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 03:24:34 +00:00
mscott%netscape.com
7d91171fa6 Add values for CRLF....
git-svn-id: svn://10.0.0.236/trunk@20084 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 03:23:10 +00:00
mscott%netscape.com
4ef71a6086 Oops...one of my changes got lost...if you are reading in user data, don't write it into m_userData unless the user
actually entered a value...if you do write in it, we step on the default value which is alredy in m_userData...


git-svn-id: svn://10.0.0.236/trunk@20083 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 03:21:34 +00:00
waterson%netscape.com
7cc4e877a6 Removed tree widget demo: obsolete.
git-svn-id: svn://10.0.0.236/trunk@20082 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 03:17:03 +00:00
waterson%netscape.com
eeb0448b81 Removed RDF crap from nsSetupRegistry and made it automagically work by handling NSRegisterSelf() in rdf.dll
git-svn-id: svn://10.0.0.236/trunk@20081 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 03:16:51 +00:00
waterson%netscape.com
0893400c85 RDFDocument is now XULDocument.
git-svn-id: svn://10.0.0.236/trunk@20080 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 03:16:17 +00:00
waterson%netscape.com
991f41cbc8 Whacked to get RDF/XUL working right, with local content mderged in.
git-svn-id: svn://10.0.0.236/trunk@20079 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 03:15:41 +00:00
waterson%netscape.com
0c1cbba8b5 Moved RDF to after Layout TEMPORARILY while I static link to layout.dll for HTML elements. This'll go away once Vidur comes back from W3C and we figure out how to do this the right way.
git-svn-id: svn://10.0.0.236/trunk@20077 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 03:06:59 +00:00
alecf%netscape.com
9d63499817 Some headers aren't required after all.
reorder some of them and change HEADER_TOTAL to HEADER_LAST for consistency.


git-svn-id: svn://10.0.0.236/trunk@20076 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 02:55:39 +00:00
alecf%netscape.com
4c46192950 terminate posts with "."
move FORCE_PR_LOG above the include for msgCore so that we can log in release builds
remove unnecessary assert
get ready for the next state after we post the message


git-svn-id: svn://10.0.0.236/trunk@20075 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 02:54:44 +00:00
alecf%netscape.com
ed6c90e4cf fix up test harness for posting
git-svn-id: svn://10.0.0.236/trunk@20074 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 02:49:58 +00:00
warren%netscape.com
ea5a4dd249 Fixed to build on Windows.
git-svn-id: svn://10.0.0.236/trunk@20073 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 02:23:39 +00:00
ducarroz%netscape.com
787fd14b47 remove temporary directory compose
git-svn-id: svn://10.0.0.236/trunk@20072 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 02:14:58 +00:00
ducarroz%netscape.com
3dcdee1044 Original file was moved into .\smtp, this is in fact a first check in
git-svn-id: svn://10.0.0.236/trunk@20071 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 01:45:55 +00:00
ducarroz%netscape.com
4b6563df51 Add support for msgCompose & msgCompFields, change library name to compose instance of smtp
git-svn-id: svn://10.0.0.236/trunk@20070 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 01:42:18 +00:00
ducarroz%netscape.com
5b6c9575f2 Add support for msgCompose and msgCompFields
git-svn-id: svn://10.0.0.236/trunk@20069 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 01:40:25 +00:00
ducarroz%netscape.com
4f9ef9b8bd Add support for nsIMsgCompose & nsIMsgCompFields
git-svn-id: svn://10.0.0.236/trunk@20068 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 01:36:14 +00:00
ducarroz%netscape.com
1116648212 Add class id for msgcompose and msgcompfields
git-svn-id: svn://10.0.0.236/trunk@20067 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 01:34:53 +00:00
alecf%netscape.com
a0557c372e Ignore UNIX generated makefiles
git-svn-id: svn://10.0.0.236/trunk@20066 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 01:33:43 +00:00
ducarroz%netscape.com
19710e6cb7 add library compose.lib
git-svn-id: svn://10.0.0.236/trunk@20065 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 01:33:33 +00:00
ducarroz%netscape.com
410a4fb3b2 add directory compose to build process
git-svn-id: svn://10.0.0.236/trunk@20064 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 01:32:15 +00:00
ducarroz%netscape.com
7371a0b20f Initial check in
git-svn-id: svn://10.0.0.236/trunk@20063 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 01:28:32 +00:00
mscott%netscape.com
cc0c80339a Ooops...forgot to check this file in. I changed the arguments for ExtractRFC822Addresses
git-svn-id: svn://10.0.0.236/trunk@20062 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 01:23:34 +00:00
waterson%netscape.com
c042191a3f Exposed NS_CreateHTMLContent() as a temporary hack to get HTML-in-RDF/XUL working. Will re-visit when Vidur comes back.
git-svn-id: svn://10.0.0.236/trunk@20061 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 00:26:50 +00:00
ducarroz%netscape.com
fa79039824 Initial check in
git-svn-id: svn://10.0.0.236/trunk@20060 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 00:15:59 +00:00
troy%netscape.com
0b0f1e128c Fix for bug #3027. Correctly computes 'auto' margin values and allows them
to be negative


git-svn-id: svn://10.0.0.236/trunk@20059 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 00:15:43 +00:00
coop%netscape.com
4c886d1021 NOT YET PART OF SEAMONKEY:
* added function XPT_GetInterfaceIndexByName
* replaced remaining occurences of 'namespace' with 'name_space' to keep C++ happy
* added xpt_dump display for param types (in/out/retval)
* changed xpt_dump handling for wchar_t strings
* use shaver's print_IID function when displaying type descriptors
* removed DoAnnotations (not used)


git-svn-id: svn://10.0.0.236/trunk@20058 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 00:14:38 +00:00
fur%netscape.com
5c43b2b2c8 Gratuitous change to work around bug that appears in egcs 1.0.3
git-svn-id: svn://10.0.0.236/trunk@20056 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 00:08:41 +00:00
ducarroz%netscape.com
d4827fc15b Initial check in
git-svn-id: svn://10.0.0.236/trunk@20055 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 00:08:18 +00:00
pinkerton%netscape.com
74d0854e19 Rewrote reflow to handle collapsed/hidden toolbars correctly (but still not operational because of layout bugs).
git-svn-id: svn://10.0.0.236/trunk@20054 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 00:07:49 +00:00
fur%netscape.com
0924db5b2c Quash egcs warning
git-svn-id: svn://10.0.0.236/trunk@20053 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 00:07:20 +00:00
ducarroz%netscape.com
00f20e06da Initial check in
This file is temporary!


git-svn-id: svn://10.0.0.236/trunk@20052 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 00:05:39 +00:00
fur%netscape.com
c997567b07 Use OBJDIR naming scheme that is the same as NSPR's
git-svn-id: svn://10.0.0.236/trunk@20051 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 00:02:19 +00:00
fur%netscape.com
32a58be443 mkdepend rules now work again
git-svn-id: svn://10.0.0.236/trunk@20050 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 00:01:56 +00:00
fur%netscape.com
d48f035ca7 Don't assume that gcc is C compiler when computing dependencies
git-svn-id: svn://10.0.0.236/trunk@20049 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-09 00:01:02 +00:00
fur%netscape.com
4f0ec63e11 Got rid of problematic -fexceptions flag
git-svn-id: svn://10.0.0.236/trunk@20048 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-08 23:59:19 +00:00
fur%netscape.com
6303e2d00a Get rid of classpath during header generation. For now, depend on setting of CLASSPATH env variable.
git-svn-id: svn://10.0.0.236/trunk@20047 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-08 23:58:16 +00:00
fur%netscape.com
f1102dda23 Replaced outdated rules w/ new rules that are identical to NSPR's
git-svn-id: svn://10.0.0.236/trunk@20046 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-08 23:57:21 +00:00
racham%netscape.com
b49ac588de Widget name conflict resolved
git-svn-id: svn://10.0.0.236/trunk@20045 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-08 23:18:56 +00:00
alecf%netscape.com
54e5dd6ebc first shot at NNTP Newsgroup Post implementation...still have a few kinks to work out
git-svn-id: svn://10.0.0.236/trunk@20044 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-08 23:09:26 +00:00
alecf%netscape.com
5de0a0b637 make this newsheader valid for now
git-svn-id: svn://10.0.0.236/trunk@20043 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-08 23:05:05 +00:00
rods%netscape.com
ce29c66aab Back to 1.1 (sort of)
git-svn-id: svn://10.0.0.236/trunk@20040 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-08 22:15:08 +00:00
rods%netscape.com
170fe0fc97 Changed IIDs to be unique
git-svn-id: svn://10.0.0.236/trunk@20039 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-08 22:11:04 +00:00
waterson%netscape.com
29ef8e898c Fix strncmp() routines to handle unsigned integers properly. r=linss, a=sar.
git-svn-id: svn://10.0.0.236/trunk@20037 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-08 22:01:08 +00:00
jband%netscape.com
ebc5ecdc49 NOT PART OF SEAMONKEY - a bunch of fixes to get it building on win32
git-svn-id: svn://10.0.0.236/trunk@20036 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-08 21:47:35 +00:00
terry%netscape.com
305a9167c5 Added FreeBSD as a legal op_sys.
git-svn-id: svn://10.0.0.236/trunk@20035 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-08 21:12:31 +00:00
leaf%mozilla.org
a2f7523c10 mozilla/.cvsignore should get pulled
git-svn-id: svn://10.0.0.236/trunk@20033 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-08 20:43:24 +00:00
srinivas%netscape.com
24697ab983 Reduce default values of counters.
git-svn-id: svn://10.0.0.236/trunk@20030 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-08 20:28:30 +00:00
leaf%mozilla.org
fac186c4ad taking out configure (we want it to get updated)
git-svn-id: svn://10.0.0.236/trunk@20029 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-08 20:28:27 +00:00
srinivas%netscape.com
af87a2f248 Code cleanup.
git-svn-id: svn://10.0.0.236/trunk@20028 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-08 20:27:02 +00:00
srinivas%netscape.com
e1f581ea95 Build additional tests
git-svn-id: svn://10.0.0.236/trunk@20026 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-08 20:25:05 +00:00
briano%netscape.com
4fbdc2fc0f Automated update
git-svn-id: svn://10.0.0.236/trunk@20022 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-08 20:02:38 +00:00
alecf%netscape.com
6368fd01a7 add update-XTERM support to makefile code that enters directory, and update XPIDL rule to use new syntax
git-svn-id: svn://10.0.0.236/trunk@20021 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-08 19:59:25 +00:00
alecf%netscape.com
66e8dc8d8a add update_xterm_title support to autoconf build
git-svn-id: svn://10.0.0.236/trunk@20020 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-08 19:57:15 +00:00
cyeh%netscape.com
5342674ca9 First Checked In.
git-svn-id: svn://10.0.0.236/trunk@20019 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-08 19:56:02 +00:00
alecf%netscape.com
26cc387729 add new mail/news Makefiles to build list
git-svn-id: svn://10.0.0.236/trunk@20018 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-08 19:55:35 +00:00
shaver%netscape.com
165ac99ba0 move includes outside #ifdef for precompiled-header love, also PR_EXTERN_C
git-svn-id: svn://10.0.0.236/trunk@20017 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-08 19:48:48 +00:00
cyeh%netscape.com
59b7239e67 adding readme to explain what is in this directory
git-svn-id: svn://10.0.0.236/trunk@20016 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-08 19:37:56 +00:00
nhotta%netscape.com
48d61a4757 Output data print format change.
git-svn-id: svn://10.0.0.236/trunk@20015 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-08 19:21:44 +00:00
kipp%netscape.com
5aab0b92f0 Disable auto-registration of dll's for unix for now
git-svn-id: svn://10.0.0.236/trunk@20014 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-08 19:16:29 +00:00
sar%netscape.com
670211edd8 Initial checkin of test batch files.
git-svn-id: svn://10.0.0.236/trunk@20012 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-08 19:07:42 +00:00
ftang%netscape.com
801a4fe99f change upper and lower case operation to call unicharutil for the nonASCII case
git-svn-id: svn://10.0.0.236/trunk@20011 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-08 18:57:21 +00:00
terry%netscape.com
9c8f73a8f0 Patch by Patrick Amiel <amielp@netscape.com> -- spaces in filenames
was confusing some clients.  Made the JavaScript a bit more paranoid.


git-svn-id: svn://10.0.0.236/trunk@20010 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-08 18:56:24 +00:00
shaver%netscape.com
874949f141 Windows make goop
git-svn-id: svn://10.0.0.236/trunk@20009 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-08 18:34:54 +00:00
leaf%mozilla.org
cd319ad609 nspr should be getting pulled from the tip.
git-svn-id: svn://10.0.0.236/trunk@20008 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-08 18:22:36 +00:00
kipp%netscape.com
e5625c0d3e Fixed exit crash by no longer addref'ing the viewer; rewrote regression comparision code; removed filter stuff
git-svn-id: svn://10.0.0.236/trunk@20007 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-08 17:57:46 +00:00
kipp%netscape.com
eec0c667b8 Removed obsolete -filter argument
git-svn-id: svn://10.0.0.236/trunk@20006 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-08 17:57:00 +00:00
kipp%netscape.com
ea9460a146 Tweak regression data output
git-svn-id: svn://10.0.0.236/trunk@20005 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-08 17:56:23 +00:00
kipp%netscape.com
b8038d013a Revamp regression data dumping
git-svn-id: svn://10.0.0.236/trunk@20004 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-08 17:56:00 +00:00
kipp%netscape.com
ede9d759c2 Implement tree diffing and dumping of regression data
git-svn-id: svn://10.0.0.236/trunk@20003 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-08 17:55:29 +00:00
kipp%netscape.com
576d6d7c77 Revised API
git-svn-id: svn://10.0.0.236/trunk@20002 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-08 17:55:08 +00:00
shaver%netscape.com
c58a8bcaff Fixed native handling.
IDL-in-comments works again.
Quell some warnings (now -Wall happy!).


git-svn-id: svn://10.0.0.236/trunk@20001 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-08 17:47:44 +00:00
kin%netscape.com
da4ee1e1f6 Added test cases for TransactionManager's BeginBatch() and EndBatch() methods.
git-svn-id: svn://10.0.0.236/trunk@20000 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-08 17:30:30 +00:00
kin%netscape.com
1053817440 Added BeginBatch(), EndBatch(), BeginTransaction() and EndTransaction()
methods.


git-svn-id: svn://10.0.0.236/trunk@19999 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-08 17:29:43 +00:00
kin%netscape.com
df1d7e2808 Added BeginBatch(), EndBatch(), BeginTransaction() and EndTransaction()
methods. Modified Do() method to use Begin/EndTransaction().


git-svn-id: svn://10.0.0.236/trunk@19998 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-08 17:28:33 +00:00
kin%netscape.com
028413a836 Changed all occurences of !NS_SUCCEEDED() to NS_FAILED().
git-svn-id: svn://10.0.0.236/trunk@19997 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-08 17:28:08 +00:00
kin%netscape.com
f349160857 Added GetNumberOfChildren() method. Changed all occurences of !NS_SUCCEEDED()
to NS_FAILED(). Modified GetNumberOfUndoItems() and GetNumberOfRedoItems() to
handle the case where their stack is NULL.


git-svn-id: svn://10.0.0.236/trunk@19996 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-08 17:27:42 +00:00
dcone%netscape.com
13c504c824 Fixed bug
git-svn-id: svn://10.0.0.236/trunk@19995 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-08 17:23:59 +00:00
dcone%netscape.com
08e08e24bc Took out an method not used, that broke build
git-svn-id: svn://10.0.0.236/trunk@19994 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-08 17:13:33 +00:00
dcone%netscape.com
a583239a27 cleanup of nsIImage class. There were routines and methods no longer used or needed.
git-svn-id: svn://10.0.0.236/trunk@19993 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-08 16:34:56 +00:00
shaver%netscape.com
22f1e69f02 Added XPT_InterfaceDescriptorAddMethods to grow the method table.
Removed unused XPT_ALLOC macro.
Move XPT_SetDataOffset calls into XPT_DoHeader so that the API consumer doesn't
need to know about header sizing and IDE layout guck.
Handle NULL namespaces and interface_directory bits snd idents better.
Made xpt_dump show the the IID for interfaces.


git-svn-id: svn://10.0.0.236/trunk@19992 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-08 16:30:22 +00:00
mcafee%netscape.com
8dfb112feb Woops, no tests directory here
git-svn-id: svn://10.0.0.236/trunk@19991 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-08 09:44:22 +00:00
182 changed files with 5237 additions and 50870 deletions

View File

@@ -1,107 +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 "nsIContent.h"
#include "nsIDOMNode.h"
#include "nsIDOMNodeList.h"
static NS_DEFINE_IID(kIDOMNodeIID, NS_IDOMNODE_IID);
static NS_DEFINE_IID(kIDOMNodeListIID, NS_IDOMNODELIST_IID);
class RDFDOMNodeListImpl : public nsIDOMNodeList {
private:
nsIContent* mElement;
public:
RDFDOMNodeListImpl(nsIContent* element) : mElement(element) {
NS_IF_ADDREF(mElement);
}
virtual ~RDFDOMNodeListImpl(void) {
NS_IF_RELEASE(mElement);
}
// nsISupports interface
NS_DECL_ISUPPORTS
NS_DECL_IDOMNODELIST
};
NS_IMPL_ISUPPORTS(RDFDOMNodeListImpl, kIDOMNodeListIID);
NS_IMETHODIMP
RDFDOMNodeListImpl::GetLength(PRUint32* aLength)
{
PRInt32 count;
nsresult rv;
if (NS_FAILED(rv = mElement->ChildCount(count)))
return rv;
*aLength = count;
return NS_OK;
}
NS_IMETHODIMP
RDFDOMNodeListImpl::Item(PRUint32 aIndex, nsIDOMNode** aReturn)
{
// XXX naive. probably breaks when there are pseudo elements or something.
nsresult rv;
nsIContent* contentChild;
if (NS_FAILED(rv = mElement->ChildAt(aIndex, contentChild)))
return rv;
rv = contentChild->QueryInterface(kIDOMNodeIID, (void**) aReturn);
NS_RELEASE(contentChild);
return rv;
}
////////////////////////////////////////////////////////////////////////
nsresult
NS_NewRDFDOMNodeList(nsIDOMNodeList** aResult, nsIContent* aElement)
{
NS_PRECONDITION(aResult != nsnull, "null ptr");
if (! aResult)
return NS_ERROR_NULL_POINTER;
NS_PRECONDITION(aElement != nsnull, "null ptr");
if (! aElement)
return NS_ERROR_NULL_POINTER;
RDFDOMNodeListImpl* list = new RDFDOMNodeListImpl(aElement);
if (! list)
return NS_ERROR_OUT_OF_MEMORY;
NS_ADDREF(list);
*aResult = list;
return NS_OK;
}

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,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.
*/
/*
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);
nsresult
NS_NewXULContentSink(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,56 +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 \
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,47 +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)\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,315 +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:
nsIRDFService* mRDFService;
nsIRDFDataSource* mDataSource;
nsIRDFResource* mContainer;
nsIRDFNode* mNext;
PRInt32 mCounter;
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);
};
ContainerCursorImpl::ContainerCursorImpl(nsIRDFDataSource* ds,
nsIRDFResource* container)
: mDataSource(ds), mContainer(container), mNext(nsnull), mCounter(1)
{
NS_INIT_REFCNT();
NS_IF_ADDREF(mDataSource);
NS_IF_ADDREF(mContainer);
nsresult rv;
rv = nsServiceManager::GetService(kRDFServiceCID,
kIRDFServiceIID,
(nsISupports**) &mRDFService);
NS_ASSERTION(NS_SUCCEEDED(rv), "unable to acquire resource manager");
NS_ASSERTION(rdf_IsContainer(mDataSource, container), "not a container");
}
ContainerCursorImpl::~ContainerCursorImpl(void)
{
NS_IF_RELEASE(mNext);
if (mRDFService)
nsServiceManager::ReleaseService(kRDFServiceCID, mRDFService);
NS_IF_RELEASE(mContainer);
NS_IF_RELEASE(mDataSource);
}
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(mNext);
nsIRDFResource* RDF_nextVal = nsnull;
nsIRDFNode* nextNode = nsnull;
nsIRDFLiteral* nextVal = nsnull;
const PRUnichar* p;
nsAutoString s;
PRInt32 last;
PRInt32 err;
// XXX we could cache all this crap when the cursor gets created.
if (NS_FAILED(rv = mRDFService->GetResource(kURIRDF_nextVal, &RDF_nextVal)))
goto done;
if (NS_FAILED(rv = mDataSource->GetTarget(mContainer, RDF_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 mCounter has advanced past the
// last element
rv = NS_ERROR_RDF_CURSOR_EMPTY;
while (mCounter < last) {
nsIRDFResource* ordinalProperty = nsnull;
if (NS_FAILED(rv = GetPredicate(&ordinalProperty)))
break;
rv = mDataSource->GetTarget(mContainer, ordinalProperty, PR_TRUE, &mNext);
NS_IF_RELEASE(ordinalProperty);
++mCounter;
if (NS_SUCCEEDED(rv)) {
// Don't bother releasing mNext; we'll let the AddRef
// serve as the implicit addref that GetNext() should
// perform.
break;
}
}
done:
NS_IF_RELEASE(nextNode);
NS_IF_RELEASE(nextVal);
NS_IF_RELEASE(RDF_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");
nsAutoString s(kRDFNameSpaceURI);
s.Append("_");
s.Append(mCounter, 10);
// this'll AddRef(), null check, etc.
return mRDFService->GetUnicodeResource(s, aPredicate);
}
NS_IMETHODIMP
ContainerCursorImpl::GetObject(nsIRDFNode** aObject)
{
NS_PRECONDITION(aObject != nsnull, "null ptr");
if (! aObject)
return NS_ERROR_NULL_POINTER;
if (! mNext)
return NS_ERROR_UNEXPECTED;
NS_ADDREF(mNext);
*aObject = mNext;
return NS_OK;
}
NS_IMETHODIMP
ContainerCursorImpl::GetValue(nsIRDFNode** aObject)
{
NS_PRECONDITION(aObject != nsnull, "null ptr");
if (! aObject)
return NS_ERROR_NULL_POINTER;
if (! mNext)
return NS_ERROR_UNEXPECTED;
NS_ADDREF(mNext);
*aObject = mNext;
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;
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,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

View File

@@ -1,648 +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.
*/
/*
Implementations for a bunch of useful RDF utility routines. Many of
these will eventually be exported outside of RDF.DLL via the
nsIRDFService interface.
*/
#include "nsIRDFCursor.h"
#include "nsIRDFDataSource.h"
#include "nsIRDFNode.h"
#include "nsIRDFService.h"
#include "nsIServiceManager.h"
#include "nsRDFCID.h"
#include "nsString.h"
#include "plstr.h"
#include "rdfutil.h"
////////////////////////////////////////////////////////////////////////
// RDF core vocabulary
#include "rdf.h"
static const char kRDFNameSpaceURI[] = RDF_NAMESPACE_URI;
DEFINE_RDF_VOCAB(RDF_NAMESPACE_URI, RDF, Alt);
DEFINE_RDF_VOCAB(RDF_NAMESPACE_URI, RDF, Bag);
DEFINE_RDF_VOCAB(RDF_NAMESPACE_URI, RDF, Description);
DEFINE_RDF_VOCAB(RDF_NAMESPACE_URI, RDF, ID);
DEFINE_RDF_VOCAB(RDF_NAMESPACE_URI, RDF, RDF);
DEFINE_RDF_VOCAB(RDF_NAMESPACE_URI, RDF, Seq);
DEFINE_RDF_VOCAB(RDF_NAMESPACE_URI, RDF, about);
DEFINE_RDF_VOCAB(RDF_NAMESPACE_URI, RDF, aboutEach);
DEFINE_RDF_VOCAB(RDF_NAMESPACE_URI, RDF, bagID);
DEFINE_RDF_VOCAB(RDF_NAMESPACE_URI, RDF, instanceOf);
DEFINE_RDF_VOCAB(RDF_NAMESPACE_URI, RDF, li);
DEFINE_RDF_VOCAB(RDF_NAMESPACE_URI, RDF, resource);
DEFINE_RDF_VOCAB(RDF_NAMESPACE_URI, RDF, nextVal); // ad hoc way to make containers fast
////////////////////////////////////////////////////////////////////////
static NS_DEFINE_IID(kIRDFResourceIID, NS_IRDFRESOURCE_IID);
static NS_DEFINE_IID(kIRDFLiteralIID, NS_IRDFLITERAL_IID);
static NS_DEFINE_IID(kIRDFServiceIID, NS_IRDFSERVICE_IID);
static NS_DEFINE_CID(kRDFServiceCID, NS_RDFSERVICE_CID);
////////////////////////////////////////////////////////////////////////
// XXX This'll permanently leak
static nsIRDFService* gRDFService = nsnull;
static nsIRDFResource* kRDF_instanceOf = nsnull;
static nsIRDFResource* kRDF_Bag = nsnull;
static nsIRDFResource* kRDF_Seq = nsnull;
static nsIRDFResource* kRDF_Alt = nsnull;
static nsIRDFResource* kRDF_nextVal = nsnull;
static nsresult
rdf_EnsureRDFService(void)
{
if (gRDFService)
return NS_OK;
nsresult rv;
if (NS_FAILED(rv = nsServiceManager::GetService(kRDFServiceCID,
kIRDFServiceIID,
(nsISupports**) &gRDFService)))
goto done;
if (NS_FAILED(rv = gRDFService->GetResource(kURIRDF_instanceOf, &kRDF_instanceOf)))
goto done;
if (NS_FAILED(rv = gRDFService->GetResource(kURIRDF_Bag, &kRDF_Bag)))
goto done;
if (NS_FAILED(rv = gRDFService->GetResource(kURIRDF_Seq, &kRDF_Seq)))
goto done;
if (NS_FAILED(rv = gRDFService->GetResource(kURIRDF_Alt, &kRDF_Alt)))
goto done;
if (NS_FAILED(rv = gRDFService->GetResource(kURIRDF_nextVal, &kRDF_nextVal)))
goto done;
done:
if (NS_FAILED(rv)) {
NS_IF_RELEASE(kRDF_nextVal);
NS_IF_RELEASE(kRDF_Alt);
NS_IF_RELEASE(kRDF_Seq);
NS_IF_RELEASE(kRDF_Bag);
if (gRDFService) {
nsServiceManager::ReleaseService(kRDFServiceCID, gRDFService);
gRDFService = nsnull;
}
}
return rv;
}
////////////////////////////////////////////////////////////////////////
PRBool
rdf_IsOrdinalProperty(const nsIRDFResource* property)
{
const char* s;
if (NS_FAILED(property->GetValue(&s)))
return PR_FALSE;
nsAutoString uri = s;
if (uri.Find(kRDFNameSpaceURI) != 0)
return PR_FALSE;
nsAutoString tag(uri);
tag.Cut(0, sizeof(kRDFNameSpaceURI) - 1);
if (tag[0] != '_')
return PR_FALSE;
for (PRInt32 i = tag.Length() - 1; i >= 1; --i) {
if (tag[i] < '0' || tag[i] > '9')
return PR_FALSE;
}
return PR_TRUE;
}
PRBool
rdf_IsContainer(nsIRDFDataSource* ds,
nsIRDFResource* resource)
{
if (rdf_IsBag(ds, resource) ||
rdf_IsSeq(ds, resource) ||
rdf_IsAlt(ds, resource)) {
return PR_TRUE;
}
else {
return PR_FALSE;
}
}
PRBool
rdf_IsBag(nsIRDFDataSource* aDataSource,
nsIRDFResource* aResource)
{
PRBool result = PR_FALSE;
nsresult rv;
if (NS_FAILED(rv = rdf_EnsureRDFService()))
goto done;
rv = aDataSource->HasAssertion(aResource, kRDF_instanceOf, kRDF_Bag, PR_TRUE, &result);
done:
return result;
}
PRBool
rdf_IsSeq(nsIRDFDataSource* aDataSource,
nsIRDFResource* aResource)
{
PRBool result = PR_FALSE;
nsresult rv;
if (NS_FAILED(rv = rdf_EnsureRDFService()))
goto done;
rv = aDataSource->HasAssertion(aResource, kRDF_instanceOf, kRDF_Seq, PR_TRUE, &result);
done:
return result;
}
PRBool
rdf_IsAlt(nsIRDFDataSource* aDataSource,
nsIRDFResource* aResource)
{
PRBool result = PR_FALSE;
nsresult rv;
if (NS_FAILED(rv = rdf_EnsureRDFService()))
goto done;
rv = aDataSource->HasAssertion(aResource, kRDF_instanceOf, kRDF_Alt, PR_TRUE, &result);
done:
return result;
}
// A complete hack that looks at the string value of a node and
// guesses if it's a resource
static PRBool
rdf_IsResource(const nsString& s)
{
PRInt32 index;
// A URI needs a colon.
index = s.Find(':');
if (index < 0)
return PR_FALSE;
// Assume some sane maximum for protocol specs
#define MAX_PROTOCOL_SPEC 10
if (index > MAX_PROTOCOL_SPEC)
return PR_FALSE;
// It can't have spaces or newlines or tabs
if (s.Find(' ') > 0 || s.Find('\n') > 0 || s.Find('\t') > 0)
return PR_FALSE;
return PR_TRUE;
}
// 0. node, node, node
nsresult
rdf_Assert(nsIRDFDataSource* ds,
nsIRDFResource* subject,
nsIRDFResource* predicate,
nsIRDFNode* object)
{
NS_ASSERTION(ds, "null ptr");
NS_ASSERTION(subject, "null ptr");
NS_ASSERTION(predicate, "null ptr");
NS_ASSERTION(object, "null ptr");
#ifdef DEBUG
const char* s;
predicate->GetValue(&s);
printf(" %s", (strchr(s, '#') ? strchr(s, '#')+1 : s));
subject->GetValue(&s);
printf("(%s, ", s);
nsIRDFResource* objectResource;
nsIRDFLiteral* objectLiteral;
if (NS_SUCCEEDED(object->QueryInterface(kIRDFResourceIID, (void**) &objectResource))) {
objectResource->GetValue(&s);
printf(" %s)\n", s);
NS_RELEASE(objectResource);
}
else if (NS_SUCCEEDED(object->QueryInterface(kIRDFLiteralIID, (void**) &objectLiteral))) {
const PRUnichar* p;
objectLiteral->GetValue(&p);
nsAutoString s2(p);
char buf[1024];
printf(" %s)\n", s2.ToCString(buf, sizeof buf));
NS_RELEASE(objectLiteral);
}
#endif
return ds->Assert(subject, predicate, object, PR_TRUE);
}
// 1. string, string, string
nsresult
rdf_Assert(nsIRDFDataSource* ds,
const nsString& subjectURI,
const nsString& predicateURI,
const nsString& objectURI)
{
NS_ASSERTION(ds, "null ptr");
nsresult rv;
nsIRDFResource* subject;
if (NS_FAILED(rv = rdf_EnsureRDFService()))
return rv;
if (NS_FAILED(rv = gRDFService->GetUnicodeResource(subjectURI, &subject)))
return rv;
rv = rdf_Assert(ds, subject, predicateURI, objectURI);
NS_RELEASE(subject);
return rv;
}
// 2. node, node, string
nsresult
rdf_Assert(nsIRDFDataSource* ds,
nsIRDFResource* subject,
nsIRDFResource* predicate,
const nsString& objectURI)
{
NS_ASSERTION(ds, "null ptr");
NS_ASSERTION(subject, "null ptr");
nsresult rv;
nsIRDFNode* object;
if (NS_FAILED(rv = rdf_EnsureRDFService()))
return rv;
// XXX Make a guess *here* if the object should be a resource or a
// literal. If you don't like it, then call ds->Assert() yerself.
if (rdf_IsResource(objectURI)) {
nsIRDFResource* resource;
if (NS_FAILED(rv = gRDFService->GetUnicodeResource(objectURI, &resource)))
return rv;
object = resource;
}
else {
nsIRDFLiteral* literal;
if (NS_FAILED(rv = gRDFService->GetLiteral(objectURI, &literal)))
return rv;
object = literal;
}
rv = rdf_Assert(ds, subject, predicate, object);
NS_RELEASE(object);
return rv;
}
// 3. node, string, string
nsresult
rdf_Assert(nsIRDFDataSource* ds,
nsIRDFResource* subject,
const nsString& predicateURI,
const nsString& objectURI)
{
NS_ASSERTION(ds, "null ptr");
NS_ASSERTION(subject, "null ptr");
nsresult rv;
if (NS_FAILED(rv = rdf_EnsureRDFService()))
return rv;
nsIRDFResource* predicate;
if (NS_FAILED(rv = gRDFService->GetUnicodeResource(predicateURI, &predicate)))
return rv;
rv = rdf_Assert(ds, subject, predicate, objectURI);
NS_RELEASE(predicate);
return rv;
}
// 4. node, string, node
nsresult
rdf_Assert(nsIRDFDataSource* ds,
nsIRDFResource* subject,
const nsString& predicateURI,
nsIRDFNode* object)
{
NS_ASSERTION(ds, "null ptr");
NS_ASSERTION(subject, "null ptr");
NS_ASSERTION(object, "null ptr");
nsresult rv;
if (NS_FAILED(rv = rdf_EnsureRDFService()))
return rv;
nsIRDFResource* predicate;
if (NS_FAILED(rv = gRDFService->GetUnicodeResource(predicateURI, &predicate)))
return rv;
rv = rdf_Assert(ds, subject, predicate, object);
NS_RELEASE(predicate);
return rv;
}
// 5. string, string, node
nsresult
rdf_Assert(nsIRDFDataSource* ds,
const nsString& subjectURI,
const nsString& predicateURI,
nsIRDFNode* object)
{
NS_ASSERTION(ds, "null ptr");
nsresult rv;
if (NS_FAILED(rv = rdf_EnsureRDFService()))
return rv;
nsIRDFResource* subject;
if (NS_FAILED(rv = gRDFService->GetUnicodeResource(subjectURI, &subject)))
return rv;
rv = rdf_Assert(ds, subject, predicateURI, object);
NS_RELEASE(subject);
return rv;
}
nsresult
rdf_CreateAnonymousResource(const nsString& aContextURI, nsIRDFResource** result)
{
static PRUint32 gCounter = 0;
nsresult rv;
if (NS_FAILED(rv = rdf_EnsureRDFService()))
return rv;
do {
nsAutoString s(aContextURI);
s.Append("#$");
s.Append(++gCounter, 10);
nsIRDFResource* resource;
if (NS_FAILED(rv = gRDFService->GetUnicodeResource(s, &resource)))
return rv;
// XXX an ugly but effective way to make sure that this
// resource is really unique in the world.
nsrefcnt refcnt = resource->AddRef();
resource->Release();
if (refcnt == 2) {
*result = resource;
break;
}
} while (1);
return NS_OK;
}
PRBool
rdf_IsAnonymousResource(const nsString& aContextURI, nsIRDFResource* aResource)
{
nsresult rv;
const char* s;
if (NS_FAILED(rv = aResource->GetValue(&s))) {
NS_ASSERTION(PR_FALSE, "unable to get resource URI");
return PR_FALSE;
}
nsAutoString uri(s);
// Make sure that they have the same context (prefix)
if (uri.Find(aContextURI) != 0)
return PR_FALSE;
uri.Cut(0, aContextURI.Length());
// Anonymous resources look like the regexp "\$[0-9]+"
if (uri[0] != '#' || uri[1] != '$')
return PR_FALSE;
for (PRInt32 i = uri.Length() - 1; i >= 1; --i) {
if (uri[i] < '0' || uri[i] > '9')
return PR_FALSE;
}
return PR_TRUE;
}
PR_EXTERN(nsresult)
rdf_PossiblyMakeRelative(const nsString& aContextURI, nsString& aURI)
{
// This implementation is extremely simple: no ".." or anything
// fancy like that. If the context URI is not a prefix of the URI
// in question, we'll just bail.
if (aURI.Find(aContextURI) != 0)
return NS_OK;
// Otherwise, pare down the target URI, removing the context URI.
aURI.Cut(0, aContextURI.Length());
return NS_OK;
}
nsresult
rdf_MakeBag(nsIRDFDataSource* ds,
nsIRDFResource* bag)
{
NS_ASSERTION(ds, "null ptr");
NS_ASSERTION(bag, "null ptr");
nsresult rv;
// XXX check to see if someone else has already made this into a container.
if (NS_FAILED(rv = rdf_Assert(ds, bag, kURIRDF_instanceOf, kURIRDF_Bag)))
return rv;
if (NS_FAILED(rv = rdf_Assert(ds, bag, kURIRDF_nextVal, "1")))
return rv;
return NS_OK;
}
nsresult
rdf_MakeSeq(nsIRDFDataSource* ds,
nsIRDFResource* seq)
{
NS_ASSERTION(ds, "null ptr");
NS_ASSERTION(seq, "null ptr");
nsresult rv;
// XXX check to see if someone else has already made this into a container.
if (NS_FAILED(rv = rdf_Assert(ds, seq, kURIRDF_instanceOf, kURIRDF_Seq)))
return rv;
if (NS_FAILED(rv = rdf_Assert(ds, seq, kURIRDF_nextVal, "1")))
return rv;
return NS_OK;
}
nsresult
rdf_MakeAlt(nsIRDFDataSource* ds,
nsIRDFResource* alt)
{
NS_ASSERTION(ds, "null ptr");
NS_ASSERTION(alt, "null ptr");
nsresult rv;
// XXX check to see if someone else has already made this into a container.
if (NS_FAILED(rv = rdf_Assert(ds, alt, kURIRDF_instanceOf, kURIRDF_Alt)))
return rv;
if (NS_FAILED(rv = rdf_Assert(ds, alt, kURIRDF_nextVal, "1")))
return rv;
return NS_OK;
}
static nsresult
rdf_ContainerGetNextValue(nsIRDFDataSource* ds,
nsIRDFResource* container,
nsIRDFResource** result)
{
NS_ASSERTION(ds, "null ptr");
NS_ASSERTION(container, "null ptr");
nsresult rv;
if (NS_FAILED(rv = rdf_EnsureRDFService()))
return rv;
nsIRDFNode* nextValNode = nsnull;
nsIRDFLiteral* nextValLiteral = nsnull;
const PRUnichar* s;
nsAutoString nextValStr;
PRInt32 nextVal;
PRInt32 err;
// Get the next value, which hangs off of the bag via the
// RDF:nextVal property.
if (NS_FAILED(rv = ds->GetTarget(container, kRDF_nextVal, PR_TRUE, &nextValNode)))
goto done;
if (NS_FAILED(rv = nextValNode->QueryInterface(kIRDFLiteralIID, (void**) &nextValLiteral)))
goto done;
if (NS_FAILED(rv = nextValLiteral->GetValue(&s)))
goto done;
nextValStr = s;
nextVal = nextValStr.ToInteger(&err);
if (NS_FAILED(err))
goto done;
// Generate a URI that we can return.
nextValStr = kRDFNameSpaceURI;
nextValStr.Append("_");
nextValStr.Append(nextVal, 10);
if (NS_FAILED(rv = gRDFService->GetUnicodeResource(nextValStr, result)))
goto done;
// Now increment the RDF:nextVal property.
if (NS_FAILED(rv = ds->Unassert(container, kRDF_nextVal, nextValLiteral)))
goto done;
NS_RELEASE(nextValLiteral);
++nextVal;
nextValStr.Truncate();
nextValStr.Append(nextVal, 10);
if (NS_FAILED(rv = gRDFService->GetLiteral(nextValStr, &nextValLiteral)))
goto done;
if (NS_FAILED(rv = rdf_Assert(ds, container, kRDF_nextVal, nextValLiteral)))
goto done;
done:
NS_IF_RELEASE(nextValLiteral);
NS_IF_RELEASE(nextValNode);
return rv;
}
nsresult
rdf_ContainerAddElement(nsIRDFDataSource* ds,
nsIRDFResource* container,
nsIRDFNode* element)
{
NS_ASSERTION(ds, "null ptr");
NS_ASSERTION(container, "null ptr");
NS_ASSERTION(element, "null ptr");
nsresult rv;
nsIRDFResource* nextVal;
if (NS_FAILED(rv = rdf_ContainerGetNextValue(ds, container, &nextVal)))
goto done;
if (NS_FAILED(rv = rdf_Assert(ds, container, nextVal, element)))
goto done;
done:
return rv;
}

View File

@@ -1,192 +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);
/**
* 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 container.
*/
PR_EXTERN(nsresult)
rdf_ContainerAddElement(nsIRDFDataSource* ds,
nsIRDFResource* container,
nsIRDFNode* element);
/**
* 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,68 +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/LocalStore.rdf $(DIST)/bin/res/rdf
$(INSTALL) $(srcdir)/../resources/LocalStore.css $(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,81 +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 \
$(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\LocalStore.rdf $(DIST)\bin\res\rdf
$(MAKE_INSTALL) ..\resources\bookmarks.html $(DIST)\bin\res\rdf
$(MAKE_INSTALL) ..\resources\LocalStore.css $(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,262 +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 "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((nsIRDFContentSink**) &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,3 +0,0 @@
nsIRDFContent.h
nsIRDFContentModelBuilder.h
nsIRDFDocument.h

View File

@@ -1,37 +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 = \
nsIRDFContent.h \
nsIRDFContentModelBuilder.h \
nsIRDFDocument.h \
$(NULL)
EXPORTS := $(addprefix $(srcdir)/, $(EXPORTS))
include $(topsrcdir)/config/config.mk
include $(topsrcdir)/config/rules.mk

View File

@@ -1,30 +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 = \
nsIRDFContent.h \
nsIRDFContentModelBuilder.h \
nsIRDFDocument.h \
$(NULL)
include <$(DEPTH)/config/rules.mak>

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,86 +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 content type (to either text/rdf or text/xul)
*/
NS_IMETHOD SetContentType(const char* aContentType) = 0;
/**
* 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,64 +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 \
$(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,55 +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
CPP_OBJS=\
.\$(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,87 +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.
*/
#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
rdf_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,49 +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.
*/
/*
Utility routines used throughout the content model library.
*/
#ifndef nsRDFContentUtils_h__
#define nsRDFContentUtils_h__
#include "nsError.h"
class nsIContent;
class nsIDOMNodeList;
class nsIRDFNode;
class nsString;
nsresult
rdf_GetQuotedAttributeValue(const nsString& aSource,
const nsString& aAttribute,
nsString& aValue);
nsresult
rdf_AttachTextNode(nsIContent* parent, nsIRDFNode* value);
// In nsRDFDOMNodeList.cpp
extern nsresult
NS_NewRDFDOMNodeList(nsIDOMNodeList** aChildNodes, nsIContent* aElement);
#endif // nsRDFContentUtils_h__

View File

@@ -1,107 +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 "nsIContent.h"
#include "nsIDOMNode.h"
#include "nsIDOMNodeList.h"
static NS_DEFINE_IID(kIDOMNodeIID, NS_IDOMNODE_IID);
static NS_DEFINE_IID(kIDOMNodeListIID, NS_IDOMNODELIST_IID);
class RDFDOMNodeListImpl : public nsIDOMNodeList {
private:
nsIContent* mElement;
public:
RDFDOMNodeListImpl(nsIContent* element) : mElement(element) {
NS_IF_ADDREF(mElement);
}
virtual ~RDFDOMNodeListImpl(void) {
NS_IF_RELEASE(mElement);
}
// nsISupports interface
NS_DECL_ISUPPORTS
NS_DECL_IDOMNODELIST
};
NS_IMPL_ISUPPORTS(RDFDOMNodeListImpl, kIDOMNodeListIID);
NS_IMETHODIMP
RDFDOMNodeListImpl::GetLength(PRUint32* aLength)
{
PRInt32 count;
nsresult rv;
if (NS_FAILED(rv = mElement->ChildCount(count)))
return rv;
*aLength = count;
return NS_OK;
}
NS_IMETHODIMP
RDFDOMNodeListImpl::Item(PRUint32 aIndex, nsIDOMNode** aReturn)
{
// XXX naive. probably breaks when there are pseudo elements or something.
nsresult rv;
nsIContent* contentChild;
if (NS_FAILED(rv = mElement->ChildAt(aIndex, contentChild)))
return rv;
rv = contentChild->QueryInterface(kIDOMNodeIID, (void**) aReturn);
NS_RELEASE(contentChild);
return rv;
}
////////////////////////////////////////////////////////////////////////
nsresult
NS_NewRDFDOMNodeList(nsIDOMNodeList** aResult, nsIContent* aElement)
{
NS_PRECONDITION(aResult != nsnull, "null ptr");
if (! aResult)
return NS_ERROR_NULL_POINTER;
NS_PRECONDITION(aElement != nsnull, "null ptr");
if (! aElement)
return NS_ERROR_NULL_POINTER;
RDFDOMNodeListImpl* list = new RDFDOMNodeListImpl(aElement);
if (! list)
return NS_ERROR_OUT_OF_MEMORY;
NS_ADDREF(list);
*aResult = list;
return NS_OK;
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,398 +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 nsIRDFDocument implementation that builds an HTML-like model,
complete with text nodes. The model can be displayed in a vanilla
HTML content viewer by applying CSS2 styles to the text.
*/
#include "nsIDocument.h"
#include "nsIRDFCompositeDataSource.h"
#include "nsIRDFContent.h"
#include "nsIRDFContentModelBuilder.h"
#include "nsIRDFCursor.h"
#include "nsIRDFDocument.h"
#include "nsIRDFNode.h"
#include "nsIRDFService.h"
#include "nsIServiceManager.h"
#include "nsINameSpaceManager.h"
#include "nsISupportsArray.h"
#include "nsRDFContentUtils.h"
#include "rdfutil.h"
////////////////////////////////////////////////////////////////////////
static NS_DEFINE_IID(kIContentIID, NS_ICONTENT_IID);
static NS_DEFINE_IID(kIDocumentIID, NS_IDOCUMENT_IID);
static NS_DEFINE_IID(kIRDFResourceIID, NS_IRDFRESOURCE_IID);
static NS_DEFINE_IID(kIRDFLiteralIID, NS_IRDFLITERAL_IID);
static NS_DEFINE_IID(kIRDFContentModelBuilderIID, NS_IRDFCONTENTMODELBUILDER_IID);
////////////////////////////////////////////////////////////////////////
class RDFHTMLBuilderImpl : public nsIRDFContentModelBuilder
{
private:
nsIRDFDocument* mDocument;
nsIRDFCompositeDataSource* mDB;
public:
RDFHTMLBuilderImpl();
virtual ~RDFHTMLBuilderImpl();
// nsISupports interface
NS_DECL_ISUPPORTS
// nsIRDFContentModelBuilder interface
NS_IMETHOD SetDocument(nsIRDFDocument* aDocument);
NS_IMETHOD SetDataBase(nsIRDFCompositeDataSource* aDataBase);
NS_IMETHOD GetDataBase(nsIRDFCompositeDataSource** aDataBase);
NS_IMETHOD CreateRootContent(nsIRDFResource* aResource);
NS_IMETHOD SetRootContent(nsIContent* aElement);
NS_IMETHOD CreateContents(nsIContent* aElement);
NS_IMETHOD OnAssert(nsIRDFContent* aElement, nsIRDFResource* aProperty, nsIRDFNode* aValue);
NS_IMETHOD OnUnassert(nsIRDFContent* aElement, nsIRDFResource* aProperty, nsIRDFNode* aValue);
// Implementation methods
nsresult AddTreeChild(nsIRDFContent* aParent,
nsIRDFResource* property,
nsIRDFResource* value);
nsresult AddLeafChild(nsIRDFContent* parent,
nsIRDFResource* property,
nsIRDFLiteral* value);
PRBool IsTreeProperty(nsIRDFResource* aProperty);
};
////////////////////////////////////////////////////////////////////////
static nsIAtom* kIdAtom;
RDFHTMLBuilderImpl::RDFHTMLBuilderImpl(void)
: mDocument(nsnull),
mDB(nsnull)
{
NS_INIT_REFCNT();
if (nsnull == kIdAtom) {
kIdAtom = NS_NewAtom("ID");
}
else {
NS_ADDREF(kIdAtom);
}
}
RDFHTMLBuilderImpl::~RDFHTMLBuilderImpl(void)
{
nsrefcnt refcnt;
NS_RELEASE2(kIdAtom, refcnt);
NS_IF_RELEASE(mDB);
// NS_IF_RELEASE(mDocument) not refcounted
}
////////////////////////////////////////////////////////////////////////
NS_IMPL_ISUPPORTS(RDFHTMLBuilderImpl, kIRDFContentModelBuilderIID);
////////////////////////////////////////////////////////////////////////
nsresult
RDFHTMLBuilderImpl::AddTreeChild(nsIRDFContent* parent,
nsIRDFResource* property,
nsIRDFResource* value)
{
// If it's a tree property, then create a child element whose
// value is the value of the property. We'll also attach an "ID="
// attribute to the new child; e.g.,
//
// <parent>
// <property id="value">
// <!-- recursively generated -->
// </property>
// ...
// </parent>
nsresult rv;
PRInt32 nameSpaceID;
nsIAtom* tag = nsnull;
nsIRDFContent* child = nsnull;
const char* p;
if (NS_FAILED(rv = mDocument->SplitProperty(property, &nameSpaceID, &tag)))
goto done;
if (NS_FAILED(rv = NS_NewRDFResourceElement(&child, value, nameSpaceID, tag /* , PR_TRUE */)))
goto done;
if (NS_FAILED(rv = value->GetValue(&p)))
goto done;
if (NS_FAILED(rv = child->SetAttribute(kNameSpaceID_HTML, kIdAtom, p, PR_FALSE)))
goto done;
rv = parent->AppendChildTo(child, PR_TRUE);
done:
NS_IF_RELEASE(child);
NS_IF_RELEASE(tag);
return rv;
}
nsresult
RDFHTMLBuilderImpl::AddLeafChild(nsIRDFContent* parent,
nsIRDFResource* property,
nsIRDFLiteral* value)
{
// Otherwise, it's not a tree property. So we'll just create a
// new element for the property, and a simple text node for
// its value; e.g.,
//
// <parent>
// <property>value</property>
// ...
// </parent>
nsresult rv;
PRInt32 nameSpaceID;
nsIAtom* tag = nsnull;
nsIRDFContent* child = nsnull;
if (NS_FAILED(rv = mDocument->SplitProperty(property, &nameSpaceID, &tag)))
goto done;
if (NS_FAILED(rv = NS_NewRDFResourceElement(&child, property, nameSpaceID, tag /* , PR_FALSE */)))
goto done;
if (NS_FAILED(rv = parent->AppendChildTo(child, PR_TRUE)))
goto done;
rv = rdf_AttachTextNode(child, value);
done:
NS_IF_RELEASE(tag);
NS_IF_RELEASE(child);
return rv;
}
NS_IMETHODIMP
RDFHTMLBuilderImpl::SetDocument(nsIRDFDocument* aDocument)
{
NS_PRECONDITION(aDocument != nsnull, "null ptr");
if (! aDocument)
return NS_ERROR_NULL_POINTER;
NS_PRECONDITION(mDocument == nsnull, "already initialized");
if (mDocument)
return NS_ERROR_ALREADY_INITIALIZED;
mDocument = aDocument; // not refcounted
return NS_OK;
}
NS_IMETHODIMP
RDFHTMLBuilderImpl::SetDataBase(nsIRDFCompositeDataSource* aDataBase)
{
NS_PRECONDITION(aDataBase != nsnull, "null ptr");
if (! aDataBase)
return NS_ERROR_NULL_POINTER;
NS_PRECONDITION(mDB == nsnull, "already initialized");
if (mDB)
return NS_ERROR_ALREADY_INITIALIZED;
mDB = aDataBase;
NS_ADDREF(mDB);
return NS_OK;
}
NS_IMETHODIMP
RDFHTMLBuilderImpl::GetDataBase(nsIRDFCompositeDataSource** aDataBase)
{
NS_PRECONDITION(aDataBase != nsnull, "null ptr");
if (! aDataBase)
return NS_ERROR_NULL_POINTER;
*aDataBase = mDB;
NS_ADDREF(mDB);
return NS_OK;
}
NS_IMETHODIMP
RDFHTMLBuilderImpl::CreateRootContent(nsIRDFResource* aResource)
{
NS_PRECONDITION(mDocument != nsnull, "not initialized");
if (! mDocument)
return NS_ERROR_NOT_INITIALIZED;
nsresult rv;
nsIAtom* tag = nsnull;
nsIDocument* doc = nsnull;
nsIContent* root = nsnull;
nsIRDFContent* body = nsnull;
if (NS_FAILED(rv = mDocument->QueryInterface(kIDocumentIID, (void**) &doc)))
goto done;
rv = NS_ERROR_OUT_OF_MEMORY;
if ((tag = NS_NewAtom("DOCUMENT")) == nsnull)
goto done;
if (NS_FAILED(rv = NS_NewRDFGenericElement(&root, kNameSpaceID_None, tag)))
goto done;
doc->SetRootContent(NS_STATIC_CAST(nsIContent*, root));
NS_RELEASE(tag);
rv = NS_ERROR_OUT_OF_MEMORY;
if ((tag = NS_NewAtom("BODY")) == nsnull)
goto done;
// PR_TRUE indicates that children should be recursively generated on demand
if (NS_FAILED(rv = NS_NewRDFResourceElement(&body, aResource, kNameSpaceID_None, tag /* , PR_TRUE */)))
goto done;
if (NS_FAILED(rv = root->AppendChildTo(body, PR_FALSE)))
goto done;
done:
NS_IF_RELEASE(body);
NS_IF_RELEASE(root);
NS_IF_RELEASE(tag);
NS_IF_RELEASE(doc);
return NS_OK;
}
NS_IMETHODIMP
RDFHTMLBuilderImpl::SetRootContent(nsIContent* aElement)
{
NS_NOTYETIMPLEMENTED("write me");
return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP
RDFHTMLBuilderImpl::CreateContents(nsIContent* aElement)
{
NS_NOTYETIMPLEMENTED("Adapt the implementation from RDFTreeBuilderImpl");
return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP
RDFHTMLBuilderImpl::OnAssert(nsIRDFContent* parent,
nsIRDFResource* property,
nsIRDFNode* value)
{
NS_PRECONDITION(mDocument != nsnull, "not initialized");
if (! mDocument)
return NS_ERROR_NOT_INITIALIZED;
nsresult rv;
nsIRDFResource* valueResource;
if (NS_SUCCEEDED(rv = value->QueryInterface(kIRDFResourceIID, (void**) &valueResource))) {
// If it's a tree property or an RDF container, then add it as
// a tree child and return.
if (IsTreeProperty(property) || rdf_IsContainer(mDB, valueResource)) {
rv = AddTreeChild(parent, property, valueResource);
NS_RELEASE(valueResource);
return rv;
}
// Otherwise, fall through and add try to add it as a property
NS_RELEASE(valueResource);
}
nsIRDFLiteral* valueLiteral;
if (NS_SUCCEEDED(rv = value->QueryInterface(kIRDFLiteralIID, (void**) &valueLiteral))) {
rv = AddLeafChild(parent, property, valueLiteral);
NS_RELEASE(valueLiteral);
}
else {
return NS_OK; // ignore resources on the leaf.
}
return rv;
}
NS_IMETHODIMP
RDFHTMLBuilderImpl::OnUnassert(nsIRDFContent* parent,
nsIRDFResource* property,
nsIRDFNode* value)
{
PR_ASSERT(0);
return NS_ERROR_NOT_IMPLEMENTED;
}
PRBool
RDFHTMLBuilderImpl::IsTreeProperty(nsIRDFResource* aProperty)
{
// XXX This whole method is a mega-kludge. This should be read off
// of the element somehow...
#define TREE_PROPERTY_HACK
#if defined(TREE_PROPERTY_HACK)
const char* p;
aProperty->GetValue(&p);
nsAutoString s(p);
if (s.Equals(NC_NAMESPACE_URI "child") ||
s.Equals(NC_NAMESPACE_URI "Folder") ||
s.Equals(NC_NAMESPACE_URI "Columns") ||
s.Equals(RDF_NAMESPACE_URI "child")) {
return PR_TRUE;
}
#endif // defined(TREE_PROPERTY_HACK)
if (rdf_IsOrdinalProperty(aProperty)) {
return PR_TRUE;
}
return PR_FALSE;
}
////////////////////////////////////////////////////////////////////////
nsresult
NS_NewRDFHTMLBuilder(nsIRDFContentModelBuilder** result)
{
NS_PRECONDITION(result != nsnull, "null ptr");
if (! result)
return NS_ERROR_NULL_POINTER;
RDFHTMLBuilderImpl* builder = new RDFHTMLBuilderImpl();
if (! builder)
return NS_ERROR_OUT_OF_MEMORY;
NS_ADDREF(builder);
*result = builder;
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,996 +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 nsIRDFDocument implementation that builds a XUL content model.
TO DO
1) Make sure to hook up the code that keeps track of what content
nodes we're spying on. Ugh: one thing I just realized. By putting
this stuff in the content model builder, we've made it impossible
to cleanly release hidden nodes. We'll need a notification
mechanism for that...
2) Figure out how to drag in new builders to merge data from other
sources. I'm thinking something like just spying on the
<xul:treeitem> and <xul:treebody> tags for some magical
attribute...
*/
#include "nsCOMPtr.h"
#include "nsDebug.h"
#include "nsIAtom.h"
#include "nsIDocument.h"
#include "nsINameSpaceManager.h"
#include "nsIRDFContent.h"
#include "nsIRDFContentModelBuilder.h"
#include "nsIRDFCursor.h"
#include "nsIRDFCompositeDataSource.h"
#include "nsIRDFDocument.h"
#include "nsIRDFNode.h"
#include "nsIRDFObserver.h"
#include "nsIRDFService.h"
#include "nsIServiceManager.h"
#include "nsINameSpaceManager.h"
#include "nsIServiceManager.h"
#include "nsISupportsArray.h"
#include "nsLayoutCID.h"
#include "nsRDFCID.h"
#include "nsRDFContentUtils.h"
#include "nsString.h"
#include "rdf.h"
#include "rdfutil.h"
// XXX These are needed as scaffolding until we get to a more
// DOM-based solution.
#include "nsHTMLParts.h"
#include "nsIHTMLContent.h"
////////////////////////////////////////////////////////////////////////
static NS_DEFINE_IID(kIContentIID, NS_ICONTENT_IID);
static NS_DEFINE_IID(kIDocumentIID, NS_IDOCUMENT_IID);
static NS_DEFINE_IID(kINameSpaceManagerIID, NS_INAMESPACEMANAGER_IID);
static NS_DEFINE_IID(kIRDFContentIID, NS_IRDFCONTENT_IID);
static NS_DEFINE_IID(kIRDFContentModelBuilderIID, NS_IRDFCONTENTMODELBUILDER_IID);
static NS_DEFINE_IID(kIRDFCompositeDataSourceIID, NS_IRDFCOMPOSITEDATASOURCE_IID);
static NS_DEFINE_IID(kIRDFLiteralIID, NS_IRDFLITERAL_IID);
static NS_DEFINE_IID(kIRDFObserverIID, NS_IRDFOBSERVER_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(kNameSpaceManagerCID, NS_NAMESPACEMANAGER_CID);
static NS_DEFINE_CID(kRDFCompositeDataSourceCID, NS_RDFCOMPOSITEDATASOURCE_CID);
static NS_DEFINE_CID(kRDFServiceCID, NS_RDFSERVICE_CID);
static NS_DEFINE_CID(kRDFTreeBuilderCID, NS_RDFTREEBUILDER_CID);
////////////////////////////////////////////////////////////////////////
// standard vocabulary items
DEFINE_RDF_VOCAB(RDF_NAMESPACE_URI, RDF, type);
DEFINE_RDF_VOCAB(RDF_NAMESPACE_URI, RDF, child); // XXX bogus: needs to be NC:child
////////////////////////////////////////////////////////////////////////
class RDFXULBuilderImpl : public nsIRDFContentModelBuilder,
public nsIRDFObserver
{
private:
nsIRDFCompositeDataSource* mDB;
nsIRDFDocument* mDocument;
nsIContent* mRoot;
// pseudo-constants
static PRInt32 gRefCnt;
static nsIRDFService* gRDFService;
static PRInt32 kNameSpaceID_RDF;
static PRInt32 kNameSpaceID_XUL;
static nsIAtom* kContentsGeneratedAtom;
static nsIAtom* kDataSourcesAtom;
static nsIAtom* kIdAtom;
static nsIAtom* kTreeAtom;
static nsIRDFResource* kRDF_type;
static nsIRDFResource* kRDF_child; // XXX needs to become kNC_child
public:
RDFXULBuilderImpl();
virtual ~RDFXULBuilderImpl();
// nsISupports interface
NS_DECL_ISUPPORTS
// nsIRDFContentModelBuilder interface
NS_IMETHOD SetDocument(nsIRDFDocument* aDocument);
NS_IMETHOD SetDataBase(nsIRDFCompositeDataSource* aDataBase);
NS_IMETHOD GetDataBase(nsIRDFCompositeDataSource** aDataBase);
NS_IMETHOD CreateRootContent(nsIRDFResource* aResource);
NS_IMETHOD SetRootContent(nsIContent* aResource);
NS_IMETHOD CreateContents(nsIContent* aElement);
// nsIRDFObserver interface
NS_IMETHOD OnAssert(nsIRDFResource* aSubject, nsIRDFResource* aPredicate, nsIRDFNode* aObject);
NS_IMETHOD OnUnassert(nsIRDFResource* aSubject, nsIRDFResource* aPredicate, nsIRDFNode* aObjetct);
// Implementation methods
nsresult AppendChild(nsIContent* aElement,
nsIRDFNode* aValue);
nsresult CreateElement(nsIRDFResource* aResource,
nsIContent** aResult);
nsresult CreateHTMLElement(nsIRDFResource* aResource,
nsIAtom* aTag,
nsIContent** aResult);
nsresult CreateHTMLContents(nsIContent* aElement,
nsIRDFResource* aResource);
nsresult CreateXULElement(nsIRDFResource* aResource,
PRInt32 aNameSpaceID,
nsIAtom* aTag,
nsIContent** aResult);
nsresult AddAttribute(nsIContent* aElement,
nsIRDFResource* aProperty,
nsIRDFNode* aValue);
nsresult CreateTreeBuilder(nsIContent* aElement,
const nsString& aDataSources);
};
////////////////////////////////////////////////////////////////////////
// Pseudo-constants
PRInt32 RDFXULBuilderImpl::gRefCnt = 0;
nsIRDFService* RDFXULBuilderImpl::gRDFService = nsnull;
PRInt32 RDFXULBuilderImpl::kNameSpaceID_RDF = kNameSpaceID_Unknown;
PRInt32 RDFXULBuilderImpl::kNameSpaceID_XUL = kNameSpaceID_Unknown;
nsIAtom* RDFXULBuilderImpl::kContentsGeneratedAtom = nsnull;
nsIAtom* RDFXULBuilderImpl::kIdAtom = nsnull;
nsIAtom* RDFXULBuilderImpl::kDataSourcesAtom = nsnull;
nsIAtom* RDFXULBuilderImpl::kTreeAtom = nsnull;
nsIRDFResource* RDFXULBuilderImpl::kRDF_type = nsnull;
nsIRDFResource* RDFXULBuilderImpl::kRDF_child = nsnull;
////////////////////////////////////////////////////////////////////////
nsresult
NS_NewRDFXULBuilder(nsIRDFContentModelBuilder** result)
{
NS_PRECONDITION(result != nsnull, "null ptr");
if (! result)
return NS_ERROR_NULL_POINTER;
RDFXULBuilderImpl* builder = new RDFXULBuilderImpl();
if (! builder)
return NS_ERROR_OUT_OF_MEMORY;
NS_ADDREF(builder);
*result = builder;
return NS_OK;
}
RDFXULBuilderImpl::RDFXULBuilderImpl(void)
: mDB(nsnull),
mDocument(nsnull),
mRoot(nsnull)
{
NS_INIT_REFCNT();
if (gRefCnt++ == 0) {
nsresult rv;
nsINameSpaceManager* mgr;
if (NS_SUCCEEDED(rv = nsRepository::CreateInstance(kNameSpaceManagerCID,
nsnull,
kINameSpaceManagerIID,
(void**) &mgr))) {
// XXX This is sure to change. Copied from mozilla/layout/xul/content/src/nsXULAtoms.cpp
static const char kXULNameSpaceURI[]
= "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
static const char kRDFNameSpaceURI[]
= RDF_NAMESPACE_URI;
rv = mgr->RegisterNameSpace(kXULNameSpaceURI, kNameSpaceID_XUL);
NS_ASSERTION(NS_SUCCEEDED(rv), "unable to register XUL namespace");
rv = mgr->RegisterNameSpace(kRDFNameSpaceURI, kNameSpaceID_RDF);
NS_ASSERTION(NS_SUCCEEDED(rv), "unable to register RDF namespace");
NS_RELEASE(mgr);
}
else {
NS_ERROR("couldn't create namepsace manager");
}
kContentsGeneratedAtom = NS_NewAtom("contentsGenerated");
kIdAtom = NS_NewAtom("ID");
kDataSourcesAtom = NS_NewAtom("datasources");
kTreeAtom = NS_NewAtom("tree");
if (NS_SUCCEEDED(rv = nsServiceManager::GetService(kRDFServiceCID,
kIRDFServiceIID,
(nsISupports**) &gRDFService))) {
NS_VERIFY(NS_SUCCEEDED(gRDFService->GetResource(kURIRDF_type, &kRDF_type)),
"unable to get resource");
NS_VERIFY(NS_SUCCEEDED(gRDFService->GetResource(kURIRDF_child, &kRDF_child)),
"unable to get resource");
}
else {
NS_ERROR("couldn't get RDF service");
}
}
}
RDFXULBuilderImpl::~RDFXULBuilderImpl(void)
{
NS_IF_RELEASE(mRoot);
NS_IF_RELEASE(mDB);
// NS_IF_RELEASE(mDocument) not refcounted
if (--gRefCnt == 0) {
if (gRDFService)
nsServiceManager::ReleaseService(kRDFServiceCID, gRDFService);
NS_IF_RELEASE(kRDF_type);
NS_IF_RELEASE(kRDF_child);
NS_IF_RELEASE(kContentsGeneratedAtom);
NS_IF_RELEASE(kIdAtom);
NS_IF_RELEASE(kDataSourcesAtom);
NS_IF_RELEASE(kTreeAtom);
}
}
////////////////////////////////////////////////////////////////////////
NS_IMPL_ADDREF(RDFXULBuilderImpl);
NS_IMPL_RELEASE(RDFXULBuilderImpl);
NS_IMETHODIMP
RDFXULBuilderImpl::QueryInterface(REFNSIID iid, void** aResult)
{
NS_PRECONDITION(aResult != nsnull, "null ptr");
if (! aResult)
return NS_ERROR_NULL_POINTER;
if (iid.Equals(kIRDFContentModelBuilderIID) ||
iid.Equals(kISupportsIID)) {
*aResult = NS_STATIC_CAST(nsIRDFContentModelBuilder*, this);
NS_ADDREF(this);
return NS_OK;
}
else if (iid.Equals(kIRDFObserverIID)) {
*aResult = NS_STATIC_CAST(nsIRDFObserver*, this);
NS_ADDREF(this);
return NS_OK;
}
else {
*aResult = nsnull;
return NS_NOINTERFACE;
}
}
////////////////////////////////////////////////////////////////////////
// nsIRDFContentModelBuilder methods
NS_IMETHODIMP
RDFXULBuilderImpl::SetDocument(nsIRDFDocument* aDocument)
{
NS_PRECONDITION(aDocument != nsnull, "null ptr");
if (! aDocument)
return NS_ERROR_NULL_POINTER;
NS_PRECONDITION(mDocument == nsnull, "already initialized");
if (mDocument)
return NS_ERROR_ALREADY_INITIALIZED;
mDocument = aDocument; // not refcounted
return NS_OK;
}
NS_IMETHODIMP
RDFXULBuilderImpl::SetDataBase(nsIRDFCompositeDataSource* aDataBase)
{
NS_PRECONDITION(aDataBase != nsnull, "null ptr");
if (! aDataBase)
return NS_ERROR_NULL_POINTER;
NS_PRECONDITION(mDB == nsnull, "already initialized");
if (mDB)
return NS_ERROR_ALREADY_INITIALIZED;
mDB = aDataBase;
NS_ADDREF(mDB);
return NS_OK;
}
NS_IMETHODIMP
RDFXULBuilderImpl::GetDataBase(nsIRDFCompositeDataSource** aDataBase)
{
NS_PRECONDITION(aDataBase != nsnull, "null ptr");
if (! aDataBase)
return NS_ERROR_NULL_POINTER;
*aDataBase = mDB;
NS_ADDREF(mDB);
return NS_OK;
}
NS_IMETHODIMP
RDFXULBuilderImpl::CreateRootContent(nsIRDFResource* aResource)
{
NS_PRECONDITION(mDocument != nsnull, "not initialized");
if (! mDocument)
return NS_ERROR_NOT_INITIALIZED;
NS_PRECONDITION(aResource != nsnull, "null ptr");
if (! aResource)
return NS_ERROR_NULL_POINTER;
nsresult rv;
nsCOMPtr<nsIContent> root;
if (NS_FAILED(rv = CreateElement(aResource, getter_AddRefs(root)))) {
NS_ERROR("unable to create root element");
return rv;
}
// Now set it as the document's root content
nsCOMPtr<nsIDocument> doc;
if (NS_FAILED(rv = mDocument->QueryInterface(kIDocumentIID,
(void**) getter_AddRefs(doc)))) {
NS_ERROR("couldn't get nsIDocument interface");
return rv;
}
doc->SetRootContent(root);
mRoot = root;
NS_ADDREF(mRoot);
return NS_OK;
}
NS_IMETHODIMP
RDFXULBuilderImpl::SetRootContent(nsIContent* aElement)
{
NS_IF_RELEASE(mRoot);
mRoot = aElement;
NS_IF_ADDREF(mRoot);
return NS_OK;
}
NS_IMETHODIMP
RDFXULBuilderImpl::CreateContents(nsIContent* aElement)
{
nsresult rv;
// First, mark the elements contents as being generated so that
// any re-entrant calls don't trigger an infinite recursion.
if (NS_FAILED(rv = aElement->SetAttribute(kNameSpaceID_XUL,
kContentsGeneratedAtom,
"true",
PR_FALSE))) {
NS_ERROR("unable to set contents-generated attribute");
return rv;
}
// Get the treeitem's resource so that we can generate cell
// values. We could QI for the nsIRDFResource here, but doing this
// via the nsIContent interface allows us to support generic nodes
// that might get added in by DOM calls.
nsAutoString uri;
if (NS_FAILED(rv = aElement->GetAttribute(kNameSpaceID_RDF,
kIdAtom,
uri))) {
NS_ERROR("severe error retrieving attribute");
return rv;
}
if (rv != NS_CONTENT_ATTR_HAS_VALUE) {
NS_ERROR("tree element has no RDF:ID");
return NS_ERROR_UNEXPECTED;
}
nsCOMPtr<nsIRDFResource> resource;
if (NS_FAILED(rv = gRDFService->GetUnicodeResource(uri, getter_AddRefs(resource)))) {
NS_ERROR("unable to create resource");
return rv;
}
// Iterate through all of the XUL:child arcs, and construct
// appropriate children for each arc.
//
// XXX this is RDF:child for now; we should fix that...
nsCOMPtr<nsIRDFAssertionCursor> children;
if (NS_FAILED(rv = mDB->GetTargets(resource, kRDF_child, PR_TRUE, getter_AddRefs(children)))) {
NS_ERROR("unable to create cursor for children");
return rv;
}
while (NS_SUCCEEDED(rv = children->Advance())) {
nsCOMPtr<nsIRDFNode> child;
if (NS_FAILED(rv = children->GetObject(getter_AddRefs(child)))) {
NS_ERROR("error reading cursor");
return rv;
}
if (NS_FAILED(AppendChild(aElement, child))) {
NS_ERROR("problem appending child to content model");
return rv;
}
}
if (rv == NS_ERROR_RDF_CURSOR_EMPTY)
rv = NS_OK;
return rv;
}
NS_IMETHODIMP
RDFXULBuilderImpl::OnAssert(nsIRDFResource* aSubject,
nsIRDFResource* aPredicate,
nsIRDFNode* aObject)
{
NS_PRECONDITION(mDocument != nsnull, "not initialized");
if (! mDocument)
return NS_ERROR_NOT_INITIALIZED;
nsresult rv;
nsCOMPtr<nsISupportsArray> elements;
if (NS_FAILED(rv = NS_NewISupportsArray(getter_AddRefs(elements)))) {
NS_ERROR("unable to create new ISupportsArray");
return rv;
}
// Find all the elements in the content model that correspond to
// aSubject: for each, we'll try to build XUL children if
// appropriate.
if (NS_FAILED(rv = mDocument->GetElementsForResource(aSubject, elements))) {
NS_ERROR("unable to retrieve elements from resource");
return rv;
}
for (PRInt32 i = elements->Count() - 1; i >= 0; --i) {
nsCOMPtr<nsIContent> element(elements->ElementAt(i));
// XXX somehow figure out if building XUL kids on this
// particular element makes any sense whatsoever.
if (aPredicate == kRDF_child) {
// It's a child node. If the contents of aElement _haven't_
// yet been generated, then just ignore the assertion. We do
// this because we know that _eventually_ the contents will be
// generated (via CreateContents()) when somebody asks for
// them later.
nsAutoString contentsGenerated;
if (NS_FAILED(rv = element->GetAttribute(kNameSpaceID_XUL,
kContentsGeneratedAtom,
contentsGenerated))) {
NS_ERROR("severe problem trying to get attribute");
return rv;
}
if (rv == NS_CONTENT_ATTR_NOT_THERE || rv == NS_CONTENT_ATTR_NO_VALUE)
continue;
if (! contentsGenerated.EqualsIgnoreCase("true"))
continue;
// Okay, it's a "live" element, so go ahead and append the new
// child to this node.
if (NS_FAILED(AppendChild(element, aObject))) {
NS_ERROR("problem appending child to content model");
return rv;
}
}
else if (aPredicate == kRDF_type) {
// We shouldn't ever see this: if we do, there ain't much we
// can do.
NS_ERROR("attempt to change tag type after-the-fact");
return NS_ERROR_UNEXPECTED;
}
else {
// Add the thing as a vanilla attribute to the element.
if (NS_FAILED(rv = AddAttribute(element, aPredicate, aObject))) {
NS_ERROR("unable to add attribute to the element");
return rv;
}
}
}
return NS_OK;
}
NS_IMETHODIMP
RDFXULBuilderImpl::OnUnassert(nsIRDFResource* aSubject,
nsIRDFResource* aPredicate,
nsIRDFNode* aObject)
{
NS_NOTYETIMPLEMENTED("write me!");
return NS_ERROR_NOT_IMPLEMENTED;
}
////////////////////////////////////////////////////////////////////////
nsresult
RDFXULBuilderImpl::AppendChild(nsIContent* aElement,
nsIRDFNode* aValue)
{
nsresult rv;
// Add the specified node as a child container of this
// element. What we do will vary slightly depending on whether
// aValue is a resource or a literal.
nsCOMPtr<nsIRDFResource> resource;
nsCOMPtr<nsIRDFLiteral> literal;
if (NS_SUCCEEDED(rv = aValue->QueryInterface(kIRDFResourceIID,
(void**) getter_AddRefs(resource)))) {
// If it's a resource, then add it as a child container.
nsCOMPtr<nsIContent> child;
if (NS_FAILED(rv = CreateElement(resource, getter_AddRefs(child)))) {
NS_ERROR("unable to create new XUL element");
return rv;
}
if (NS_FAILED(rv = aElement->AppendChildTo(child, PR_TRUE))) {
NS_ERROR("unable to add element to content model");
return rv;
}
}
else if (NS_SUCCEEDED(rv = aValue->QueryInterface(kIRDFLiteralIID,
(void**) getter_AddRefs(literal)))) {
// If it's a literal, then add it as a simple text node.
if (NS_FAILED(rv = rdf_AttachTextNode(aElement, literal))) {
NS_ERROR("unable to add text to content model");
return rv;
}
}
else {
// This should _never_ happen
NS_ERROR("node is not a value or a resource");
return NS_ERROR_UNEXPECTED;
}
return NS_OK;
}
nsresult
RDFXULBuilderImpl::CreateElement(nsIRDFResource* aResource,
nsIContent** aResult)
{
nsresult rv;
// Split the resource into a namespace ID and a tag, and create
// a content element for it.
nsCOMPtr<nsIRDFNode> typeNode;
if (NS_FAILED(rv = mDB->GetTarget(aResource, kRDF_type, PR_TRUE, getter_AddRefs(typeNode)))) {
NS_ERROR("unable to get node's type");
return rv;
}
nsCOMPtr<nsIRDFResource> type;
if (NS_FAILED(rv = typeNode->QueryInterface(kIRDFResourceIID, getter_AddRefs(type)))) {
NS_ERROR("type wasn't a resource");
return rv;
}
PRInt32 nameSpaceID;
nsCOMPtr<nsIAtom> tag;
if (NS_FAILED(rv = mDocument->SplitProperty(type, &nameSpaceID, getter_AddRefs(tag)))) {
NS_ERROR("unable to split resource into namespace/tag pair");
return rv;
}
if (nameSpaceID == kNameSpaceID_HTML) {
return CreateHTMLElement(aResource, tag, aResult);
}
else {
return CreateXULElement(aResource, nameSpaceID, tag, aResult);
}
}
nsresult
RDFXULBuilderImpl::CreateHTMLElement(nsIRDFResource* aResource,
nsIAtom* aTag,
nsIContent** aResult)
{
nsresult rv;
// XXX This is where we go out and create the HTML content. It's a
// bit of a hack: a bridge until we get to a more DOM-based
// solution.
nsCOMPtr<nsIHTMLContent> element;
if (NS_FAILED(rv = NS_CreateHTMLElement(getter_AddRefs(element), aTag->GetUnicode()))) {
NS_ERROR("unable to create HTML element");
return rv;
}
{
// Force the document to be set _here_. Many of the
// AppendChildTo() implementations do not recursively ensure
// that the child's doc is the same as the parent's.
nsCOMPtr<nsIDocument> doc;
if (NS_FAILED(rv = mDocument->QueryInterface(kIDocumentIID, getter_AddRefs(doc)))) {
NS_ERROR("uh, this isn't a document!");
return rv;
}
if (NS_FAILED(rv = element->SetDocument(doc, PR_FALSE))) {
NS_ERROR("couldn't set document on the element");
return rv;
}
}
// Now iterate through all the properties and add them as
// attributes on the element. First, create a cursor that'll
// iterate through all the properties that lead out of this
// resource.
nsCOMPtr<nsIRDFArcsOutCursor> properties;
if (NS_FAILED(rv = mDB->ArcLabelsOut(aResource, getter_AddRefs(properties)))) {
NS_ERROR("unable to create arcs-out cursor");
return rv;
}
// Advance that cursor 'til it runs outta steam
while (NS_SUCCEEDED(rv = properties->Advance())) {
nsCOMPtr<nsIRDFResource> property;
if (NS_FAILED(rv = properties->GetPredicate(getter_AddRefs(property)))) {
NS_ERROR("unable to get property from cursor");
return rv;
}
// These are special beacuse they're used to specify the tree
// structure of the XUL: ignore them b/c they're not attributes
if (property == kRDF_type)
continue;
// Recursively generate child nodes NOW: we can't "dummy" up
// nsIHTMLContent.
if (property == kRDF_child) {
CreateHTMLContents(element, aResource);
continue;
}
// For each property, get its value: this will be the value of
// the new attribute.
nsCOMPtr<nsIRDFNode> value;
if (NS_FAILED(rv = mDB->GetTarget(aResource, property, PR_TRUE, getter_AddRefs(value)))) {
NS_ERROR("unable to get value for property");
return rv;
}
// Add the attribute to the newly constructed element
if (NS_FAILED(rv = AddAttribute(element, property, value))) {
NS_ERROR("unable to add attribute to element");
return rv;
}
}
if (rv == NS_ERROR_RDF_CURSOR_EMPTY) {
rv = NS_OK;
}
else if (NS_FAILED(rv)) {
// uh oh...
NS_ERROR("problem iterating properties");
return rv;
}
if (NS_FAILED(rv = element->QueryInterface(kIContentIID, (void**) aResult))) {
NS_ERROR("unable to get nsIContent interface");
return rv;
}
return NS_OK;
}
nsresult
RDFXULBuilderImpl::CreateHTMLContents(nsIContent* aElement,
nsIRDFResource* aResource)
{
nsresult rv;
nsCOMPtr<nsIRDFAssertionCursor> children;
if (NS_FAILED(rv = mDB->GetTargets(aResource, kRDF_child, PR_TRUE, getter_AddRefs(children)))) {
NS_ERROR("unable to create cursor for children");
return rv;
}
while (NS_SUCCEEDED(rv = children->Advance())) {
nsCOMPtr<nsIRDFNode> child;
if (NS_FAILED(rv = children->GetObject(getter_AddRefs(child)))) {
NS_ERROR("error reading cursor");
return rv;
}
if (NS_FAILED(AppendChild(aElement, child))) {
NS_ERROR("problem appending child to content model");
return rv;
}
}
if (rv == NS_ERROR_RDF_CURSOR_EMPTY)
rv = NS_OK;
return rv;
}
nsresult
RDFXULBuilderImpl::CreateXULElement(nsIRDFResource* aResource,
PRInt32 aNameSpaceID,
nsIAtom* aTag,
nsIContent** aResult)
{
nsresult rv;
nsCOMPtr<nsIRDFContent> element;
if (NS_FAILED(rv = NS_NewRDFResourceElement(getter_AddRefs(element),
aResource,
aNameSpaceID,
aTag))) {
NS_ERROR("unable to create new content element");
return rv;
}
// Now iterate through all the properties and add them as
// attributes on the element. First, create a cursor that'll
// iterate through all the properties that lead out of this
// resource.
nsCOMPtr<nsIRDFArcsOutCursor> properties;
if (NS_FAILED(rv = mDB->ArcLabelsOut(aResource, getter_AddRefs(properties)))) {
NS_ERROR("unable to create arcs-out cursor");
return rv;
}
// Advance that cursor 'til it runs outta steam
while (NS_SUCCEEDED(rv = properties->Advance())) {
nsCOMPtr<nsIRDFResource> property;
if (NS_FAILED(rv = properties->GetPredicate(getter_AddRefs(property)))) {
NS_ERROR("unable to get property from cursor");
return rv;
}
// These are special beacuse they're used to specify the tree
// structure of the XUL: ignore them b/c they're not attributes
if (property == kRDF_child || property == kRDF_type)
continue;
// For each property, set its value.
nsCOMPtr<nsIRDFNode> value;
if (NS_FAILED(rv = mDB->GetTarget(aResource, property, PR_TRUE, getter_AddRefs(value)))) {
NS_ERROR("unable to get value for property");
return rv;
}
// Add the attribute to the newly constructed element
if (NS_FAILED(rv = AddAttribute(element, property, value))) {
NS_ERROR("unable to add attribute to element");
return rv;
}
}
if (rv == NS_ERROR_RDF_CURSOR_EMPTY) {
rv = NS_OK;
}
else if (NS_FAILED(rv)) {
// uh oh...
NS_ERROR("problem iterating properties");
return rv;
}
// Make it a container so that its contents get recursively
// generated on-demand.
if (NS_FAILED(rv = element->SetContainer(PR_TRUE))) {
NS_ERROR("unable to make element a container");
return rv;
}
// There are some tags that we need to pay extra-special attention to...
if (aTag == kTreeAtom) {
nsAutoString dataSources;
if (NS_CONTENT_ATTR_HAS_VALUE ==
element->GetAttribute(kNameSpaceID_XUL,
kDataSourcesAtom,
dataSources)) {
rv = CreateTreeBuilder(element, dataSources);
NS_ASSERTION(NS_SUCCEEDED(rv), "unable to add datasources");
}
}
// Finally, assign the newly constructed element to the result
// pointer and addref it for the trip home.
*aResult = element;
NS_ADDREF(*aResult);
return NS_OK;
}
nsresult
RDFXULBuilderImpl::AddAttribute(nsIContent* aElement,
nsIRDFResource* aProperty,
nsIRDFNode* aValue)
{
nsresult rv;
// First, split the property into its namespace and tag components
PRInt32 nameSpaceID;
nsCOMPtr<nsIAtom> tag;
if (NS_FAILED(rv = mDocument->SplitProperty(aProperty, &nameSpaceID, getter_AddRefs(tag)))) {
NS_ERROR("unable to split resource into namespace/tag pair");
return rv;
}
nsCOMPtr<nsIRDFResource> resource;
nsCOMPtr<nsIRDFLiteral> literal;
// Now we need to figure out the attributes value and actually set
// it on the element. What we do differs a bit depending on
// whether we're aValue is a resource or a literal.
if (NS_SUCCEEDED(rv = aValue->QueryInterface(kIRDFResourceIID,
(void**) getter_AddRefs(resource)))) {
const char* uri;
resource->GetValue(&uri);
rv = aElement->SetAttribute(nameSpaceID, tag, uri, PR_TRUE);
}
else if (NS_SUCCEEDED(rv = aValue->QueryInterface(kIRDFLiteralIID,
(void**) getter_AddRefs(literal)))) {
const PRUnichar* s;
literal->GetValue(&s);
rv = aElement->SetAttribute(nameSpaceID, tag, s, PR_TRUE);
}
else {
// This should _never_ happen.
NS_ERROR("uh, this isn't a resource or a literal!");
rv = NS_ERROR_UNEXPECTED;
}
return rv;
}
nsresult
RDFXULBuilderImpl::CreateTreeBuilder(nsIContent* aElement,
const nsString& aDataSources)
{
nsresult rv;
// construct a new builder
nsCOMPtr<nsIRDFContentModelBuilder> builder;
if (NS_FAILED(rv = nsRepository::CreateInstance(kRDFTreeBuilderCID,
nsnull,
kIRDFContentModelBuilderIID,
(void**) getter_AddRefs(builder)))) {
NS_ERROR("unable to create tree content model builder");
return rv;
}
if (NS_FAILED(rv = builder->SetRootContent(aElement))) {
NS_ERROR("unable to set builder's root content element");
return rv;
}
// create a database for the builder
nsCOMPtr<nsIRDFCompositeDataSource> db;
if (NS_FAILED(rv = nsRepository::CreateInstance(kRDFCompositeDataSourceCID,
nsnull,
kIRDFCompositeDataSourceIID,
(void**) getter_AddRefs(db)))) {
NS_ERROR("unable to construct new composite data source");
return rv;
}
// Parse datasources: they are assumed to be a whitespace
// separated list of URIs; e.g.,
//
// rdf:bookmarks rdf:history http://foo.bar.com/blah.cgi?baz=9
//
PRInt32 first = 0;
while(1) {
while (first < aDataSources.Length() && nsString::IsSpace(aDataSources[first]))
++first;
if (first >= aDataSources.Length())
break;
PRInt32 last = first;
while (last < aDataSources.Length() && !nsString::IsSpace(aDataSources[last]))
++last;
nsAutoString uri;
aDataSources.Mid(uri, first, last - first);
first = last + 1;
nsCOMPtr<nsIRDFDataSource> ds;
// Some monkey business to convert the nsAutoString to a
// C-string safely. Sure'd be nice to have this be automagic.
{
char buf[256], *p = buf;
if (uri.Length() >= sizeof(buf))
p = new char[uri.Length() + 1];
uri.ToCString(p, uri.Length() + 1);
rv = gRDFService->GetDataSource(p, getter_AddRefs(ds));
if (p != buf)
delete[] p;
}
if (NS_FAILED(rv)) {
// This is only a warning because the data source may not
// be accessable for any number of reasons, including
// security, a bad URL, etc.
NS_WARNING("unable to load datasource");
continue;
}
if (NS_FAILED(rv = db->AddDataSource(ds))) {
NS_ERROR("unable to add datasource to composite data source");
return rv;
}
}
if (NS_FAILED(rv = builder->SetDataBase(db))) {
NS_ERROR("unable to set builder's database");
return rv;
}
// add it to the set of builders in use by the document
if (NS_FAILED(rv = mDocument->AddContentModelBuilder(builder))) {
NS_ERROR("unable to add builder to the document");
return rv;
}
return NS_OK;
}

File diff suppressed because it is too large Load Diff

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,2 +0,0 @@
nsIRDFMail.h

View File

@@ -1,35 +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 = \
nsIRDFMail.h \
$(NULL)
EXPORTS := $(addprefix $(srcdir)/, $(EXPORTS))
include $(topsrcdir)/config/config.mk
include $(topsrcdir)/config/rules.mk

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