Commit Graph

372 Commits

Author SHA1 Message Date
David Zbarsky
0aa6350041 Bug 488249. Replace IsNodeOfType(eHTML) checks with namespace checks. r+sr=jst 2009-08-24 16:02:07 -04:00
L. David Baron
7fbb9db0a5 Separate RuleProcessorData and derived structs into their own header file to reduce include dependencies. (Bug 435441) r=bzbarsky
--HG--
rename : layout/style/nsIStyleRuleProcessor.h => layout/style/nsRuleProcessorData.h
2009-08-01 08:53:40 -07:00
Boris Zbarsky
01352aa657 Bug 475986. Make text-align:start work on <html:th> correctly. r+sr=dbaron 2009-02-05 22:48:29 -05:00
Arpad Borsos
c72ef7d248 Bug 456388 - Remove PR_STATIC_CALLBACK and PR_CALLBACK(_DECL) from the tree; r+sr=brendan 2008-10-10 17:04:34 +02:00
L. David Baron
425e04d23f Fix use of incorrect variable, and harmless but valgrind-noisy use of variables in incorrect order. (Bug 455093) 2008-09-12 20:45:37 -07:00
Zack Weinberg
0299bad5bb Bug 453916: treat transparency strictly as a special case of color alpha. r+sr=dbaron 2008-09-12 08:35:53 -07:00
L. David Baron
8cd01e114a Implement media queries, part 3: infrastructure for dynamic change handling at the rule processor and style set level. (Bug 156716) r+sr=bzbarsky 2008-07-26 09:14:48 -07:00
L. David Baron
b8715023f7 Implement Media Queries, part 2: infrastructure for dynamic change handling at the rule cascade and style sheet level. (Bug 156716) r+sr=bzbarsky 2008-07-26 09:14:48 -07:00
dwitte@stanford.edu
7e454eebf6 get rid of nsStyleStruct base type. b=408933, r+sr=dbaron, a=beltzner 2008-01-10 12:56:49 -08:00
bzbarsky@mit.edu
15bd8eb8f4 Don't allow presentational attributes to set colors if the "don't use document colors" pref is set. Bug 400452, r+sr=dbaron 2007-11-15 19:46:42 -08:00
dbaron@dbaron.org
2bc4978388 Allow MapRuleInfoInto to map data for multiple structs at the same time. b=240117 r+sr=bzbarsky a=roc 2007-10-08 14:58:22 -07:00
bzbarsky@mit.edu
4d53ccf996 Make attribute changes that also cause a state change properly reresolve style
when a selector uses both the state and the attribute.  Bug 315920, r=dbaron,
sr=sicking.
2007-07-12 13:05:45 -07:00
jwalden@mit.edu
6d7584839a Bug 348748 - Replace all instances of NS_STATIC_CAST and friends with C++ casts (and simultaneously bitrot nearly every patch in existence). r=bsmedberg on the script that did this. Tune in next time for Macro Wars: Episode II: Attack on the LL_* Macros. 2007-07-08 00:08:04 -07:00
dbaron@dbaron.org
d98d9fdec5 Remove unused getKey callback from PLDHashTableOps/JSDHashTableOps. b=374906 r=bsmedberg 2007-03-27 08:33:38 -07:00
sharparrow1%yahoo.com
76a64e5c22 Bug 177805: Fix the use of units in Gecko. r+sr=roc 2007-02-07 07:46:44 +00:00
jwatt%jwatt.org
bbb6339dc9 Fixing bug 334587. Unify event handling for links and fix various XLink bugs. r=olli.pettay@gmail.com, r=dbaron@mozilla.com, sr=bugmail@sicking.cc 2007-01-04 10:53:59 +00:00
timeless%mozdev.org
4e651390ef Bug 355300 There should be only one nsGkAtoms creature
r=dbaron
2006-12-26 17:47:52 +00:00
bzbarsky%mit.edu
b1cb55508a Fix col border drawing for cols that are explicitly in the source. Bug 350444,
r=bernd, sr=roc
2006-11-13 15:46:52 +00:00
bzbarsky%mit.edu
c72fb8dce5 Fix bug 349695 by taking a different approach to setting display:none on HTML
forms inside tables; this approach overrides author styles.  r+sr=dbaron
2006-08-25 22:33:17 +00:00
bzbarsky%mit.edu
494d0f60ff Address review comments from bug 285727. Bug 348455, r+sr=dbaron 2006-08-16 00:28:39 +00:00
cvshook%sicking.cc
3a9a287253 Bug 344050: Kill nsITextContent and move the methods to nsIContent. r/sr=jst 2006-07-19 04:36:36 +00:00
bmlk%gmx.de
5c43019aa0 remove crash prone from hack from frame construction and replace it with a hardcoded style rule bug 285727 r/sr=bzbarsky 2006-05-14 13:34:32 +00:00
cvshook%sicking.cc
d3ec0aa5c5 Bug 335911: Change nsIContent::IsContentOfType to nsINode::IsNodeOfType. r/sr=bz 2006-05-05 06:52:21 +00:00
dbaron%dbaron.org
30f8db359a File comments that show up in LXR and provide a quick summary of what's in each file. 2006-03-25 05:47:31 +00:00
bryner%brianryner.com
7a96206e10 Clean up header includes (bug 331050). This round of changes deals with some of the public content headers, and factors nsDOMClassInfoID out of nsIDOMClassInfo.h so that nsContentUtils.h doesn't have to bring in XPConnect. r+sr=jst. 2006-03-22 18:36:36 +00:00
bzbarsky%mit.edu
d44ad313ae Remove nsIStyledContent. Bug 313968, r=sicking, r=dbaron on nsCSSStyleSheet
changes, sr=jst
2005-11-02 00:41:51 +00:00
bryner%brianryner.com
1226dbed26 Convert CSSGroupRule and CSSStyleSheet to use nsCOMArray. Bug 312491, r+sr=bzbarsky. 2005-10-15 20:21:20 +00:00
bzbarsky%mit.edu
0d6a610963 Make nsIPresShell::GetPrimaryFrameFor return nsIFrame* instead of using an out
param.  Bug 303779, patch by Bastiaan Jacques <b.jacques@planet.nl>, r+sr=bzbarsky
2005-08-22 22:24:29 +00:00
roc+%cs.cmu.edu
c3ea09b7b0 Bug 78510. Maintain a per-document hashmap from URI-spec-hash to set of pointers to content elements that are links to those URIs whose state has been queried by the style system. Use this map to efficiently mark visited any links to URIs which get visited. r+sr=dbaron, with input from bryner and bzbarsky, a=jesup with support from dbaron. May impact Tp and other metrics, be careful out there. 2005-08-10 20:21:44 +00:00
bzbarsky%mit.edu
e61e1e1935 Fix border width inheritance by keeping track of both the border width we'd
have if our style were not none/hidden and the actual computed border width.
Bug 290377, r+sr=dbaron, a=asa
2005-04-29 15:44:38 +00:00
dbaron%dbaron.org
4b1913ff77 Consolidate and deCOMtaminate parsing and storage of media lists. b=156716 r+sr=bzbarsky 2005-03-30 00:36:57 +00:00
dbaron%dbaron.org
976fc758a4 Remove nsIStyleRule::GetStyleSheet (and move it to nsICSSRule). b=266991 r+sr=bzbarsky 2004-10-31 17:33:50 +00:00
bmlk%gmx.de
9dbd8b92be reorganize CalCDominantBorder, reduce the number of arguments, change the border structure. make the rules handling more evident, bug 229883, With more than a little help from my friends (fantasai, boris) r/sr=bzbarsky
bustage fix
2004-10-09 12:25:31 +00:00
dbaron%dbaron.org
96c0e36f4e Separate concept of stylesheet URI into base URI (for resolving relative links) and sheet URI (for everything else), since they can differ for style elements (and inline style and style set from script, but that's for the next patch). Some other things (relating to external stylesheets, where it doesn't make a difference) that probably should use the sheet URL are left as the base URL for now because I didn't want to change too much at once. b=255538 r+sr=bzbarsky 2004-09-10 06:45:59 +00:00
dbaron%dbaron.org
d35f39cc02 Implement @-moz-document at-rule for site-specific rules, particularly in user stylesheets. b=238099 r+sr=bzbarsky 2004-08-05 18:26:14 +00:00
bryner%brianryner.com
6a8c79a9b2 Remove non-inlined version of nsIPresShell::GetDocument(). Bug 253889, r+sr=roc. 2004-08-02 04:52:55 +00:00
bryner%brianryner.com
5c02a6978c Change nsIPresContext to nsPresContext globally, follow-up to bug 253470. rs=roc 2004-07-31 23:15:21 +00:00
bryner%brianryner.com
0fd21c3872 Consolidate PresContext classes into a single nsIPresContext implementation, and finish deCOMtaminating it. Bug 253470, r+sr=roc. 2004-07-29 19:41:39 +00:00
dbaron%dbaron.org
2faa2566a0 Move things that aren't author stylesheets out of nsDocument's mStyleSheets array to simplify stylesheet management code. Add a level of the cascade for style attributes and ensure that there's only one rule processor per level of the cascade, and simplify the logic of nsCSSRuleProcessor creation. b=252578 r+sr=bzbarsky 2004-07-28 07:08:41 +00:00
dbaron%dbaron.org
cdfbc24f0a Reduce headers brought in by nsRuleNode.h. Split nsRuleData into its own file. b=64023 r+sr=bzbarsky 2004-07-20 06:11:27 +00:00
roc+%cs.cmu.edu
0f4150a4e5 Bug 226439. Convert codebase to use AppendLiteral/AssignLiteral/LowerCaseEqualsLiteral. r+sr=darin 2004-06-17 00:13:25 +00:00
gerv%gerv.net
9d2ee4928c Bug 236613: change to MPL/LGPL/GPL tri-license. 2004-04-17 21:52:36 +00:00
dbaron%dbaron.org
4d12ed012a De-COM-ify nsHTMLStyleSheet. b=239008 r+sr=bryner 2004-04-12 21:56:09 +00:00
dbaron%dbaron.org
f016bec80e Improve comments and function names related to attribute mapping and HasAttributeDependentStyle. b=235342 r+sr=jst 2004-02-25 21:04:50 +00:00
sicking%bigfoot.com
1152b3d656 More bug 195350 work: Make html use new nsAttrAndChildArray class.
r=caillon sr=jst
2004-01-26 19:22:05 +00:00
bryner%brianryner.com
23ecb8ff4e DeCOMtaminate nsCSSFrameConstructor (bug 231157). This gets rid of the nsIStyleFrameConstruction and nsICSSFrameConstructor interfaces. The frame constructor now has the same lifetime as the pres shell. r+sr=dbaron. 2004-01-21 23:05:10 +00:00
peterv%propagandism.org
379d6c8a41 Miscellaneous cleanup. r/sr=jst. 2004-01-18 10:45:26 +00:00
dbaron%dbaron.org
d33950dfac Do style resolution of later siblings required by the CSS + combinator on event state and attribute changes by changing the result of Has(Attribute|State)DependentStyle into a bitfield and setting and handling the restyle-later-siblings bit appropriately. b=15608 r+sr=bzbarsky 2004-01-14 01:36:35 +00:00
bryner%brianryner.com
e65d2d2fe5 Eliminate nsIStyleSet as an XPCOM interface, making the implementation internal to layout. Frame constructor ownership moves to the pres shell, and the style set methods that forward to the frame constructor are gone. Rewrote style set sheet add/remove to reduce code size. For more details, see bug 64116. r+sr=dbaron. 2004-01-07 22:30:53 +00:00
dbaron%dbaron.org
5bd21833b4 Add a correct comment. 2003-12-29 16:39:50 +00:00
bryner%brianryner.com
dfe3513814 Change all callers of nsIPresContext::GetShell() to use the non-refcounting versions. Most callers now use PresShell(), a few that were checking for null conditions are using GetPresShell() -- this will be remedied once we can ensure that a prescontext never has a null pres shell. Bug 227690, r+sr=bzbarsky. 2003-12-21 05:36:36 +00:00
bzbarsky%mit.edu
9a4b8706ea Remove unused variable. 2003-07-25 04:06:31 +00:00
dbaron%dbaron.org
d85698fd40 Remove hint parameter from AttributeChanged methods and simplify style hint mechanism. b=211308 r+sr=bzbarsky 2003-07-11 21:16:12 +00:00
bzbarsky%mit.edu
0c5dc097d7 Don't bother reresolving style when empty stylesheets get added (eg from empty
<style> elements).  Also remove the methods for blowing away the ruletree
during a style reresolve, since ruletrees are now garbage-collected.  Bug
196557, r+sr=dbaron
2003-07-04 01:44:24 +00:00
bsmedberg%covad.net
1a9cab373f Bug 210337 - Spring cleaning of unused XPCOM code and callers r/sr=alecf/bz 2003-06-23 20:31:43 +00:00
dbaron%dbaron.org
51e6755ccd Add nsIFrame::GetPresContext, which gets the pres context from the rule node which it gets from the style context. DeCOMtaminate nsStyleContext::GetRuleNode, nsRuleNode::GetRule, and nsRuleNode::GetPresContext. Remove unused nsRuleNode::PathContainsRule. b=208190 r+sr=roc 2003-06-20 01:22:44 +00:00
dbaron%dbaron.org
4919c99863 Fix minor inconsistency between functions. b=208548 r+sr=bzbarsky 2003-06-10 22:09:58 +00:00
dbaron%dbaron.org
f8f9bcc4be Fix bugs with colors in tables in cases where some content comes before the start tag of BODY by rechecking the computed color of BODY more often. b=94688 Patch from Mats Palmgren <mats.palmgren@bredband.net>. r+sr=dbaron 2003-06-08 19:52:22 +00:00
dbaron%dbaron.org
75ff60c62f Clean up API (and its callers) for getting style data: remove unneeded null checks and switch to new inline member functions (one for each struct) that return values. b=197205 r+sr=roc a=brendan 2003-05-15 03:42:21 +00:00
dbaron%dbaron.org
46b12ccdd6 Make HTMLDocumentColorRule immutable. b=196795 r+sr=bzbarsky 2003-03-13 15:30:32 +00:00
peterv%netscape.com
bc210f1afe Fix for bug 195153 (Remove bogus 'extern' decls from NS_New* functions.). Patch by jst, r=sicking, sr=peterv. 2003-03-05 15:08:41 +00:00
dbaron%dbaron.org
a5105c6ec7 Fix dynamic change bugs by making HTMLColorRule immutable. b=99850 r+sr=bzbarsky 2003-02-22 19:15:46 +00:00
dbaron%dbaron.org
4b4f8625f1 Replace nsIStyleSheet::AttributeAffectsStyle with nsIStyleRuleProcessor::HasAttributeDependentStyle. Strengthen the attribute optimization and apply it to HTML as well. b=163556 r+sr=bzbarsky 2003-02-22 16:10:53 +00:00
dbaron%dbaron.org
6dd68f3c64 Remove nsISizeOfHandler and associated SizeOf methods. b=106792 r=bzbarsky sr=jst 2003-02-22 15:34:38 +00:00
bryner%netscape.com
e43f5a49fd Remove nsIStyleContext (bug 114713), r/sr=dbaron. Changed lots of methods to use nsStyleContext* or already_AddRefed<nsStyleContext> as return values, depending on whether a reference is returned. Turn on nsRefPtr (bug 104346), and change nsDerivedSafe to not declare AddRef and Release explicitly virtual, r=jag, sr=dbaron. 2003-02-22 00:32:13 +00:00
dbaron%dbaron.org
48544669f3 Bug 178643: Remove uses of NS_INIT_ISUPPORTS, since it's no longer needed. r=timeless sr=jag 2003-01-08 19:24:38 +00:00
bzbarsky%mit.edu
fe53f95e60 Make the CSSLoader correctly order stylesheets as they are dynamically added
and removed via the DOM.  Clean up the nsIDocument stylesheet accessors.  Clean
up nsIDocumentObserver stylesheet stuff a bit.  Make style sheets visible in
the CSSOM (though not completely accessible) from the moment the load is kicked
off.  Make us have sheet objects that can be manipulated via CSSOM even for
failed loads. Bug 107567, bug 47734, bug 57225, bug 178407.
r=sicking,  sr=peterv.
2002-12-03 05:48:14 +00:00
dbaron%fas.harvard.edu
f6b1702067 Consolidate all CSS pseudos and split them into three atom lists to distinguish between pseudo-classes, pseudo-elements, and fake-pseudo-elements used for anonymous boxes. b=147887 r,sr=roc,bz 2002-11-17 15:37:56 +00:00
dbaron%fas.harvard.edu
ee1ac12967 Back out patch for bug 161109 that implemented a pref for disabling marquee. b=161109 r=hixie a=asa 2002-10-30 14:31:32 +00:00
dbaron%fas.harvard.edu
fc4297892b Add preference for whether to enable marquee, and set the default to disabled. b=161109 r=caillon sr=bzbarsky a=rjesup 2002-10-15 00:06:57 +00:00
dbaron%fas.harvard.edu
9c32fa806d Remove unused ability to optionally arena-allocate certain stylesheet objects. b=174256 r=kin sr=bzbarsky a=rjesup 2002-10-14 23:57:17 +00:00
bzbarsky%mit.edu
279ffda515 Make GetParent on nsStyleContext return an
already_AddRefed<nsIStyleContext>.  Bug 171808, r=jkeiser, sr=dbaron
2002-10-09 01:46:15 +00:00
alecf%netscape.com
b15e45e72d re-fix bug 166147 - autoinitialize mRefCnt to 0 for more efficient constructors
r=dougt, sr=jag, this time including some CSS stuff that has 31-bit refcounts.
2002-09-17 04:49:28 +00:00
dougt%netscape.com
68faeb5241 166917. Clean up xpcom SDK includes. r=rpotts@netscape.com, sr=alecf@netscape.com, a=rjesup@wgate.com 2002-09-07 17:13:19 +00:00
dbaron%fas.harvard.edu
9ced6ae565 Remove unused Equals and HashValue methods (methods that were once on nsIStyleRule). b=163058 r=hyatt sr=kin 2002-08-20 19:40:23 +00:00
dbaron%fas.harvard.edu
f363c6f0ae Convert mapped attribute table from nsHashtable to pldhash. b=148368 sr=bzbarsky r=sicking 2002-08-17 12:17:03 +00:00
dbaron%fas.harvard.edu
a7f0385127 Clean up unneeded includes of nsStyleUtil.h, and some other include cleanup in MathML. r=rbs b=71257 (|#include| changes only) 2002-08-16 11:52:20 +00:00
dbaron%fas.harvard.edu
48e2161f68 Remove unused method nsIStyleRule::GetStrength. b=162492 r=kin sr=bzbarsky 2002-08-14 13:16:35 +00:00
seawood%netscape.com
0597412383 The c++ standard requires that the throw list be used when declaring functions as well as defining them.
commercial compiler fixes for bug #149032
2002-07-03 17:14:41 +00:00
seawood%netscape.com
03ace271f0 Add CPP_THROW_NEW macro to the build system. This macro should be used when defining a local |operator new| function. It will be set to an empty throw function by default on all platforms except mac CW builds. This will allow us to not crash on systems that expect |operator new| to throw an exception by default and will suppress compiler warnings about how |operator new| should throw an exception instead of returning NULL.
Bug 149032 r=timeless sr=scc
2002-07-02 20:25:30 +00:00
dbaron%fas.harvard.edu
e63a11c0e8 Split strict mode into almost-standards and full-standards mode, where the only quirk in almost standards mode is the quirky inline box model. Remove previous fix for bug 151620. Tweak mode detection to use almost-standards for XHTML Transitional, HTML 4.01 transitional with system ID, and for IBM system DOCTYPE. b=153032 r=karnaze, bzbarsky, harishd sr=waterson 2002-06-25 21:16:17 +00:00
jst%netscape.com
1075a3f80d Fixing bug 146034. Getting rid of nsHTMLIIDs.{h,cpp}. r=jfrancis@netscape.com, sr=rpotts@netscape.com 2002-05-23 00:00:34 +00:00
dbaron%fas.harvard.edu
07103ecbea Fix up and enable hierarchical :hover and remove the hacks that made :hover work for anchors without it. Pass mask rather than pseudo-class to ContentStatesChanged notifications. Optimize event state changes in the style system by passing state mask to HasStateDependentStyle and using it in HasStateDependentStyle implementations. b=5693 r=bryner, joki sr=hyatt 2002-04-11 03:49:30 +00:00
sicking%bigfoot.com
058a33eded Bug 41983: Make (x)html-elements support namespaced attributes.
r=heikki sr=jst a=roc+moz
2002-03-27 00:13:57 +00:00
dbaron%fas.harvard.edu
a68d8f9629 Convert users of nsAReadable[C]String and nsAWritable[C]String typedefs to [const] nsA[C]String. b=131899 r=scc sr=jag a=asa 2002-03-23 22:56:05 +00:00
darin%netscape.com
f1a6738b6c fixes bug 124042 "support internationalized URIs" r=dougt, sr=alecf, a=asa 2002-03-06 07:48:55 +00:00
karnaze%netscape.com
679c575202 bug 41262 - new table border collapsing code. sr=attinasi, r=alexsavulov. 2002-02-19 15:48:28 +00:00
cathleen%netscape.com
740d95a0a9 eliminates 107 nsCRT::memset calls to use memset instead. removed nsCRT::memset() function. bug 118135 r=dp sr=brendan 2002-02-05 01:41:13 +00:00
bzbarsky%mit.edu
7ef1d1f644 Change some users of GetAttr to HasAttr instead. Bug 113564, r=jag, sr=jst. 2002-01-13 04:03:52 +00:00
dbaron%fas.harvard.edu
c9c0a97163 Replace the BodyFixupRule with code in nsCSSRendering to fix all the problems with dynamic style changes and backgrounds on the root element and the BODY element. Change the way the HTMLDocumentColorRule (for the table color quirk) is initialized since it used to depend on the BodyFixupRule. b=116161 (also fixes other bugs) r=attinasi sr=hyatt 2002-01-07 23:46:07 +00:00
jaggernaut%netscape.com
97b0530073 Bug 104158: Use NS_LITERAL_STRING instead of XXXWithConversion("..."). r=bryner, rs=alecf 2001-12-16 11:58:03 +00:00
sfraser%netscape.com
169c79e50d Fix for bug 115157 -- shrink data structures by converting PRBool to PRPackedBool. r=dp, sr=waterson 2001-12-14 23:10:42 +00:00
dbaron%fas.harvard.edu
c25fe11d0f Pull computation of loop invariants for rule matching out of outer loop (over rule processors) as well, from SelectorMatchesData in nsCSSStyleSheet to RuleProcessorData in nsStyleSet. Use the RuleProcessorData structure in nsHTMLStyleSheet as well. Simplify matching of :-moz-bound-element pseudo-class. b=83836 r=waterson, pierre sr=hyatt 2001-11-10 23:51:45 +00:00
jst%netscape.com
144090f3bb Fixing bug 108321. Don't waste time using the component manager when creating an nsHTMLAttributes when setting attributes on an element, call NS_NewHTMLAttributes() directly in stead. Also doing some cleaning up in nsHTMLStyleSheet.cpp. r=dbaron@fas.harvard.edu, sr=hyatt@netscape.com 2001-11-03 08:13:48 +00:00
hyatt%netscape.com
0c8c1348b3 Fix for 104336, deCOMtaminate rulenode, rulewalker, frames, r=dbaron, sr=waterson 2001-10-24 00:01:09 +00:00
dougt%netscape.com
942988df26 Extraneous Symbol Removal. Patch by Jon Smirl jonsmirl@mediaone.net. r=dougt@netscape.com, sr=alecf@netscape.com. Bug 104172, 104316, 104420, 104426, 104461, 104511, 104527 2001-10-19 20:59:33 +00:00
dbaron%fas.harvard.edu
5a357eea01 Making debugging code be |#ifdef DEBUG|. b=91036 r=harishd sr=jst 2001-10-16 05:31:36 +00:00
dbaron%fas.harvard.edu
dcd9a0a54f Replace uses of deprecated NS_IMPL_ISUPPORTS and NS_IMPL_QUERYINTERFACE macros with NS_IMPL_{ISUPPORTS,QUERYINTERFACE}{1,0}. r=jag sr=alecf b=45797 2001-09-10 19:54:27 +00:00
bzbarsky%mit.edu
a0c586aa4f Fix the nsIDOMMediaList interface to have the right properties. Make
media rules implement nsIDOMCSSMediaRule.  Fix insertRule() to be able
to insert into the middle of a rule list.  Fix issues with stylesheets
not getting dirtied when media lists are modified.  bug 93977,
r=pierre, sr=jst
2001-09-05 00:00:18 +00:00
dbaron%fas.harvard.edu
113ad642ae Replace uses of deprecated NS_IMPL_ISUPPORTS and NS_IMPL_QUERYINTERFACE macros with NS_IMPL_{ISUPPORTS,QUERYINTERFACE}{1,0}. r=jag rs=brendan b=45797 2001-08-21 01:48:11 +00:00