Compare commits

..

973 Commits

Author SHA1 Message Date
sdv%sparc.spb.su
53866ece4f workaround for bug=30927
git-svn-id: svn://10.0.0.236/branches/M15-patch@72213 18797224-902f-48f8-a5cc-f745e15eee43
2000-06-14 11:34:36 +00:00
(no author)
350be55313 This commit was manufactured by cvs2svn to create branch 'M15-patch'.
git-svn-id: svn://10.0.0.236/branches/M15-patch@52901 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-06 02:47:16 +00:00
dmose%mozilla.org
ce50f7d151 updated license boilerplate to xPL 1.1, a=chofmann@netscape.com,r=endico@mozilla.org
git-svn-id: svn://10.0.0.236/trunk@52900 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-06 02:47:15 +00:00
dmose%mozilla.org
fe6a96903d updated license boilerplated to xPL 1.1, a=chofmann@netscape.com,r=endico@mozilla.org
git-svn-id: svn://10.0.0.236/trunk@52899 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-06 02:24:22 +00:00
endico%mozilla.org
33c31375b8 temporarily disabled this while dmose lands mpl licence change
git-svn-id: svn://10.0.0.236/trunk@52898 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-06 02:21:15 +00:00
dmose%mozilla.org
4136bb9b85 updated license boilerplated to xPL 1.1, a=chofmann@netscape.com,r=endico@mozilla.org
git-svn-id: svn://10.0.0.236/trunk@52897 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-06 02:11:51 +00:00
taek%netscape.com
502dbdb8c2 updated to use /share/builds/components
git-svn-id: svn://10.0.0.236/trunk@52895 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-06 02:11:18 +00:00
dmose%mozilla.org
fa6f75bbee updated license boilerplated to xPL 1.1, a=chofmann
git-svn-id: svn://10.0.0.236/trunk@52894 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-06 02:06:26 +00:00
endico%mozilla.org
1f4659c914 temporarily turn off bonsai while dmose lands the mpl 1.1 licence
git-svn-id: svn://10.0.0.236/trunk@52893 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-06 02:03:13 +00:00
rpotts%netscape.com
6d25185793 bug #7428. Added support for connection timeout. Now if a connection cannot be made within 35 seconds, the transport times out.
git-svn-id: svn://10.0.0.236/trunk@52892 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-06 01:32:34 +00:00
sspitzer%netscape.com
cffac19a5f fix for #18064, r=alecf, a=choffman.
only create the local mail account if the user migrates from imap, or if the
user creates an imap server and they don't have a local mail account.


git-svn-id: svn://10.0.0.236/trunk@52891 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-06 01:22:28 +00:00
pollmann%netscape.com
63b5916e8b Bug 17995: Don't reset selection when adding an option to a combobox, as it caused reframing and a crash. r=harishd a=choffman
git-svn-id: svn://10.0.0.236/trunk@52890 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-06 00:54:54 +00:00
drapeau%eng.sun.com
c38feba394 r=fur@netscape.com, approval=chofmann@netscape.com. Fix for bug 5369
("[PP]Crash on startup because of Java Plug-in 1.3 for Netscape
Navigator.")  Make the code more bulletproof by checking for NULL
arguments to several methods.  If JVM isn't running, jEnv arg should
be NULL.

This doesn't entirely fix the problem of a JVM gone awry in all cases;
in the case of this particular bug, the Sun JDK 1.3 Beta HotSpot VM
caused an error, and there's no way for Mozilla code to detect this
failure mode.  The fix for that half of the problem is to use the new
JDK 1.3 Early Access VM, which does not exhibit the problem.


git-svn-id: svn://10.0.0.236/trunk@52888 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-06 00:24:42 +00:00
selmer%netscape.com
aa6d4da1fe Only put selected components in config's build
git-svn-id: svn://10.0.0.236/trunk@52887 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-06 00:04:08 +00:00
joki%netscape.com
acb57210c3 Fix for bug 17835. Free JS event listeners when the JS object they're registered on goes away. a:chofmann r:vidur
git-svn-id: svn://10.0.0.236/trunk@52886 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-05 23:37:40 +00:00
mscott%netscape.com
334b29cffa (not part of the build)
GetProtcocolHandler needs to pass in the uri we are trying to open so the
listener can pick an appropriate p.h. based on the protocol of the uri. (if
they so choose).


git-svn-id: svn://10.0.0.236/trunk@52885 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-05 23:26:16 +00:00
mscott%netscape.com
fb3eea6b4a (not part of the build)
1) add OpenURIVia support.
2) reimplent DispatchContent so we ask the listener if it can handle the content. Then when (if) we find
a content listener that can handle it, call DoContent.
3) if we can't find a content listener, go to the registry and try to find a registered content handler.
This part isn't finished as eventually i need to be going to the category manager instead of forming
the progid for the content handler myself.


git-svn-id: svn://10.0.0.236/trunk@52884 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-05 23:06:16 +00:00
mscott%netscape.com
4eb1a093e9 Add OpenURIVia which takes a static IP address.
(not part of the build)


git-svn-id: svn://10.0.0.236/trunk@52883 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-05 23:03:58 +00:00
mscott%netscape.com
cc6179325b (not part of build)
Add notion of CanHandleContent. This is supposed to be a light weight method for the implementor
such that the uri loader can ask right off the top if the listener can handle a particular content
type. If it can, then later on, the uir loader may call DoContent to actually handle it.


git-svn-id: svn://10.0.0.236/trunk@52882 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-05 22:54:53 +00:00
mscott%netscape.com
ab2f6ea0db add a new line at the end of the file
(not part of the seamonkey build)


git-svn-id: svn://10.0.0.236/trunk@52881 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-05 22:53:21 +00:00
mscott%netscape.com
53828293ef (not part of the seamonkey build!)
remove CanHandleConent. I don't think we need this. Also remove notion of getting a parent
content handler. This doesn't make sense anymore for how I'm defining a content handler.
Added progid prefix for content handler.


git-svn-id: svn://10.0.0.236/trunk@52880 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-05 22:52:35 +00:00
karnaze%netscape.com
49e55fa057 bugs 17138, 17168 and others - col allocation involving colspans honors constraints; pct colspans were allocating incorrectly if pct cols existed.
git-svn-id: svn://10.0.0.236/trunk@52879 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-05 22:36:59 +00:00
karnaze%netscape.com
c5c9738319 crash on abc - calls EnsureColumns upon entering reflow if appropriate
git-svn-id: svn://10.0.0.236/trunk@52878 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-05 22:33:04 +00:00
putterman%netscape.com
4ee15a0425 Workaround for 18088. make delete toolbar button work for thread pane. reviewed by
hangas approved by chofmann.


git-svn-id: svn://10.0.0.236/trunk@52877 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-05 22:21:41 +00:00
norris%netscape.com
1996d97ba3 Unify evaluation code to improve consistency and improve code size.
git-svn-id: svn://10.0.0.236/trunk@52875 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-05 22:18:24 +00:00
slamm%netscape.com
e5f4e7c849 Fix for bug 18017, "No sidebar panels in messenger." r=hangas a=chofmann
git-svn-id: svn://10.0.0.236/trunk@52871 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-05 22:10:29 +00:00
mjudge%netscape.com
b476111e67 fix review by sfrasier, approved choffman. simple fix to get first letter style frames/paragraphs to show their selection. simply notifies children that the selection bit should be "on"
git-svn-id: svn://10.0.0.236/trunk@52870 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-05 22:09:16 +00:00
fur%netscape.com
c8cc3fe9b2 Checkpoint
git-svn-id: svn://10.0.0.236/trunk@52867 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-05 21:58:37 +00:00
alecf%netscape.com
be87817fb0 fix for #17763 - initialize cellFrame so that if it's not found, the null check succeeds
r=hyatt
a=chofmann


git-svn-id: svn://10.0.0.236/trunk@52866 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-05 21:51:42 +00:00
norris%netscape.com
bef3328b2f Remove JSuncaughtExceptionLine, use an error reporter to report line number info instead.
git-svn-id: svn://10.0.0.236/trunk@52865 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-05 21:48:05 +00:00
norris%netscape.com
aebde57816 Improve performance of the non-error call code.
git-svn-id: svn://10.0.0.236/trunk@52862 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-05 21:23:10 +00:00
rpotts%netscape.com
fba1c662d5 bug #17500 (r=warren). Added code to fire an OnStopNotification to the parent load group if an active group is canceled.
git-svn-id: svn://10.0.0.236/trunk@52861 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-05 20:51:11 +00:00
selmer%netscape.com
a4236232dc Fixups
git-svn-id: svn://10.0.0.236/trunk@52858 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-05 19:18:33 +00:00
kin%netscape.com
81ed65e99b Temporary Fix for dogfood blocker bugs #18002 and #18006. With kipp's
permission, I backed out his fix for bug #1413 from
layout/html/base/src/nsContainerFrame.cpp revision 1.68.
Will re-check in kipp's fix after M11 is branched.
r=buster@netscape.com  a=chofmann


git-svn-id: svn://10.0.0.236/trunk@52857 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-05 17:42:21 +00:00
rjc%netscape.com
b4795254b6 Fix bug # 17675. Review: waterson. Approval: chofmann.
git-svn-id: svn://10.0.0.236/trunk@52852 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-05 09:28:42 +00:00
tbogard%aol.net
5fe04f058d Implemented so pretty straight forward pass through methods.
git-svn-id: svn://10.0.0.236/trunk@52851 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-05 09:07:57 +00:00
mscott%netscape.com
b5afeda640 (not part of the seamonkey build)
define and implement nsDocumentOpenInfo. Implement uri loader::OpenURI. This is the first pass at
my implementation it isn't complete and it doesn't use the registry for getting
 protocol handlers and content handlers yet...but it's a start


git-svn-id: svn://10.0.0.236/trunk@52849 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-05 06:01:40 +00:00
mscott%netscape.com
cddea4bf18 (not part of the seamonkey build)
include nsISupportsUtils.h


git-svn-id: svn://10.0.0.236/trunk@52848 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-05 06:01:05 +00:00
mscott%netscape.com
e1c9ba38b3 (not part of the seamonkey build!)
expanded OpenURI interface to take all the required arguments we need in order to really open the uri.
This includes adding the command, window target, event sink getter, load group and channel context.
Added dispatchContent method which is used by the doc open info's to talk back to the uri loader.
DispatchContent takes an opened channel and the uri content listener.


git-svn-id: svn://10.0.0.236/trunk@52847 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-05 06:00:36 +00:00
mscott%netscape.com
586a405369 (not part of the seamonkey build!)
doContent now returns a boolean called abortProcess. if the listener wants to handle the content without
 returning a stream listener, i.e. it wants the uri loader to stop doing anything else with this content,
then it returns true for abort process.


git-svn-id: svn://10.0.0.236/trunk@52846 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-05 05:59:42 +00:00
waterson%netscape.com
3aed471de6 Bug 18058. Remove 'commandDispatcher' from interface; obsolete, and leaky. r=hyatt, a=chofmann
git-svn-id: svn://10.0.0.236/trunk@52844 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-05 05:31:15 +00:00
waterson%netscape.com
ca247c028b Bug 18058. Remove 'commandDispatcher' from interface; obsolete. r=hyatt, a=chofmann
git-svn-id: svn://10.0.0.236/trunk@52843 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-05 05:30:56 +00:00
jefft%netscape.com
2b02c816a3 fixed bug 17928 - undo is not working for thread pane; this is the backend fix of the problem; creating TransactionManager in nsMsgWindow instead of in nsMessenger; r=bienvenu,a=chofmann
git-svn-id: svn://10.0.0.236/trunk@52842 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-05 05:23:15 +00:00
brendan%mozilla.org
77646a1480 Remove nsIFrameReflow.h deadwood (r=waterson).
git-svn-id: svn://10.0.0.236/trunk@52841 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-05 05:00:39 +00:00
dougt%netscape.com
1cf333f618 Backing out changes due to nsCOMPtr build problems.
git-svn-id: svn://10.0.0.236/trunk@52840 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-05 03:32:33 +00:00
dougt%netscape.com
fced92a57e backing out changes. looks like this stuff is untested in a full build.
git-svn-id: svn://10.0.0.236/trunk@52839 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-05 03:31:04 +00:00
cls%seawood.org
dc0901d830 Fix for the template variable change from <T> to <nsISupports>. r=dougt
git-svn-id: svn://10.0.0.236/trunk@52838 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-05 03:11:03 +00:00
hangas%netscape.com
b0cc23dd32 Command updating and dispatching changes for menu items. Fixes 17848. r=hyatt, a=chofmann
git-svn-id: svn://10.0.0.236/trunk@52837 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-05 02:21:47 +00:00
dougt%netscape.com
8d74ce705f Changed ownership module inside xpcom/proxy to remove cached objects passed their owner's lifespan.
Removed out of band callback in xpcom/proxy
Fixed webshell leak due to xpcom/proxy. (17009)
Just about everything is now a comptr, god save us. :-)

r=jband, a=brendan.


git-svn-id: svn://10.0.0.236/trunk@52836 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-05 02:21:46 +00:00
dougt%netscape.com
d73bc37e66 Fix for 17842. Make nsCOMPtr<nsISupports> should not be weak typed. scc's
this change to me and since he is on vacation until monday and I need this
for an M11 bug, I am checking it in.   I am hoping it is the right
thing to do.

a=brendan.


git-svn-id: svn://10.0.0.236/trunk@52835 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-05 02:18:46 +00:00
alecf%netscape.com
a92195a3a9 implement EnsureRowIsVisible for bug #17763
r=scottip


git-svn-id: svn://10.0.0.236/trunk@52834 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-05 02:02:09 +00:00
sspitzer%netscape.com
0fdb0ed03c fix warning and fix bug #18036, r=bienvenu, a=chofmann.
prevent the infinite loop when applying filters to mail if a filter
rule uses an arbitrary header.


git-svn-id: svn://10.0.0.236/trunk@52833 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-05 01:58:03 +00:00
mcafee%netscape.com
5478f9dda3 Switching to use NS_WITH_SERVICE macro as specified in (5403); removing spurious clipboard service instance in nsEditorEventListeners.cpp. r=akkana, a=chofmann.
git-svn-id: svn://10.0.0.236/trunk@52832 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-05 01:29:49 +00:00
sdagley%netscape.com
e6b6878f91 Fix to larryh's earlier checkin to implement bug #17558. Previous fix from bad diff would always result in an error trying to create a file that already existed (should only be an error in certain cases). r=sfraser
git-svn-id: svn://10.0.0.236/trunk@52831 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-05 01:18:07 +00:00
waterson%netscape.com
808d64da48 Fix leak with nsCOMPtr. r=brendan, a=brendan
git-svn-id: svn://10.0.0.236/trunk@52830 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-05 00:52:23 +00:00
selmer%netscape.com
45c7e5cf11 Tweak prior checkin a little
git-svn-id: svn://10.0.0.236/trunk@52829 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-05 00:49:23 +00:00
jfrancis%netscape.com
6d48eccaa5 bug 17744; a=choffman; r=floppy moose
git-svn-id: svn://10.0.0.236/trunk@52828 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-05 00:46:06 +00:00
waterson%netscape.com
7335ede542 Fix leak with nsCOMPtr. r=brendan, a=brendan
git-svn-id: svn://10.0.0.236/trunk@52827 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-05 00:44:10 +00:00
selmer%netscape.com
c9b01acbd6 Fixups to generatelist & related handling of listbox type widgets
git-svn-id: svn://10.0.0.236/trunk@52826 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-05 00:36:17 +00:00
matt%netscape.com
34a8cb4799 fix for bug 18042 by adding close window tag r=mcafee
git-svn-id: svn://10.0.0.236/trunk@52825 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-05 00:34:48 +00:00
larryh%netscape.com
1f62cd6fa3 BugZilla 17558. PR_Open() gets PR_EXCL flag
git-svn-id: svn://10.0.0.236/trunk@52824 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-05 00:21:39 +00:00
despotdaemon%netscape.com
3189ded990 Pseudo-automatic update of changes made by vishy@netscape.com.
git-svn-id: svn://10.0.0.236/trunk@52823 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-05 00:09:17 +00:00
pollmann%netscape.com
b98eecf039 Bug 17431: Clean house in form and form control destructors to allow reframing r=harishd a=choffman
git-svn-id: svn://10.0.0.236/trunk@52822 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-04 23:16:47 +00:00
sfraser%netscape.com
d76ff386a5 Fixes for 16723 -- fix error returns from imglib. Remove and re-add files to project to fix the case of the filenames. r=pnunn, a=chofmann.
git-svn-id: svn://10.0.0.236/trunk@52820 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-04 23:11:48 +00:00
sfraser%netscape.com
c0ec1f713e Fixes for 16723 -- fix error returns from imglib. r=pnunn, a=chofmann.
git-svn-id: svn://10.0.0.236/trunk@52819 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-04 23:11:11 +00:00
sfraser%netscape.com
1fcc54491d Fixes for 16723 -- fix error handling so that errors from image allocation are propogated back to imglib.. r=pnunn, a=chofmann.
git-svn-id: svn://10.0.0.236/trunk@52818 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-04 22:47:24 +00:00
rods%netscape.com
e34b01ce89 Commented out the reset of the list when an option gets added
Fixes crashers 17836, 17852, 17965 r=kmcclusk


git-svn-id: svn://10.0.0.236/trunk@52817 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-04 22:45:10 +00:00
mcafee%netscape.com
451b1f9771 Fixing JS error when loading prefs; skipping assertion in nsPrefWindow::ChangePanel() that is not needed for prefs to function, left a comment there so we can fix that later. (14663) a=matt, r=chofmann.
git-svn-id: svn://10.0.0.236/trunk@52816 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-04 22:39:21 +00:00
sfraser%netscape.com
b5daf46f31 Fixes for 18029 and 16723 -- fix image drawing on Mac to use GWorlds, and put in api to lock and unlock pixels. Pass a real nsDrawingSurface to the image, instead oif a cast GrafPtr. r=pnunn, a=chofmann.
git-svn-id: svn://10.0.0.236/trunk@52815 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-04 22:36:21 +00:00
sfraser%netscape.com
db24ddd87b Fixes for 18029 and 16723 -- fix image drawing on Mac to use GWorlds, and put in api to lock and unlock pixels. r=pnunn, a=chofmann.
git-svn-id: svn://10.0.0.236/trunk@52814 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-04 22:32:22 +00:00
sfraser%netscape.com
28261a4ca0 Fixes for 18029 and 16723 -- fix image drawing on Mac to use GWorlds, and put in api to lock and unlock pixels. Leave more free space in the heap for image (GWorld) pixels. r=pnunn, a=chofmann.
git-svn-id: svn://10.0.0.236/trunk@52813 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-04 22:29:02 +00:00
sfraser%netscape.com
2d10f84704 Fixes for 18029 and 16723 -- fix image drawing on Mac to use GWorlds, and put in api to lock and unlock pixels. Adding new error module for libimg. r=pnunn, a=chofmann.
git-svn-id: svn://10.0.0.236/trunk@52812 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-04 22:27:36 +00:00
sfraser%netscape.com
1cf929984f Fixes for 18029 and 16723 -- fix image drawing on Mac to use GWorlds, and put in api to lock and unlock pixels. r=pnunn, a=chofmann.
git-svn-id: svn://10.0.0.236/trunk@52811 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-04 22:26:57 +00:00
nisheeth%netscape.com
59271d7e21 r=norris,warren,radha. a=chofmann. Fix for bug 1646. Javascript: URLS were not getting loaded properly because the webshell was changing its notion of the current document (by setting mURL and mReferrer) too eagerly. Now, it does so only after the nsDocLoader::LoadDocument() in DoLoadURL() returns successfully.
git-svn-id: svn://10.0.0.236/trunk@52809 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-04 22:09:46 +00:00
pinkerton%netscape.com
7f537da550 add "status" area to the bottom so that bottom scroll arrow on MacOS is visible (r=slamm, bug# 8266).
git-svn-id: svn://10.0.0.236/trunk@52808 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-04 22:04:17 +00:00
nisheeth%netscape.com
45eec85b6b r=norris,warren,radha. a=chofmann. Fix for 1646. Javascript: urls return NS_ERROR_DOM_RETVAL_UNDEFINED when the javascript: url evaluates into an undefined value. This error is propagated back up to nsWebShell::DoLoadURL().
git-svn-id: svn://10.0.0.236/trunk@52807 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-04 22:02:19 +00:00
varada%netscape.com
027697488c updating accountsetup.ini to deal with workspace
git-svn-id: svn://10.0.0.236/trunk@52805 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-04 21:48:32 +00:00
varada%netscape.com
fee0b89b42 updating makefile to create the WSTemplate
git-svn-id: svn://10.0.0.236/trunk@52804 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-04 21:47:27 +00:00
sfraser%netscape.com
df972eb658 Did a 'Remove object code and compact' on this project, and tidied up some access paths to try to eliminate the CodeWarrior hangs. a=leaf
git-svn-id: svn://10.0.0.236/trunk@52802 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-04 21:16:02 +00:00
valeski%netscape.com
8cf0748300 10736, r=andreas.otte@primus-online.de. Actually I'm more like the reviewer here. Andreas submitted this optimization to MakeAbsolute (it uses minimal memory routines and minimal parsing. this means performance increase by a factor of 10 for this method). I'm checking it in for him.
git-svn-id: svn://10.0.0.236/trunk@52800 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-04 20:31:36 +00:00
neeti%netscape.com
1fe4d7149a fix for MLK bug 15818, every ImageURLImpl leaks.r=pnunn, a=chofmann.
git-svn-id: svn://10.0.0.236/trunk@52799 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-04 20:24:25 +00:00
selmer%netscape.com
81e77a0f71 Dynamic component checkbox initialization
git-svn-id: svn://10.0.0.236/trunk@52798 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-04 20:19:27 +00:00
sspitzer%netscape.com
aa210a0654 better fix for #17597, r=mscott, a=chofmann.
instead of setting the action for the url, check if we have a channel listener.
this is a cleaner fix, and now the quoting back end doesn't need to know about
the nntp url.


git-svn-id: svn://10.0.0.236/trunk@52796 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-04 20:02:31 +00:00
jefft%netscape.com
f295b6af47 fixed bug 15069 && 12345 -- passing in file:/// instead of file:// as the file url spec; r=bienvenu, a=chofmann
git-svn-id: svn://10.0.0.236/trunk@52795 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-04 19:47:21 +00:00
waterson%netscape.com
487d4b32af Bug 17953, 17959. Fix nsXULElement leaks by using nsCOMPtrs. r=warren, a=chofmann
git-svn-id: svn://10.0.0.236/trunk@52794 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-04 19:44:38 +00:00
waterson%netscape.com
9530e8d060 Bug 17955. Don't unnecessarily add script event listeners to temporary nodes used for overlay hookup. r=hyatt, a=chofmann
git-svn-id: svn://10.0.0.236/trunk@52793 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-04 19:43:43 +00:00
putterman%netscape.com
8b6bdd6f64 Fix for 17987. Approved by chofmann and reviewed by hangas.
git-svn-id: svn://10.0.0.236/trunk@52792 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-04 19:38:11 +00:00
kipp%netscape.com
b20b0d0a0e r=vidur; bug=17372; found a case where a trailing shy character on a line would trigger an infinite loop iff the shy character was the only piece of text after a text frame had been continued
git-svn-id: svn://10.0.0.236/trunk@52791 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-04 19:34:36 +00:00
waterson%netscape.com
143a89ffc8 Bug 17847. Fix 'commandupdater' hookup for master document. r=hyatt, a=chofmann
git-svn-id: svn://10.0.0.236/trunk@52790 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-04 18:37:58 +00:00
jefft%netscape.com
d7f7734495 fixed bug 17925 -- pop3 get all message again; restore old behavior; always set leave message on server; r=rhp, a=chofmann
git-svn-id: svn://10.0.0.236/trunk@52786 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-04 15:27:29 +00:00
rhp%netscape.com
2bd2bc6f06 Changes for String Bundle problem in forwarding - Bug #: 12345 - r: jefft - approved: chofmann
git-svn-id: svn://10.0.0.236/trunk@52785 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-04 13:59:26 +00:00
waterson%netscape.com
8c5481dd42 Bug 11501. Tree has regressed s.t. it is necessary to have a <treecol>; add it here. r=hyatt, a=jack
git-svn-id: svn://10.0.0.236/trunk@52784 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-04 08:57:52 +00:00
waterson%netscape.com
9f071c70b6 Bug 17946. Trees must be contained within a fixed div. r=hyatt, a=jack
git-svn-id: svn://10.0.0.236/trunk@52783 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-04 08:33:08 +00:00
sgehani%netscape.com
9c16ff2bfc No longer delete core file if it existed before running the installer: now only deleted if downloaded. Also, cleaned up the terminal window UI.
Only affects the standalone Install Wizard app, not the browser or mail.

[r=ssu, a=chofmann]


git-svn-id: svn://10.0.0.236/trunk@52782 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-04 08:23:55 +00:00
jefft%netscape.com
7ff57f52b5 partial fix for bug 12345 - unable to forward message; check for valid url before calling msg_pick_real_name() to prevent crashing; r=rhp, a=chofmann
git-svn-id: svn://10.0.0.236/trunk@52781 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-04 06:25:36 +00:00
beard%netscape.com
7670b1d344 moved System.exit() to end of main.
git-svn-id: svn://10.0.0.236/trunk@52780 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-04 06:15:55 +00:00
beard%netscape.com
a669c996d6 moved System.exit() to end of main
git-svn-id: svn://10.0.0.236/trunk@52779 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-04 06:07:35 +00:00
beard%netscape.com
a297c877e2 JShell properties files.
git-svn-id: svn://10.0.0.236/trunk@52778 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-04 06:06:40 +00:00
beard%netscape.com
09e0a51db2 factored out common code to locate a source file on lxr or bonsai
git-svn-id: svn://10.0.0.236/trunk@52777 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-04 06:06:13 +00:00
beard%netscape.com
881e796d98 communicates with cvsblame.cgi to assign blame to lines of a source file.
git-svn-id: svn://10.0.0.236/trunk@52776 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-04 06:05:52 +00:00
troy%netscape.com
66ca226b8a b=#17315. Changed DeletingFrameSubtree() to also look at the continuing
frames.


git-svn-id: svn://10.0.0.236/trunk@52775 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-04 05:23:11 +00:00
ducarroz%netscape.com
d3ee736373 Fix for bug 17902. Fix various FCC problems as well error display. R=alecf, A=chofmann
git-svn-id: svn://10.0.0.236/trunk@52774 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-04 04:58:06 +00:00
sspitzer%netscape.com
baf56f68cb fix for #17597. reply to a news article doesn't quote the body.
the problem was when we ran the nntp url to get the message we weren't
calling OnDataAvailabe() on the channel listener.  the reason is the channel
listener only got poked when ActionDisplayArticle was set as the action on
the nntp url.  but this wouldn't be the case when we got run from the Quoting backend.  I added a new action, and made sure to set it when running the url from the quoting back end, and then made sure the nntp backend did the right thing.

r=alecf, a=chofmann


git-svn-id: svn://10.0.0.236/trunk@52773 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-04 04:31:09 +00:00
jj%netscape.com
f66e87957c set installer target directory to "Mozilla Folder" and changed "bin" to "viewer" to reflect the Mac tree structure.
git-svn-id: svn://10.0.0.236/trunk@52771 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-04 03:01:29 +00:00
jj%netscape.com
2efb8c65ad . moved 'Component Registry' from [browser] to [install]
. removed 'default_prefs.js' and 'chrome:registry.rdf'
. added 'viewer:' in front of _each_ line (parser root change)


git-svn-id: svn://10.0.0.236/trunk@52770 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-04 03:01:25 +00:00
jj%netscape.com
498764afb0 fixed components lists for [Easy install] and variable names for module sizes.
git-svn-id: svn://10.0.0.236/trunk@52769 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-04 03:01:24 +00:00
beard%netscape.com
48f9184ff1 bug #17847, fix clobbering of mSlots->mAttributes in GetAttributes(). r=waterson, a=chofmann
git-svn-id: svn://10.0.0.236/trunk@52768 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-04 02:56:54 +00:00
slamm%netscape.com
a8fb89cee4 Do run-length encoding for the raw data option. End revision records with a period. Buffer the raw data output.
git-svn-id: svn://10.0.0.236/trunk@52767 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-04 02:14:56 +00:00
hyatt%netscape.com
4353fd2505 Partial fix for 17848. Part 1 of 2. 2nd part will be checked in by hangas. r=hangas, a=brendan
git-svn-id: svn://10.0.0.236/trunk@52766 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-04 01:59:04 +00:00
waterson%netscape.com
9d4795faed Bug 17024. Fix mClassList leak; add bloaty stats for nsClassList. r=hyatt a=chofmann
git-svn-id: svn://10.0.0.236/trunk@52765 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-04 01:50:47 +00:00
waterson%netscape.com
a65db3660c Bug 15146. Don't eagerly create a <xul:menu>'s contents. r=hyatt a=brendan
git-svn-id: svn://10.0.0.236/trunk@52764 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-04 01:49:34 +00:00
waterson%netscape.com
744719ecdb Bug 15146. Fix charset overlay template; don't force menus to be open; r=hyatt a=brendan
git-svn-id: svn://10.0.0.236/trunk@52763 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-04 01:48:46 +00:00
mccabe%netscape.com
46ecd1ff3b Link fixes. Not part of the Mozilla build.
git-svn-id: svn://10.0.0.236/trunk@52762 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-04 00:35:31 +00:00
beard%netscape.com
396d175b3c can handle multiple inputs, now using common FileLocator class to generate blame/lxr URLs.
git-svn-id: svn://10.0.0.236/trunk@52761 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-04 00:24:26 +00:00
beard%netscape.com
9cc1992ed4 Uses CVS/Entries to determine the revision of a checked out file.
git-svn-id: svn://10.0.0.236/trunk@52760 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-04 00:10:12 +00:00
pinkerton%netscape.com
b2e6d58834 Fix bug 15276 by flushing the data to the clipboard right before app shuts down. (r=davidm).
git-svn-id: svn://10.0.0.236/trunk@52759 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-04 00:08:59 +00:00
rogerl%netscape.com
388bc22458 Removed - not an ECMA thing and supplanted by a different mechanism.
git-svn-id: svn://10.0.0.236/trunk@52758 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-04 00:01:00 +00:00
rogerl%netscape.com
859165ee97 Fix back-reference parsing from going too far in source string
git-svn-id: svn://10.0.0.236/trunk@52757 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-04 00:00:14 +00:00
rogerl%netscape.com
ec90446de8 Replaced Closure object with FunctionObject clone
git-svn-id: svn://10.0.0.236/trunk@52756 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 23:59:35 +00:00
rogerl%netscape.com
74b9419214 Removed NativeClosure
git-svn-id: svn://10.0.0.236/trunk@52755 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 23:58:51 +00:00
rogerl%netscape.com
830d037821 Fix nested finally endless loop.
Replaced Closure object with FunctionObject clone.


git-svn-id: svn://10.0.0.236/trunk@52754 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 23:57:56 +00:00
rogerl%netscape.com
ee745b4cbf Add closure support
git-svn-id: svn://10.0.0.236/trunk@52753 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 23:56:28 +00:00
rogerl%netscape.com
02ca74c760 Removing NativeClosure
git-svn-id: svn://10.0.0.236/trunk@52752 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 23:55:59 +00:00
mcafee%netscape.com
555440d16c ftp & http proxy settings got reversed in the UI (15165). r=slamm, a=chofmann.
git-svn-id: svn://10.0.0.236/trunk@52751 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 23:53:15 +00:00
nisheeth%netscape.com
e3cf2c3428 r=harishd, a=chofmann. Fix for bugs 11992, 10563. New lines get reported in the XML document prolog. Now, JS errors in XML report correct line numbers.
git-svn-id: svn://10.0.0.236/trunk@52750 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 23:50:16 +00:00
slamm%netscape.com
13a4379130 Add feature for beard and his leak soup tool. Return raw data if 'data=1' is added as a parameter. Cleaned up some code too.
git-svn-id: svn://10.0.0.236/trunk@52749 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 23:37:44 +00:00
mcafee%netscape.com
adc6cb1f75 We were using the wrong pref to enable JS (14660). r=slamm, a=chofmann
git-svn-id: svn://10.0.0.236/trunk@52748 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 23:10:47 +00:00
hangas%netscape.com
99a452e913 Fix for bug 16189, which allows undo/redo to be used in the thread pane of mail/news. r-jefft a=chofmann
git-svn-id: svn://10.0.0.236/trunk@52746 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 23:03:12 +00:00
rogerl%netscape.com
aa1271a477 Not a part of SeaMonkey Build
- new LiveConnect AIX4.3 makefile for server builds


git-svn-id: svn://10.0.0.236/trunk@52745 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 22:55:03 +00:00
varada%netscape.com
5c09a71e2a getting rid of root variable in che file
git-svn-id: svn://10.0.0.236/trunk@52744 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 22:44:24 +00:00
rhp%netscape.com
8276a693be Fix for null pointer access - Bug #17597 - r: jefft - approved: chofmann
git-svn-id: svn://10.0.0.236/trunk@52743 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 22:35:04 +00:00
rhp%netscape.com
3f83ba7a62 Fix for null pointer access - Bug #17597 - r: jefft approved: chofmann
git-svn-id: svn://10.0.0.236/trunk@52742 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 22:34:30 +00:00
radha%netscape.com
8f70df6307 Fix for bug # 17893. Pass the url to nsISessionHistory::Add().Don't set
nsWebShell::mURL too early in the loading process.
r=law,nisheeth


git-svn-id: svn://10.0.0.236/trunk@52741 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 22:30:44 +00:00
varada%netscape.com
5908cc6076 getting rid of spaces in cck.ini
git-svn-id: svn://10.0.0.236/trunk@52740 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 22:27:29 +00:00
varada%netscape.com
777e334a14 getting rid of spaces in the inifiles and changing titles
git-svn-id: svn://10.0.0.236/trunk@52739 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 22:27:06 +00:00
varada%netscape.com
193096cba0 installing wizardmachine.ini inthe dist directory
git-svn-id: svn://10.0.0.236/trunk@52738 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 22:24:09 +00:00
varada%netscape.com
6663eb3602 This file will contain the nameof the application
git-svn-id: svn://10.0.0.236/trunk@52737 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 22:23:48 +00:00
varada%netscape.com
9d146034cd message box in interpret
git-svn-id: svn://10.0.0.236/trunk@52736 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 22:22:54 +00:00
varada%netscape.com
c2f62d838f getting rid of root variable from the che files
git-svn-id: svn://10.0.0.236/trunk@52735 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 22:22:31 +00:00
rods%netscape.com
c7fa28614d added two more tests
git-svn-id: svn://10.0.0.236/trunk@52734 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 22:14:42 +00:00
rods%netscape.com
17f32ce4ba Initial checkin of test
git-svn-id: svn://10.0.0.236/trunk@52733 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 22:14:25 +00:00
kipp%netscape.com
8fae81516b r=joki; fixed the ancient and venerable bug 1413 by noting that the code was using an optimization that wasn't always valid and that one that optimization wasn't valid, the slower path must be used...I commented the fix fairly solidly
git-svn-id: svn://10.0.0.236/trunk@52732 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 22:09:00 +00:00
akkana%netscape.com
7e907a0c91 Fix key event bustage: treat DOM_VK_RETURN and DOM_VK_ENTER equivalently. r=ftang,joki a=chofmann,leaf
git-svn-id: svn://10.0.0.236/trunk@52731 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 22:05:45 +00:00
kipp%netscape.com
44a7143485 updated document regardling block and line-layout operation; this is html documents that are not part of the build nor part of any install process, etc.
git-svn-id: svn://10.0.0.236/trunk@52730 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 21:11:37 +00:00
joki%netscape.com
68b221d555 Fixing dom event key set errors. bug 17887, a:chofmann
git-svn-id: svn://10.0.0.236/trunk@52729 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 20:53:13 +00:00
joki%netscape.com
e151377558 Reverting key set to previous version. Fixes 17887. a:chofmann r:brade.
git-svn-id: svn://10.0.0.236/trunk@52728 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 20:40:35 +00:00
endico%mozilla.org
0ee8ded981 fixed a bunch of typos. Also, handleCheckinMail.tc was replaced by handleCheckinMail.pl
git-svn-id: svn://10.0.0.236/trunk@52727 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 20:33:57 +00:00
blizzard%redhat.com
e72f94df90 patch to fix backspacing from quy@igelaus.com.au. a=choffman
git-svn-id: svn://10.0.0.236/trunk@52726 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 20:25:19 +00:00
alecf%netscape.com
b5de07e079 fix for blocker #17882
a=leaf


git-svn-id: svn://10.0.0.236/trunk@52723 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 19:47:17 +00:00
rogerl%netscape.com
9f777f2bad Added defn of AIX4_3 to help fix dup typedef int8,int16 etc
git-svn-id: svn://10.0.0.236/trunk@52720 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 18:56:17 +00:00
slamm%netscape.com
8fc0df1c8f Ignore a few more warnings caused by lame unix header files.
git-svn-id: svn://10.0.0.236/trunk@52719 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 18:52:13 +00:00
gagan%netscape.com
34d286f60f Last of the leftover files... that didn't include the API change.
git-svn-id: svn://10.0.0.236/trunk@52716 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 09:33:03 +00:00
gagan%netscape.com
8dc7bd557e Modified the call to match the new signature of CreateTransport. a=mcafee.
git-svn-id: svn://10.0.0.236/trunk@52715 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 08:52:04 +00:00
gagan%netscape.com
4ef759b3d4 Removed an extra free that cvs merge put in!
git-svn-id: svn://10.0.0.236/trunk@52714 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 08:21:37 +00:00
gagan%netscape.com
cb1a2aee98 Argh... speed kills. Removed this conflict that I accidently checked in.
git-svn-id: svn://10.0.0.236/trunk@52713 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 08:19:54 +00:00
gagan%netscape.com
8f3ae7048a Fixes 11708,15477 and partial 14610. r=warren. We now pass a print host for displaying in status messages that is different than the hostname connecting to. Also added Keep-Alive support (turned on by user_pref("network.http.keep-alive",1))We also honor the "network.proxy.type" preference to turn the proxy use on and off.
git-svn-id: svn://10.0.0.236/trunk@52712 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 08:17:59 +00:00
gagan%netscape.com
4ac72526b1 Fixes 11708,15477 and partial 14610. r=warren. We now pass a print host for displaying in status messages that is different than the hostname connecting to. Also added Keep-Alive support (turned on by user_pref("network.http.keep-alive",1))
git-svn-id: svn://10.0.0.236/trunk@52711 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 08:14:38 +00:00
gagan%netscape.com
e67319abec *** empty log message ***
git-svn-id: svn://10.0.0.236/trunk@52710 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 08:12:18 +00:00
gagan%netscape.com
6bf9a22c91 Added printHost parameter for use in status messages in cases where printHost is different than the connecting host (as in the case of proxies) Fixes bug 11708. r=warren.
git-svn-id: svn://10.0.0.236/trunk@52709 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 08:11:39 +00:00
sgehani%netscape.com
60ed9bf4bb Removing obsolete prefix files. (Replaced by nsInstallerPrefix* and mozInstallerPrefix*.)
git-svn-id: svn://10.0.0.236/trunk@52708 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 08:06:59 +00:00
pavlov%netscape.com
0f628926da work on nsIWidget r=alecf
git-svn-id: svn://10.0.0.236/trunk@52707 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 08:04:59 +00:00
sgehani%netscape.com
ee85b8ad76 Chnage MIW target name to Mozilla Installer [r=sfraser].
git-svn-id: svn://10.0.0.236/trunk@52706 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 07:54:28 +00:00
sgehani%netscape.com
9d8269b689 1> Extraction of all files rather than regexp core_*/* search.
2> Prepare installer to work off of local archives for CD scenario and Mozilla (no sdinst.dll).                                    
3> Fix build warnings.                                                    
4> Separated out Netscape and Mozilla specific targets.    
5> Separated out Netscape and Mozilla specfic resources.
                                                                                      
[r=sfraser]


git-svn-id: svn://10.0.0.236/trunk@52705 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 07:53:59 +00:00
mscott%netscape.com
6ade5969e3 work around for Bug 17065
for bienvenu
r=mscott


git-svn-id: svn://10.0.0.236/trunk@52704 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 07:53:44 +00:00
mscott%netscape.com
7b3899b763 Some work arounds to HIDE Bug #17065 which causes us to hang when parsing large imap folders on linux.
WE still have the problme where the ui thread is stealing events from the imap thread and processing them
on the ui thread.

We're just working around it so folks can use linux imap mail. This code was jointly written with bienvenu.

r=bienvenu/mscott


git-svn-id: svn://10.0.0.236/trunk@52703 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 07:52:45 +00:00
sgehani%netscape.com
dd18053d33 First Checked In.
git-svn-id: svn://10.0.0.236/trunk@52702 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 07:50:01 +00:00
dveditz%netscape.com
3f4468adf1 fixes 8271,6410,12694 and similar startup/registry problems
git-svn-id: svn://10.0.0.236/trunk@52701 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 07:46:38 +00:00
dveditz%netscape.com
3330477d88 shutting up copious warnings using /W4 on MSVC
git-svn-id: svn://10.0.0.236/trunk@52700 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 07:39:19 +00:00
dveditz%netscape.com
acf32d6fc2 Changing registry keys to a mozilla-centric name rather than netscape.
git-svn-id: svn://10.0.0.236/trunk@52699 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 07:36:03 +00:00
pavlov%netscape.com
c5f9102c78 work on scrolling, CSS2 native system colors, etc. r=mcafee
git-svn-id: svn://10.0.0.236/trunk@52697 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 07:34:50 +00:00
alecf%netscape.com
cb89931340 add open="true" to all the account
r=scottip
no bug, it's cosmetic/usability thing


git-svn-id: svn://10.0.0.236/trunk@52696 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 07:33:08 +00:00
mccabe%netscape.com
793e09ae44 Fix many nsInterfaceInfo leaks, thanks in part to patches provided by Patrick Beard. Fixes 15855. Some remain.
Clear up build warnings, and quiet nsInterfaceInfomanager debug output unless DEBUG_iim.  Makes startup a li'l less noisy.  Fixes 15628.

r=jband


git-svn-id: svn://10.0.0.236/trunk@52695 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 07:23:37 +00:00
alecf%netscape.com
e92bd577aa fix for #17214 - consolidate all username and hostname handling so that escaping/unescaping happens logically
git-svn-id: svn://10.0.0.236/trunk@52694 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 07:16:59 +00:00
joki%netscape.com
c6ca4a722e added files: mozilla/dom/src/events/nsJSKeyEvent.cpp
git-svn-id: svn://10.0.0.236/trunk@52693 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 07:12:13 +00:00
joki%netscape.com
c79e9c67d2 Changes to DOM events to accomodate the new breakdown of events into mouse and key events. This fixes a couple of bug, though the main one is 13406. Involves changes to multiple DOM generated file as well as fixing up usage of DOM event api usage in editor, rdf, and xul. r:vidur
git-svn-id: svn://10.0.0.236/trunk@52691 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 07:11:45 +00:00
putterman%netscape.com
ff8a8db130 return rv instead of NS_OK so that we only return null targets with NS_RDF_NO_VALUE.
This stops a bunch of assertions.  reviewed by alecf.


git-svn-id: svn://10.0.0.236/trunk@52690 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 07:09:56 +00:00
waterson%netscape.com
f4ec813667 Bug 13252. Build content for current template before recursing to build content for children. r=alecf.
git-svn-id: svn://10.0.0.236/trunk@52689 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 06:59:49 +00:00
buster%netscape.com
1115c0f4da fixed bug 17792 (text set via DOM displays in HTL password control)
r=myself, I'll take the heat if this goes bad.  It's a very simple change.
The text control optimization was turned on for single line text controls,
and turned off for text areas.  With this change, the optimization is also
turned off for password fields.  This shouldn't effect performance in any
noticable way, because there are very rarely more than one or two password
controls on a single page.  The optimization in the case of password fields
isn't worth the extra code and complexity for dealing with replacing
characters with '*'


git-svn-id: svn://10.0.0.236/trunk@52688 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 06:53:07 +00:00
sgehani%netscape.com
40645c00d1 First Checked In.
git-svn-id: svn://10.0.0.236/trunk@52687 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 06:12:10 +00:00
davidm%netscape.com
eb18a1b917 3110
r= morse
modification to get single sign on back


git-svn-id: svn://10.0.0.236/trunk@52686 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 06:07:53 +00:00
ftang%netscape.com
74098be2bc back out 1.32 to fix 17811. This will break 14914
git-svn-id: svn://10.0.0.236/trunk@52685 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 05:47:25 +00:00
dcone%netscape.com
6d4e070e6b Fixed a divide by zero crasher, and cleaned up borders. r=buster
git-svn-id: svn://10.0.0.236/trunk@52684 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 05:46:01 +00:00
dp%netscape.com
86bb1af06f Eliminating use of nsService class in preparation for making services
usable with COMPtrs.


git-svn-id: svn://10.0.0.236/trunk@52683 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 05:41:43 +00:00
dp%netscape.com
df73ba585b Deny GetService() requests which cause Creation of new objects on
shutdown. r=jband, r=ScottPutterman


git-svn-id: svn://10.0.0.236/trunk@52682 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 05:38:45 +00:00
dp%netscape.com
e537410a85 Removing nsIShutdown listener usage for ServiceManager.
git-svn-id: svn://10.0.0.236/trunk@52681 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 05:36:30 +00:00
danm%netscape.com
7de071230b instead of using the thread hashtable's enumerator while processing events (a Mac-specific habit), build and use a parallel linked list structure. hashtable and list want unification someday. fixes bug 16551. r:brendan@netscape.com
git-svn-id: svn://10.0.0.236/trunk@52680 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 05:30:49 +00:00
davidm%netscape.com
7a25b6fe62 8673 ShutDown() should try to close all open windows.
r=sfraser
set tryToClose function and proprogate out if the close was sucessfull


git-svn-id: svn://10.0.0.236/trunk@52679 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 05:28:02 +00:00
davidm%netscape.com
ad7f1ff33f 8673 ShutDown() should try to close all open windows.
r= hangas


git-svn-id: svn://10.0.0.236/trunk@52678 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 05:26:31 +00:00
davidm%netscape.com
16e407c7ff 12539 Crash when quitting browser while bookmark properties dialog
r = saari
 nsINetPrompt implementation
r morse


git-svn-id: svn://10.0.0.236/trunk@52677 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 05:25:21 +00:00
davidm%netscape.com
218749a885 6552 Browser-generated forms not triggering single-signon
switch to use nsINetPrompt so that single sign lives again
r morse


git-svn-id: svn://10.0.0.236/trunk@52676 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 05:24:01 +00:00
davidm%netscape.com
793f6ff27d 6552 Browser-generated forms not triggering single-signon
add nsINetPrompt for single sign on
r morse


git-svn-id: svn://10.0.0.236/trunk@52675 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 05:21:49 +00:00
davidm%netscape.com
77cd59699a First Checked In.
git-svn-id: svn://10.0.0.236/trunk@52674 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 05:19:39 +00:00
warren%netscape.com
fa66ea22fe Structural changes for MakeAbsolute performance. bug#10736 r=valeski
git-svn-id: svn://10.0.0.236/trunk@52673 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 05:13:44 +00:00
warren%netscape.com
c34a2941df Made nsIInputStreamChannel scriptable and constructable from component manager. bug#15294
git-svn-id: svn://10.0.0.236/trunk@52672 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 05:09:20 +00:00
warren%netscape.com
335afbc323 Fixed more bustage from gordon's checking -- missing vtable symbols for nsDNSRequest's (unused) nsIRequest interface.
git-svn-id: svn://10.0.0.236/trunk@52671 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 04:57:34 +00:00
sgehani%netscape.com
8b93319dca Fix build bustage for cathleen.
git-svn-id: svn://10.0.0.236/trunk@52670 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 04:30:14 +00:00
beard%netscape.com
afdb749e2c First Checked In.
git-svn-id: svn://10.0.0.236/trunk@52669 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 04:26:41 +00:00
waldemar%netscape.com
50364b8107 Removed distribution restrictions because this is part of the language spec
git-svn-id: svn://10.0.0.236/trunk@52668 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 03:59:31 +00:00
waldemar%netscape.com
9c4cb1eacb Updated to Mozilla 1.1 license
git-svn-id: svn://10.0.0.236/trunk@52667 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 03:58:07 +00:00
mscott%netscape.com
9dc7572e8b (not part of the seamonkey build!!)
no longer need nsURILoaderCIDs.h


git-svn-id: svn://10.0.0.236/trunk@52666 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 03:55:39 +00:00
mscott%netscape.com
e59a60cd4c (not part of the seamonkey build!!!!)
name change of nsURIDispatcher to nsIURILoader


git-svn-id: svn://10.0.0.236/trunk@52665 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 03:53:33 +00:00
mscott%netscape.com
6ef6f80a98 one more tweak for Bug #17825
r=sspitzer


git-svn-id: svn://10.0.0.236/trunk@52664 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 03:51:12 +00:00
gagan%netscape.com
c1350f1279 Added file. Not in the build. Some utility code for color console messages on Unix. Using this is simple- Declare PRINTF_FOO in the scope of your printf statements where FOO is one of the colors in (YELLOW, RED, CYAN, BLUE, MAGENTA, GREEN) and any printfs in that scope will print in color. You may also start and stop colors by using STARTF00 and ENDCOLOR. So you can try something like printf(STARTRED "Red " STARTBLUE "Blue" ENDCOLOR);
git-svn-id: svn://10.0.0.236/trunk@52663 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 03:43:13 +00:00
pierre%netscape.com
cff215812e Fix from py8ieh=bugzilla@bath.ac.uk for bugs 12765 and 12766. Updated link/visited/out-of-date declarations for hover/focus/active. r=me
git-svn-id: svn://10.0.0.236/trunk@52662 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 03:19:04 +00:00
jj%netscape.com
0e29d47284 First Checked In.
git-svn-id: svn://10.0.0.236/trunk@52661 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 03:17:47 +00:00
bienvenu%netscape.com
5ca1658c79 add cancel method to nntp protocol r=mscott
git-svn-id: svn://10.0.0.236/trunk@52660 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 03:17:36 +00:00
bienvenu%netscape.com
cea102d05c add cancel method to mailbox and pop protocol r=mscott
git-svn-id: svn://10.0.0.236/trunk@52659 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 03:17:15 +00:00
bienvenu%netscape.com
5b5b7371ea fix build warnings, r=putterman, add cancel method to protocol r=mscott
git-svn-id: svn://10.0.0.236/trunk@52658 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 03:16:26 +00:00
mscott%netscape.com
a3d9d45365 Bug #17825 --> pass nsIMsgWindow into SetWindow instead of a msgStatus feedback object in order
to fix save attachements.
r=sspitzer


git-svn-id: svn://10.0.0.236/trunk@52657 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 03:12:58 +00:00
akkana%netscape.com
9ee5feb4b3 Part of bratell@lysator.liu.se's fix to the nsHTMLToTXTSinkStream. r=akkana
git-svn-id: svn://10.0.0.236/trunk@52656 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 03:08:04 +00:00
akkana%netscape.com
8e7977a75f Contribution by Daniel Bratell <bratell@lysator.liu.se> to implement
format=flowed for mail plaintext output. r=akkana and (I think) rhp.


git-svn-id: svn://10.0.0.236/trunk@52655 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 02:46:16 +00:00
jj%netscape.com
f64d069264 First Checked In.
git-svn-id: svn://10.0.0.236/trunk@52654 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 02:44:58 +00:00
akkana%netscape.com
ec594ff4cd Contribution by Daniel Bratell <bratell@lysator.liu.se> to implement
format=flowed for mail plaintext output.  Restructures the plaintext
output wrapping code, wholly or partially fixes numerous bugs in plaintext
output (13278, 13442, 17823, 17824, 13753, 12551), makes the automated
tests work on Windows and adds some new automated tests. r=akkana.


git-svn-id: svn://10.0.0.236/trunk@52653 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 02:44:44 +00:00
jj%netscape.com
16fbda6ce8 File Removed.
git-svn-id: svn://10.0.0.236/trunk@52652 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 02:44:27 +00:00
gordon%netscape.com
1c497557b9 Fix more of my bustage: pass clientContext parameter back on callbacks from nsDNSService::Lookup(). r=warren.
git-svn-id: svn://10.0.0.236/trunk@52651 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 02:42:52 +00:00
danm%netscape.com
0aac10ff9d oops! Observe() was checked in flawed in 1.90. gtk may one day have noticed. r:noman@odyssey.org
git-svn-id: svn://10.0.0.236/trunk@52650 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 02:29:59 +00:00
varada%netscape.com
d313f9eb9b checking in right cck.che
git-svn-id: svn://10.0.0.236/trunk@52649 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 02:21:02 +00:00
cmanske%netscape.com
77285a1fb7 Changed Mail Compose XUL to use new comboboxes on toolbar (bug 17098).
git-svn-id: svn://10.0.0.236/trunk@52648 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 02:18:01 +00:00
warren%netscape.com
dc473b8de3 Fixed Gordon's wackage.
git-svn-id: svn://10.0.0.236/trunk@52647 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 02:18:00 +00:00
selmer%netscape.com
114c2d4d83 Stupid, remove jar_s/zlib_s since not using it!
git-svn-id: svn://10.0.0.236/trunk@52646 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 02:10:04 +00:00
selmer%netscape.com
662527d103 Stupid, remove ifuncns.obj since not using it!
git-svn-id: svn://10.0.0.236/trunk@52645 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 02:08:55 +00:00
cathleen%netscape.com
7c3533ab68 fixed bug #17774. prevent crash when UI name is passed as null.
also moved mPatchList to allocate hashtable to nsIntall::Patch().  r=dougt


git-svn-id: svn://10.0.0.236/trunk@52644 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 02:01:02 +00:00
varada%netscape.com
2c76c5f5ed changing the template name from ws_template to wstemplate
git-svn-id: svn://10.0.0.236/trunk@52643 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 01:58:43 +00:00
varada%netscape.com
0ccce7f199 fixing bug #6558 adding new show config info button in checklist.ini and changing text of show sum button on build page to reflect the same
git-svn-id: svn://10.0.0.236/trunk@52642 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 01:57:07 +00:00
selmer%netscape.com
00b336668e Big honking checkin for Install Builder
git-svn-id: svn://10.0.0.236/trunk@52641 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 01:51:54 +00:00
nisheeth%netscape.com
424a4cc34c r=vidur. Fix for bug 9075. Return NS_OK instead of NS_ERROR_NOT_IMPLEMENTED from nsXMLDocument::GetDocType(). This allows script parsing to continue after a document.doctype JS statement is encountered.
git-svn-id: svn://10.0.0.236/trunk@52640 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 01:48:54 +00:00
alecf%netscape.com
1bb6cf2186 fix message datasource so it doesn't return an error back to RDF
partial fix for #17811
r=putterman


git-svn-id: svn://10.0.0.236/trunk@52639 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 01:38:54 +00:00
wtc%netscape.com
fb1a3c22e8 Bugzilla bug #15906: add support for the GC leak detector. Contributed
by Patrick Beard <beard@netscape.com>.


git-svn-id: svn://10.0.0.236/trunk@52638 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 01:37:19 +00:00
kmcclusk%netscape.com
fe5984a76a nsIScriptableRegion instances can now be created on WIN32.
nsbug=12465; r=beard@netscape.com


git-svn-id: svn://10.0.0.236/trunk@52637 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 01:37:12 +00:00
wtc%netscape.com
64b8be9959 Bugzilla bug #15906: use the GC leak detector. Contributed by
Patrick Beard <beard@netscape.com>.


git-svn-id: svn://10.0.0.236/trunk@52636 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 01:33:03 +00:00
jj%netscape.com
ad629fba04 Added 'Component Registry' + removed 14 xpi engine files from [core] + renamed modules [xpiengine]->[install] and [core]->[browser]
git-svn-id: svn://10.0.0.236/trunk@52635 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 01:31:35 +00:00
gordon%netscape.com
49947504d3 Basic Mac implementation of async DNS. r=warren, patrick; part of bug:10731.
git-svn-id: svn://10.0.0.236/trunk@52634 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 01:24:51 +00:00
gordon%netscape.com
66130367d8 Mac specific interrupt<->thread synchronization mechanism, required for async Mac dns.
r=warren, patrick, wtc, srinivas, larryh; part of bug:10731.


git-svn-id: svn://10.0.0.236/trunk@52633 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 01:22:58 +00:00
rods%netscape.com
9b02da0b6f put quotes around all button i.e. type="button"
rearranged all focus,hover & active rules and put them in that order.
r=kmcclusk, part of 14951


git-svn-id: svn://10.0.0.236/trunk@52632 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 01:01:55 +00:00
cmanske%netscape.com
cabfc8b277 Fixed bugs 17098, 17808, and a lot of UI cleanup. Rewrote Image Properties dialog so More/Fewer works and layout is better. Moved image URLs from DTD to CSS files. r=brade
git-svn-id: svn://10.0.0.236/trunk@52631 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 00:48:26 +00:00
terry%mozilla.org
435176df52 Whoops! Was reporting ASSIGNED bugs as being closed. Also, changed
it to report the resolution of the bug instead of the word "closed".
Many thanks to dbaron@fas.harvard.edu for suggesting this change, and
reporting the bug.


git-svn-id: svn://10.0.0.236/trunk@52630 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 00:44:29 +00:00
kipp%netscape.com
eed8ac6824 r=troy; remove another 4 bytes from each block frame for a total of 10% today :-)
git-svn-id: svn://10.0.0.236/trunk@52629 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 00:42:12 +00:00
kipp%netscape.com
fbfbed8f89 r=troy; Removed old garbage code that referred to an unused symbol from nsHTMLParts.h
git-svn-id: svn://10.0.0.236/trunk@52628 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 00:41:42 +00:00
mstoltz%netscape.com
2656423bf8 Fixed windows breakage in standalone by adding a typedef
git-svn-id: svn://10.0.0.236/trunk@52627 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 00:41:20 +00:00
rogerl%netscape.com
6701db0533 Not a part of SeaMonkey Build
- added lnker option for server folks


git-svn-id: svn://10.0.0.236/trunk@52626 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 00:28:51 +00:00
mjudge%netscape.com
9252d81168 small fix from pierre on use of the style system. pierre reviewed.
git-svn-id: svn://10.0.0.236/trunk@52625 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 00:11:49 +00:00
kmcclusk%netscape.com
a30e4bc896 Removed call to mWebShell->Repaint in nsHTMLFrameInnerFrame::Reflow. This eliminates
multiple repaints of the content area in Mozilla when the content area is resized.
The mWebShell->SetBounds is sufficient since it invalidates the webshell window.
bug 16270; r= rods@netscape.com


git-svn-id: svn://10.0.0.236/trunk@52624 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 00:11:40 +00:00
jfrancis%netscape.com
3d0b1d674f fix for 17673;r=sfraser
git-svn-id: svn://10.0.0.236/trunk@52623 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 00:07:37 +00:00
rods%netscape.com
13ee3e3b3d Add CountAllChild to count all the option and optgroup elements so lists
get sized correctly when no rows are specified
r=kmcclusk, bug=4050


git-svn-id: svn://10.0.0.236/trunk@52622 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 00:07:01 +00:00
rods%netscape.com
50248ce5b0 Added code to size the button appropriately when style sets the size and
make it clip for drawing.
NOTE: This is a temporary fix for bug #17474


git-svn-id: svn://10.0.0.236/trunk@52621 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 00:05:30 +00:00
rods%netscape.com
89ba99747a Combos now size correctly when the size is specified via style
r=kmcclusk, b=16317


git-svn-id: svn://10.0.0.236/trunk@52620 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 00:03:32 +00:00
kmcclusk%netscape.com
a09d34ccd1 Fixed places where SetProperty and Reset were missing the nsIPresContext argument.
This fixed 6 warnings and cases where reset and set property where not working properly for
all form elements. r = rods@netscape.com.


git-svn-id: svn://10.0.0.236/trunk@52619 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 00:01:13 +00:00
rods%netscape.com
913fe3b85c removed a line that wasn't needed and caused a warning r=kmcclusk
git-svn-id: svn://10.0.0.236/trunk@52618 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 23:54:40 +00:00
bienvenu%netscape.com
381c484f1a turn meteors back off, per mscott's request and review
git-svn-id: svn://10.0.0.236/trunk@52617 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 23:46:54 +00:00
mstoltz%netscape.com
fc96225344 Created helper class nsZipRead to hold read state information. That way
one nsJAR can support multiple input streams. r=norris


git-svn-id: svn://10.0.0.236/trunk@52616 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 23:46:09 +00:00
norris%netscape.com
2323d5792a Fix
10194 Possible security vulnerability in "chrome:" protocol - acce
14979 "chrome" protocol allows accessing arbitrary files on the lo
r=vidur


git-svn-id: svn://10.0.0.236/trunk@52615 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 23:44:27 +00:00
kipp%netscape.com
29b0107f3f Fixed up comments in test file list
git-svn-id: svn://10.0.0.236/trunk@52614 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 23:43:25 +00:00
kipp%netscape.com
e4bab0a0e6 r=troy; Shrink block frames by 4 bytes per instance by making the overflow-lines instance variable a frame property
git-svn-id: svn://10.0.0.236/trunk@52613 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 23:42:52 +00:00
robinf%netscape.com
f5e6d0785f fixing M11 bug 15335
git-svn-id: svn://10.0.0.236/trunk@52612 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 23:42:48 +00:00
pinkerton%netscape.com
72f9201ec6 rewrote item detection code to handle the case where the toolbar isn't in a frame that is at 0,0 (like windows with the menu bar above the personal toolbar). (r=saari, bug #17800).
git-svn-id: svn://10.0.0.236/trunk@52611 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 23:42:16 +00:00
kipp%netscape.com
f734a9cc39 r=troy; Added a new frame property atom
git-svn-id: svn://10.0.0.236/trunk@52610 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 23:42:13 +00:00
pollmann%netscape.com
78899987be Bug 7554: HTML Labels now pass JS events to form element the label is for
r=harishd


git-svn-id: svn://10.0.0.236/trunk@52609 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 23:38:17 +00:00
jband%netscape.com
f26efbdd12 r=mccabe use NS_NewTimer stuff only on Win32 in this test code. This avoids Unix build order problems that were keeping the xpconnect test components from working at all.
git-svn-id: svn://10.0.0.236/trunk@52608 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 23:35:54 +00:00
cls%seawood.org
3e1a9ca95a Removed unused NECKO ifdefs.
a=leaf


git-svn-id: svn://10.0.0.236/trunk@52607 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 23:34:03 +00:00
jband%netscape.com
e1ba1048c5 r=mccabe make output from xpcshell's new 'dump' method go to the same place as output of 'print': stdout rather than stderr
git-svn-id: svn://10.0.0.236/trunk@52606 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 23:31:09 +00:00
alecf%netscape.com
79451301a6 fix for #12703 - don't hold onto XULElements after they have been removed from the tree - don't bother checking mDocument because it will be null when the content has been removed from the document
r=hyatt


git-svn-id: svn://10.0.0.236/trunk@52605 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 23:30:33 +00:00
ducarroz%netscape.com
ab0bddd10c Fix for bug 17768. Set ProgID to soemething else than an empty string. R=rhp
git-svn-id: svn://10.0.0.236/trunk@52604 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 23:29:51 +00:00
nisheeth%netscape.com
2d91e8e29f Fix bug 15304. Added a flag to bscmake.exe. Only executed when the browse_info target is used.
git-svn-id: svn://10.0.0.236/trunk@52603 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 23:29:48 +00:00
sspitzer%netscape.com
baa984b1b1 fix #16457, r=mscott. if an error occurs in the SMTP protocol state machine, we may need to pop up the alert right then, and not when we get back to the url listener, because we'd loose the error text from the SMTP server. these changes
pop up the alert and set the error code so that the url listener doesn't try to
pop up another alert.  define a bunch of new error codes, and remove nsMsgTransition.h, which was defining all the MK_ error codes that were in there.
are no longer needed.


git-svn-id: svn://10.0.0.236/trunk@52602 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 23:27:46 +00:00
cls%seawood.org
a95990ff7f No need to generate obsolete network Makefiles
git-svn-id: svn://10.0.0.236/trunk@52601 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 23:27:45 +00:00
selmer%netscape.com
c4d5dc11d9 New Makefile system for builds
git-svn-id: svn://10.0.0.236/trunk@52600 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 23:25:41 +00:00
nhotta%netscape.com
fac05a4ebc Added a call to encoder finish, this allows encoder to write out remaining data such as escape sequences of ISO-2022-JP, bug 17805, r=ftang.
git-svn-id: svn://10.0.0.236/trunk@52599 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 23:24:10 +00:00
valeski%netscape.com
f63ddf59d3 r=cyeh, forcing PR_LOGGING for ftp in release builds
git-svn-id: svn://10.0.0.236/trunk@52598 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 23:24:06 +00:00
bienvenu%netscape.com
c5b3a013a5 remove the imap channel from the load group when finished running r=mscott
git-svn-id: svn://10.0.0.236/trunk@52597 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 23:22:29 +00:00
akhil.arora%sun.com
38a11db343 17802 r=drapeau@eng.sun.com Workshop C++ 5.0 needs a cast
git-svn-id: svn://10.0.0.236/trunk@52596 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 22:57:58 +00:00
rogerl%netscape.com
9871278292 Added Kurt Westerfeld's fix for 'undefined is not a function' message.
git-svn-id: svn://10.0.0.236/trunk@52595 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 22:52:10 +00:00
dmose%mozilla.org
83e38c06cc updated license boilerplate to xPL v1.1
git-svn-id: svn://10.0.0.236/trunk@52594 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 22:43:10 +00:00
cls%seawood.org
7190f1f2a8 Use #elif not #elseif
git-svn-id: svn://10.0.0.236/trunk@52593 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 22:36:59 +00:00
dmose%mozilla.org
20069a7cf6 updated license boilerplate to xPL v1.1
git-svn-id: svn://10.0.0.236/trunk@52592 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 22:23:59 +00:00
petitta%netscape.com
5a257f75ca initailizes the dist directory
git-svn-id: svn://10.0.0.236/trunk@52590 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 22:21:05 +00:00
petitta%netscape.com
29a164a7ec add include file InitDist.win
git-svn-id: svn://10.0.0.236/trunk@52589 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 22:15:36 +00:00
terry%mozilla.org
927e36576b Due to popular request, "bug changed" mail will only report changes in
state on dependent bugs if they move from an 'open' to a 'closed'
state, or visa-versa.  Also, if there are more than 5 bugs on the
list, then we won't even try to generate the details (doing so only
generates lots of extra mail that is too hard to parse anyway.)


git-svn-id: svn://10.0.0.236/trunk@52588 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 22:14:11 +00:00
pavlov%netscape.com
a90526ccd9 add scriptable region to unix factory fixes bug 12465 r=slamm
git-svn-id: svn://10.0.0.236/trunk@52587 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 21:57:14 +00:00
ssu%netscape.com
857b4649d5 fixing redness on mac tinderbox. #else if doesn't work. Changed it to #elseif
git-svn-id: svn://10.0.0.236/trunk@52586 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 21:50:07 +00:00
pinkerton%netscape.com
21dea39deb turn off very verbose debug output. r=saari
git-svn-id: svn://10.0.0.236/trunk@52585 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 21:39:47 +00:00
bienvenu%netscape.com
3b1ca7dd5b more work to hook up stop button, r=mscott 17743
git-svn-id: svn://10.0.0.236/trunk@52584 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 21:36:59 +00:00
jfrancis%netscape.com
e109f40aa7 changed bogus node type to br to get rid of annoying space in empty editors; r=kin
git-svn-id: svn://10.0.0.236/trunk@52583 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 21:35:21 +00:00
rhp%netscape.com
51c892b441 Changes to remove ToCString() calls - Bug #'s: 17580 17581 - r: nhotta
git-svn-id: svn://10.0.0.236/trunk@52582 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 21:31:32 +00:00
pinkerton%netscape.com
3490d404ad add text/plain flavor acceptance to dragOver on personal toolbar and set canDrop on drag session so win32 uses the correct cursor feedback. (r=saari).
git-svn-id: svn://10.0.0.236/trunk@52581 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 21:28:14 +00:00
cata%netscape.com
f404d8e1ea Fixing typo in dtd file. Checkin for momoi, r=cata, bug=17018.
git-svn-id: svn://10.0.0.236/trunk@52580 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 21:27:02 +00:00
jefft%netscape.com
2c52d1343a fixed bug 16540 - 4.x Pop3 prefs not being heeded; ported over as server specific prefs, also added logging facility, less query interface, more cached capability on server; r=bienvenu
git-svn-id: svn://10.0.0.236/trunk@52579 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 21:20:47 +00:00
waldemar%netscape.com
3d577f8188 Added more no-line-break constraints, simplified visibility treatment, and added named function arguments
git-svn-id: svn://10.0.0.236/trunk@52578 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 21:12:04 +00:00
nhotta%netscape.com
5612e1f8a8 First Checked In.
git-svn-id: svn://10.0.0.236/trunk@52577 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 21:09:05 +00:00
nhotta%netscape.com
5b9bc9b77b Removing a file (not part of the build), this project file was checked in as a text instead of binary.
git-svn-id: svn://10.0.0.236/trunk@52576 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 21:08:38 +00:00
pinkerton%netscape.com
00599502a2 set event struct type for drag events. previously uninitialized and caused random things to occur during drags (r=saari).
git-svn-id: svn://10.0.0.236/trunk@52575 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 21:04:40 +00:00
waterson%netscape.com
2fa1de35a2 Don't enable drag & drop on scrollbars. r=pink,hyatt
git-svn-id: svn://10.0.0.236/trunk@52574 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 21:03:46 +00:00
msw%gimp.org
ceb7def2a5 applied patch in 14263 to build xpconnect as a component on
Linux/alpha.  Should also fix 13601, 11847.
r=jband@netscape.com


git-svn-id: svn://10.0.0.236/trunk@52573 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 21:03:13 +00:00
ftang%netscape.com
f80890ee10 fix one typo. add new locale name for Chinese. r=nhotta
git-svn-id: svn://10.0.0.236/trunk@52572 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 20:58:47 +00:00
tonyr%fbdesigns.com
25d9029cf4 Fixed discovery of mail folders to import when multiple MAPI message stores are in use
git-svn-id: svn://10.0.0.236/trunk@52571 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 20:58:37 +00:00
harishd%netscape.com
0bce4f45ab No bug number.
Improvement to table performance by reducing
the number of context switch calls.

r=vidur


git-svn-id: svn://10.0.0.236/trunk@52570 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 20:58:12 +00:00
matt%netscape.com
86cd62a5d8 fix for bug 14634 r-hangas
git-svn-id: svn://10.0.0.236/trunk@52569 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 20:57:22 +00:00
tonyr%fbdesigns.com
873914c889 Fix to escape From lines in Outlook Express 5.0 message bodies
git-svn-id: svn://10.0.0.236/trunk@52568 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 20:57:21 +00:00
morse%netscape.com
9410e061b6 fix bug 17645, high-order bit on cookie character getting garbled, r=dp
git-svn-id: svn://10.0.0.236/trunk@52567 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 20:56:13 +00:00
waldemar%netscape.com
5123dfaa8d Fixed constraint positioning bug
git-svn-id: svn://10.0.0.236/trunk@52566 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 20:54:44 +00:00
matt%netscape.com
d1c10fc10e fix for bug 14634 r-bill
git-svn-id: svn://10.0.0.236/trunk@52565 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 20:51:29 +00:00
matt%netscape.com
c018d1acdc fix for bug 6830 and 14634 r-bill
git-svn-id: svn://10.0.0.236/trunk@52564 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 20:49:49 +00:00
sgehani%netscape.com
119d8e6f37 Fixed bugs 10540, 9148. Libjar now reads teh central directory headers as opposed to the local file headers. This enables us to glean permissions informationand restore file mode upon extraction. A side-effect is the bug 10540 fix where the Install.Execute() API now works on Linux since we restore the execute bits in temporarily extracted files. [r=ssu]
git-svn-id: svn://10.0.0.236/trunk@52563 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 20:37:28 +00:00
slamm%netscape.com
19101eea26 Bloat: Change coloring algorithm. Set the baseline every time there is a jump up or down.
git-svn-id: svn://10.0.0.236/trunk@52562 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 20:09:20 +00:00
rogerl%netscape.com
3ee7564f6a More RegExp back reference specification mucking about.
git-svn-id: svn://10.0.0.236/trunk@52561 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 20:04:57 +00:00
rogerl%netscape.com
bbab2a24a8 Fixed up for Java vs. ECMA definitions in edge cases
git-svn-id: svn://10.0.0.236/trunk@52560 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 20:04:16 +00:00
tbogard%aol.net
14fc302c46 Changed URIDispatcher to URILoader throughout.
git-svn-id: svn://10.0.0.236/trunk@52559 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 19:36:43 +00:00
mscott%netscape.com
24c042e752 Add cvsignore file for uriloader\build
git-svn-id: svn://10.0.0.236/trunk@52558 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 19:21:49 +00:00
mscott%netscape.com
3088a6720d (not part of the build!)
add .cvsignore file


git-svn-id: svn://10.0.0.236/trunk@52557 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 19:21:01 +00:00
mscott%netscape.com
ce5a53f536 this directory is not part of the build!!!
add .cvsignore file


git-svn-id: svn://10.0.0.236/trunk@52556 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 19:18:04 +00:00
mscott%netscape.com
84368cfe83 this directory isn't part of the build!!!!
add a Makefile for uriloader\build


git-svn-id: svn://10.0.0.236/trunk@52555 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 19:09:50 +00:00
mscott%netscape.com
a31f301140 (This directory isn't part of the build!!)
Add a Makefile for the uriloader base directory.


git-svn-id: svn://10.0.0.236/trunk@52554 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 19:09:15 +00:00
akhil.arora%sun.com
1c67d02237 17610 r=akhil.arora@sun.com, fix=Denis Sharypov <sdv@sparc.spb.su>
Cosmetic changes to remove warnings generated by Visual C++ compiler
Do not link with unneccessary library raptorgfx in makefile.win
Use JAVAHOME to point to JDK instead of hardcoding the path


git-svn-id: svn://10.0.0.236/trunk@52553 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 18:52:14 +00:00
akhil.arora%sun.com
5b541fa64b 17610 r=Denis Sharypov <sdv@sparc.spb.su>
Make code const correct to remove warnings from workshop 5.0 compiler


git-svn-id: svn://10.0.0.236/trunk@52552 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 18:42:53 +00:00
kipp%netscape.com
37b2efc82c r=ftang; Fixed regression in linux font rendering caused by case sensitivity being required for the character set lookups
git-svn-id: svn://10.0.0.236/trunk@52551 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 18:20:05 +00:00
kipp%netscape.com
b3604151b4 Fixed bug 17698 - prepended srcdir to each of the resources being installed
git-svn-id: svn://10.0.0.236/trunk@52550 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 15:53:17 +00:00
kipp%netscape.com
63a86eb8cd fixed bug 15316 by tweaking the html style sheet as the author of the bug suggested
git-svn-id: svn://10.0.0.236/trunk@52549 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 15:49:50 +00:00
kipp%netscape.com
941b74b495 r=troy; fixed bugs 2636 and 17636 - line layout issues for some more edge cases (nobr's with floaters in them) and handling of nbsp
git-svn-id: svn://10.0.0.236/trunk@52548 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 15:44:57 +00:00
karnaze%netscape.com
bf8bc966c9 ComputeDesiredHeight - removed potential error if first child is not a row group.
git-svn-id: svn://10.0.0.236/trunk@52547 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 15:41:38 +00:00
buster%netscape.com
2bbfb06080 bug 17727 ([dogfood] Password not showing stars for default values unless we click inside the field.)
r=brade

change is in nsGfxTextControl.cpp.  I used to just blindly set the text of the underlying text frame.
Now I check if it's a password field, and replace the display text with '*' if it is.


git-svn-id: svn://10.0.0.236/trunk@52546 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 15:12:47 +00:00
rods%netscape.com
be66a15de9 updated the tests
git-svn-id: svn://10.0.0.236/trunk@52545 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 14:51:20 +00:00
rods%netscape.com
f75283d60b initial
git-svn-id: svn://10.0.0.236/trunk@52544 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 14:44:55 +00:00
syd%netscape.com
0887d1ab7b The code doesn't check to see if commandNode is non-NULL. It actually does,
but too late.

Before:
< 	var value = commandNode.getAttribute(valueAttribute);
< 	if ( commandNode && value )
< 		commandNode.setAttribute('value', value);
It looks to see if commandNode is non-NULL *after* it uses it to get "value".
After:
> 	if ( commandNode ) {
> 		var value = commandNode.getAttribute(valueAttribute);
> 		if ( value )
> 			commandNode.setAttribute('value', value);
> 	}

r=BenB


git-svn-id: svn://10.0.0.236/trunk@52543 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 12:29:57 +00:00
ftang%netscape.com
5a4cba5ec3 fix bug 14914. r=cata (several weeks ago). change the GetEncoder/GetDecoder from a loop which create/destroy/IsEqual of nsString to use PROGID directly
git-svn-id: svn://10.0.0.236/trunk@52542 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 08:49:20 +00:00
idk%eng.sun.com
4a0f268246 17747
Added "ifdef OJI_DISABLE"
in case OJI_DISABLE we will have binaries working without oji
Apdated README


git-svn-id: svn://10.0.0.236/trunk@52541 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 08:07:09 +00:00
rpotts%netscape.com
05c908d920 bug #3469 (r=warren). Fixing nsLoadGroup::Cancel() to call cancel on all active transports and subgroups...
git-svn-id: svn://10.0.0.236/trunk@52540 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 08:00:07 +00:00
warren%netscape.com
857d05a688 Made nsHTTPEncodeStream seekable (for reposting form data). Bug #17685. r=waterson
git-svn-id: svn://10.0.0.236/trunk@52539 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 07:43:37 +00:00
mccabe%netscape.com
b3f3e6c4bc Reverting lib fix to fix impending bustage.
git-svn-id: svn://10.0.0.236/trunk@52538 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 07:39:51 +00:00
shaver%netscape.com
dd157213ab updated nsSample.js, long overdue (r=brendan)
git-svn-id: svn://10.0.0.236/trunk@52537 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 07:36:25 +00:00
valeski%netscape.com
f9329cacef adding some keyword support back in
git-svn-id: svn://10.0.0.236/trunk@52536 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 07:18:44 +00:00
dmose%mozilla.org
68d3ee8a2a updating license to xPL 1.1
git-svn-id: svn://10.0.0.236/trunk@52535 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 07:16:31 +00:00
ftang%netscape.com
202313d853 check in the patch submit by Jonas Utterstrom <jonas.utterstrom@vittran.norrnod.se in message news://news.mozilla.org/381B3757.FEC144BC%40vittran.norrnod.se fix bug 17706. r=ftang
git-svn-id: svn://10.0.0.236/trunk@52534 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 07:01:44 +00:00
dmose%mozilla.org
8135a379f0 updating license to xPL 1.1
git-svn-id: svn://10.0.0.236/trunk@52533 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 06:56:28 +00:00
ftang%netscape.com
b93e1edb98 add debuggin message for bug 7571. r=nhotta
git-svn-id: svn://10.0.0.236/trunk@52532 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 06:54:37 +00:00
mccabe%netscape.com
b13865d0da Another stab at linking with the timer static library - this time using EXTRA_DSO_LDOPTS.
r=jband


git-svn-id: svn://10.0.0.236/trunk@52531 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 06:53:58 +00:00
dmose%mozilla.org
c6627a15ce removing stubfe files from the trunk; these are only relevant in the MozillaClassic branch
git-svn-id: svn://10.0.0.236/trunk@52530 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 06:51:30 +00:00
warren%netscape.com
1d1448afe5 Made nsIUnicharStreamLoader be scriptable and deal with an xpcom observer instead of a proc pointer and void*. Part of bug#11159. r=nisheeth,kipp,pierre
git-svn-id: svn://10.0.0.236/trunk@52529 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 06:49:44 +00:00
valeski%netscape.com
ea48e3cc05 putting www.*.com trick back in
git-svn-id: svn://10.0.0.236/trunk@52528 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 06:43:19 +00:00
waterson%netscape.com
e8d88c499c Fix two more leaks that I forgot to check in.
git-svn-id: svn://10.0.0.236/trunk@52527 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 06:40:38 +00:00
dmose%mozilla.org
2ccab49e6d updating license boilerplate to xPL v1.1
git-svn-id: svn://10.0.0.236/trunk@52526 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 06:38:29 +00:00
dmose%mozilla.org
377be09812 updating license boilerplate to xPL v1.1
git-svn-id: svn://10.0.0.236/trunk@52525 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 06:27:30 +00:00
waterson%netscape.com
c33933dfdc remove CTOR and DTOR counters, because the descendant classes will all
account for this space. r=warren


git-svn-id: svn://10.0.0.236/trunk@52524 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 06:21:07 +00:00
dmose%mozilla.org
9fc7780ead updating license boilerplate to xPL v1.1
git-svn-id: svn://10.0.0.236/trunk@52523 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 06:20:05 +00:00
valeski%netscape.com
55265a0fbb pulling non-qualified host-to-keyword server logic
git-svn-id: svn://10.0.0.236/trunk@52522 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 06:18:01 +00:00
dmose%mozilla.org
630d8b77f1 updating license boilerplate
git-svn-id: svn://10.0.0.236/trunk@52521 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 06:13:48 +00:00
troy%netscape.com
1ab461f4c6 r=pierre@netscape.com
Fix compiler warning


git-svn-id: svn://10.0.0.236/trunk@52520 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 06:07:12 +00:00
troy%netscape.com
0481fd6a2b Real fix for my build bustage. Kipp had commened the offending code out to
keep the build going


git-svn-id: svn://10.0.0.236/trunk@52519 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 06:06:46 +00:00
jband%netscape.com
5cd00daf35 - Add test code for calling back via a timer on potentially other JSConetxt
to the xpconnect echo interface. This will help fix bug 17736. This includes
using nsITimer which is a pretty messed up xpcom interface w/o a factory.

- Added dump() to xpcshell to make it compatible with browsers debug
output method.

- reformat beard's leak fix to follow 80 column rule.

- Add a missing dont_AddRef to avoid a leak in some debug code.

r=mccabe


git-svn-id: svn://10.0.0.236/trunk@52518 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 05:55:29 +00:00
nisheeth%netscape.com
3810554e35 r=nisheeth. Fix for bug 12323. Thanks to Ian Hickson (py8ieh=bugzilla@bath.ac.uk) for the patch. Only lowercase chars are accepted in the stylesheet PI.
git-svn-id: svn://10.0.0.236/trunk@52517 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 05:49:57 +00:00
troy%netscape.com
8c862baf0d Changed QueryInterface() to check for nsIFrameDebug
git-svn-id: svn://10.0.0.236/trunk@52516 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 05:49:11 +00:00
dmose%mozilla.org
ab8bcb5065 updating license boilerplate
git-svn-id: svn://10.0.0.236/trunk@52515 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 05:38:33 +00:00
warren%netscape.com
54581e51ee Added some sanity assertions. r=gagan
git-svn-id: svn://10.0.0.236/trunk@52514 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 05:38:22 +00:00
warren%netscape.com
afd6573875 Fix for bad refcount tracing. r=buster,nisheeth
git-svn-id: svn://10.0.0.236/trunk@52513 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 05:37:04 +00:00
waterson%netscape.com
b2a8f1f15e Fix two leaks courtesy evaughan.
git-svn-id: svn://10.0.0.236/trunk@52512 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 05:36:08 +00:00
warren%netscape.com
ddf6490f7b Removed dependence on neckoutil functions. Part of bug#11159. Not in the build yet.
git-svn-id: svn://10.0.0.236/trunk@52511 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 05:31:56 +00:00
buster%netscape.com
b599517d9a fixed bug 17689 r=jfrancis
git-svn-id: svn://10.0.0.236/trunk@52510 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 05:16:41 +00:00
tbogard%aol.net
aa0f04f201 Changed NS_ASSERTION to NS_WARN_IF_FALSE to avoid crashing people when condition is met. r=hyatt.
git-svn-id: svn://10.0.0.236/trunk@52509 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 05:14:27 +00:00
tbogard%aol.net
62ce3cdd71 Changed NS_NOTREACHED to be NS_WARN_IF_FALSE() so as to not crash everyone. r=sfraser.
git-svn-id: svn://10.0.0.236/trunk@52508 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 05:12:05 +00:00
valeski%netscape.com
8cf9738323 11869, r=warren. passing the http spec all the way into http rather than passing a simple uri into the service newChannel().
git-svn-id: svn://10.0.0.236/trunk@52507 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 05:05:44 +00:00
morse%netscape.com
cf72289b9d fix ui regressons in cookie viewer, code=rgoodger, r=morse
git-svn-id: svn://10.0.0.236/trunk@52506 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 05:04:57 +00:00
morse%netscape.com
c465ca23ff fix ui regressons in signon viewer, code=rgoodger, r=morse
git-svn-id: svn://10.0.0.236/trunk@52505 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 05:04:19 +00:00
valeski%netscape.com
52d16678ac missed a case
git-svn-id: svn://10.0.0.236/trunk@52504 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 04:22:12 +00:00
valeski%netscape.com
ff5c4380e5 16910, r=mcafee. FTP now uses thread pools. it also provides some status to the webshell. and it no longer uses the server's defualt path.
git-svn-id: svn://10.0.0.236/trunk@52503 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 04:04:23 +00:00
valeski%netscape.com
af0f3e7b0b 11869, r=mcafee. adding keyword protocol handler to the build. mac still needs to be hooked up.
git-svn-id: svn://10.0.0.236/trunk@52502 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 04:01:35 +00:00
valeski%netscape.com
43382f61e2 11869, r = travis. we no longer to the www.*.com trick as it is handled by the keyword protocol handler. we now kick qualifying requests to the keyword protocol handler.
git-svn-id: svn://10.0.0.236/trunk@52501 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 04:00:07 +00:00
hangas%netscape.com
ab9a0355a1 Progress on Command Updating and Dispatching (15127). r=scottip
git-svn-id: svn://10.0.0.236/trunk@52500 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 03:55:59 +00:00
pinkerton%netscape.com
35ff47ccc3 making the drop feedback be 2 pixels wide, not one (r=saari).
git-svn-id: svn://10.0.0.236/trunk@52499 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 03:55:44 +00:00
pinkerton%netscape.com
e182909557 fix for #16463 (crash when frames involved in a drag went away) and nsCOMPtrizing a lot of things (r=saari).
git-svn-id: svn://10.0.0.236/trunk@52498 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 03:55:14 +00:00
pinkerton%netscape.com
871ab8e113 add ability to have a sub-frame (such as an inner box) be the area which is where the draggable content resides.
git-svn-id: svn://10.0.0.236/trunk@52497 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 03:54:24 +00:00
pinkerton%netscape.com
e5be208b97 add new drop area attribute for identifying subframes of a toolbar where the real content is.
git-svn-id: svn://10.0.0.236/trunk@52496 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 03:53:58 +00:00
pinkerton%netscape.com
d9fc856c54 turn d&d on personal toolbar back on and clean it up after new xul file rewrite.
git-svn-id: svn://10.0.0.236/trunk@52495 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 03:53:30 +00:00
slamm%netscape.com
19446f1058 Partial fix for bug 17722, "No [Sidebar] Panels for mac". We should probably copy the entire directory, but adding a MANIFEST file to profile/defaults would mess up Linux and Windows. May need to add Makefiles for them too. r=pinkerton.
git-svn-id: svn://10.0.0.236/trunk@52494 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 03:49:14 +00:00
pollmann%netscape.com
b1d9af131b Removing null code. No bug number. r=nisheeth
git-svn-id: svn://10.0.0.236/trunk@52493 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 03:48:04 +00:00
pavlov%netscape.com
21d2358524 add unix makefiles for docshell r=mcafee,paulmac. also changed IDL to C++ in the two .cpp files' emacs comments and added a newline at the end of them (files not built by default)
git-svn-id: svn://10.0.0.236/trunk@52492 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 03:43:10 +00:00
pavlov%netscape.com
0ab35801a3 clamp down sizes < 2^15 r=dbaron@fas.harvard.edu r=paulmac ;) fixes bug 2564
git-svn-id: svn://10.0.0.236/trunk@52491 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 03:38:23 +00:00
bienvenu%netscape.com
e1b2ce4a78 add code for hooking up stop button,r=putterman 12016
git-svn-id: svn://10.0.0.236/trunk@52490 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 03:34:45 +00:00
slamm%netscape.com
bd6f30c5cb File dependency not needed anymore. Fix build bustage. r=mcafee.
git-svn-id: svn://10.0.0.236/trunk@52489 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 02:57:23 +00:00
mcafee%netscape.com
5a6348e661 Adding pavlov to modeless pref dialog patch, improved some assertion comments. r=pavlov
git-svn-id: svn://10.0.0.236/trunk@52488 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 02:43:04 +00:00
brendan%mozilla.org
bed10de2c0 Fixed getter/setters, pave way for brutal sharing (15146, r=shaver@mozilla.org,rogerl@netscape.com)
git-svn-id: svn://10.0.0.236/trunk@52487 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 02:23:50 +00:00
cathleen%netscape.com
93f291a8ea adding in missing chrome and res files for mac packager
git-svn-id: svn://10.0.0.236/trunk@52486 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 02:22:50 +00:00
waterson%netscape.com
df32caa941 Fix manky nsCOMPtr asserts.
git-svn-id: svn://10.0.0.236/trunk@52485 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 02:02:27 +00:00
varada%netscape.com
9d03b5a02f fixing bug #6666 marking the readme and license checkboxes as default
git-svn-id: svn://10.0.0.236/trunk@52484 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 01:58:11 +00:00
rogerl%netscape.com
15318a9b2b Changed -n to regular since the error is getting detected in the code now.
git-svn-id: svn://10.0.0.236/trunk@52483 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 01:55:59 +00:00
mcafee%netscape.com
e555659f6b NECKO=1 is on by default now. this was removed from the Makefile name-space this past weekend and needs to be removed here. Adding necko directories by default, removing netwerk/makefiles. Adding netwerk/protocols/keyword/Makefiles for valeski. r=slamm.
git-svn-id: svn://10.0.0.236/trunk@52482 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 01:54:54 +00:00
alecf%netscape.com
d3116d95c6 fix bustage, forgot this file in my last checkin
git-svn-id: svn://10.0.0.236/trunk@52481 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 01:53:28 +00:00
dmose%mozilla.org
361fd99522 updated license boilerplate
git-svn-id: svn://10.0.0.236/trunk@52480 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 01:51:54 +00:00
pollmann%netscape.com
4b235a7aef Removing null code. No bug number. r=nisheeth
git-svn-id: svn://10.0.0.236/trunk@52479 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 01:50:15 +00:00
beard%netscape.com
9c32d2f87e need to be able to Quit viewer via AppleEvent. r=sfraser
git-svn-id: svn://10.0.0.236/trunk@52478 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 01:49:52 +00:00
dmose%mozilla.org
9dba8ec0b3 updating license boilerplate
git-svn-id: svn://10.0.0.236/trunk@52476 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 01:46:24 +00:00
waldemar%netscape.com
3cc6fe040f Added basic no-line-break constraints matching JavaScript 1.x
git-svn-id: svn://10.0.0.236/trunk@52475 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 01:46:05 +00:00
waldemar%netscape.com
f48012bb56 Added no-line-break constraints
git-svn-id: svn://10.0.0.236/trunk@52474 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 01:45:31 +00:00
waldemar%netscape.com
b6e92d2926 Fixed comment
git-svn-id: svn://10.0.0.236/trunk@52473 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 01:45:14 +00:00
waldemar%netscape.com
d8924f3115 Added :no-line-break
git-svn-id: svn://10.0.0.236/trunk@52472 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 01:44:24 +00:00
varada%netscape.com
854153ad1b fixing bug #6664 making CDlayout as the default marked checkbox in the info page
git-svn-id: svn://10.0.0.236/trunk@52471 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 01:44:06 +00:00
waldemar%netscape.com
82cd9877d0 Fixed annoying use of *error-output* that would always bring the listener window to the front while compiling a grammar
git-svn-id: svn://10.0.0.236/trunk@52470 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 01:43:52 +00:00
dp%netscape.com
1b8c8d2216 Changing use of NS_WITH_SERVICE() as GetService() to GetService(). r=warren
git-svn-id: svn://10.0.0.236/trunk@52469 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 01:40:46 +00:00
dp%netscape.com
3e684b542b Changing misuse of NS_WITH_SERVICE() to GetService(). r=warren
git-svn-id: svn://10.0.0.236/trunk@52468 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 01:40:14 +00:00
ssu%netscape.com
26a5cb95b3 Fixes bug #17562. r=sgehani. This checkin does not affect tinderbox.
The other checkin to fix this bug only affects the windows platforms.


git-svn-id: svn://10.0.0.236/trunk@52467 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 01:38:10 +00:00
pinkerton%netscape.com
6671a998a4 allow mouse event coordinates to be accessed with d&d events in addition to mouse events, since d&d events have the same structure as mouse events. (r=joki).
git-svn-id: svn://10.0.0.236/trunk@52466 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 01:38:01 +00:00
ssu%netscape.com
7c2c8f0ecb fixing bug #17562. r=sgehani
Fixes problem with not detecting xpinstall reboot return error.


git-svn-id: svn://10.0.0.236/trunk@52465 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 01:36:41 +00:00
pinkerton%netscape.com
64f2e921ee add rule for drop feedback on personal toolbar (r=hyatt).
git-svn-id: svn://10.0.0.236/trunk@52464 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 01:35:42 +00:00
pinkerton%netscape.com
7262c47353 fix for bug 17381 where leaving the frame before a drag gesture was began caused the event target to be set incorrectly. (r=saari).
git-svn-id: svn://10.0.0.236/trunk@52463 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 01:34:16 +00:00
rogerl%netscape.com
9259c87a92 That's much cooler - i'm putting the 0 case back then.
git-svn-id: svn://10.0.0.236/trunk@52462 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 01:31:45 +00:00
pavlov%netscape.com
268235e424 break in the switch, don't fall through *doh* r=duncan@be.com
git-svn-id: svn://10.0.0.236/trunk@52460 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 01:25:00 +00:00
cls%seawood.org
6533b90ce6 Added detection for alphaev6. Submitted by Matt Wilson <msw@redhat.com>.
git-svn-id: svn://10.0.0.236/trunk@52459 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 01:24:16 +00:00
nhotta%netscape.com
a468c6983c Fixed a typo in the entity definition, r=ftang.
git-svn-id: svn://10.0.0.236/trunk@52458 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 01:19:19 +00:00
tbogard%aol.net
0154b52329 Second phase of changing NS_ENSURE() to NS_ENSURE_TRUE() and NS_ENSURE_NOT() to NS_ENSURE_FALSE(). r=hyatt
git-svn-id: svn://10.0.0.236/trunk@52457 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 01:18:52 +00:00
nisheeth%netscape.com
add2edbda0 r=pollmann. Check local DTD directory for dtd files and, if found, load them from there.
git-svn-id: svn://10.0.0.236/trunk@52456 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 01:16:37 +00:00
pavlov%netscape.com
59b22727bd added .cvsignore file r=slamm
git-svn-id: svn://10.0.0.236/trunk@52455 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 01:16:09 +00:00
waterson%netscape.com
410ac67f93 Add 'miscellaneous' debug prefs to house 'disable XUL cache' pref UI.
git-svn-id: svn://10.0.0.236/trunk@52454 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 01:14:50 +00:00
waterson%netscape.com
9ba00de102 Bug 15146. Brutal sharing, Phase III. Turn on protoype, script, and style sheet caching. r=hyatt
git-svn-id: svn://10.0.0.236/trunk@52453 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 01:14:07 +00:00
alecf%netscape.com
54bfc70eea cleanup NS_IMPL_MODULE and friends
- define new nsModuleComponentInfo and use it instead of components_t
- use size_t instead of unsigned int
- add some docs
- allow user to define own module name


git-svn-id: svn://10.0.0.236/trunk@52452 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 01:12:32 +00:00
danm%netscape.com
44d6b4c7e5 removing implementation of nsIShutdownListener. it was redundant, anyway. r:dp@netscape.com
git-svn-id: svn://10.0.0.236/trunk@52451 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 01:10:35 +00:00
tbogard%aol.net
c98bf7e9a6 **Not hooked up to build** Implemented Repaint. Changed document to be a readonly attribute. Added a SetDocument that takes a contentType. Implemented this. Changed all the idl methods to be lower-case.
git-svn-id: svn://10.0.0.236/trunk@52450 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 01:04:25 +00:00
rogerl%netscape.com
81ef7e0434 Needed string parameter in order to pass type comparison correctly.
Added missing TITLE declaration.


git-svn-id: svn://10.0.0.236/trunk@52449 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 01:03:52 +00:00
rogerl%netscape.com
dff3a32176 Moved nested function out - new ECMA definition.
git-svn-id: svn://10.0.0.236/trunk@52448 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 01:02:55 +00:00
rogerl%netscape.com
ceaebd4804 Put test case in eval statement to catch error.
git-svn-id: svn://10.0.0.236/trunk@52447 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 01:02:03 +00:00
rogerl%netscape.com
a027094b30 Added missing TITLE declaration
git-svn-id: svn://10.0.0.236/trunk@52446 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 01:01:34 +00:00
troy%netscape.com
aa355b810b See if the Mac is any happier with this
git-svn-id: svn://10.0.0.236/trunk@52445 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 00:21:47 +00:00
varada%netscape.com
cc411daf35 removing unix line endings
git-svn-id: svn://10.0.0.236/trunk@52444 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 23:47:43 +00:00
dmose%mozilla.org
03ec794132 updated license boilerplate
git-svn-id: svn://10.0.0.236/trunk@52443 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 23:33:56 +00:00
varada%netscape.com
9efe8d599f fix for bug#9097
git-svn-id: svn://10.0.0.236/trunk@52442 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 23:33:13 +00:00
valeski%netscape.com
9862db5a48 not in build. updating keyword protocol handler to use new api.
git-svn-id: svn://10.0.0.236/trunk@52441 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 23:33:05 +00:00
troy%netscape.com
c1c6ae68cd Changed GetFrameName() calls to use nsIFrameDebug interface
git-svn-id: svn://10.0.0.236/trunk@52440 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 23:29:27 +00:00
kipp%netscape.com
824e50d549 Fixed compilation bustage by using nsIFrameDebug to invoke list and regression data methods
git-svn-id: svn://10.0.0.236/trunk@52439 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 23:29:05 +00:00
troy%netscape.com
af506bd6c9 Temporary change
git-svn-id: svn://10.0.0.236/trunk@52438 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 23:21:20 +00:00
rogerl%netscape.com
5df87dc67e Belay that, the tests were fine, the code HAS changed.
git-svn-id: svn://10.0.0.236/trunk@52437 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 23:16:00 +00:00
troy%netscape.com
cf64589783 Fixed problem with GetFrameName() being defines in non-debug build
git-svn-id: svn://10.0.0.236/trunk@52436 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 23:12:32 +00:00
larryh%netscape.com
d3f1c46ba5 BugZilla 17558. Add PR_Open() PR_EXCL flag
git-svn-id: svn://10.0.0.236/trunk@52435 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 22:59:27 +00:00
kipp%netscape.com
d8d82e0637 r=rods; bug=17518; I updated the html.css file to select on 'a[href]' instead of 'a' so that the focus properties and related style properties would only apply to anchors with href's
git-svn-id: svn://10.0.0.236/trunk@52434 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 22:54:14 +00:00
tbogard%aol.net
94697e0452 Changed NS_ENSURE_NOT() to use NS_ENSURE_FALSE() per API change.
git-svn-id: svn://10.0.0.236/trunk@52433 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 22:54:06 +00:00
kipp%netscape.com
f8fb68c673 r=troy; fixed compiliation issue for debug builds
git-svn-id: svn://10.0.0.236/trunk@52432 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 22:45:20 +00:00
leaf%mozilla.org
368f25d7ee adding mozilla/uriloader for mscott
git-svn-id: svn://10.0.0.236/trunk@52431 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 22:43:22 +00:00
kipp%netscape.com
7ae532db2a r=troy; fixed bug 14982 - the problem was that empty continuations of an inline non-replaced element (e.g. 'span') were impact line-height calculations when they should effectively disappear
git-svn-id: svn://10.0.0.236/trunk@52430 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 22:38:17 +00:00
kipp%netscape.com
a98ac534c3 latest and greatest tests for block dom functions
git-svn-id: svn://10.0.0.236/trunk@52429 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 22:36:42 +00:00
akkana%netscape.com
1824e7ce91 Fix Sun build bustage: older gcc can't do nsCOMPtr on a forward type
git-svn-id: svn://10.0.0.236/trunk@52428 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 22:16:15 +00:00
troy%netscape.com
3513334988 Moved a bunch of stuff out to a nsIFrameDebug interface
git-svn-id: svn://10.0.0.236/trunk@52427 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 22:12:45 +00:00
dp%netscape.com
8a02a9884b Removing extra release happening on a service. NS_WITH_SERVICE() will
take care of this release.


git-svn-id: svn://10.0.0.236/trunk@52426 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 21:57:14 +00:00
akkana%netscape.com
0df1ff715c Formatting whitespace changes only
git-svn-id: svn://10.0.0.236/trunk@52425 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 21:53:50 +00:00
putterman%netscape.com
897d9e027c Release mNativeDragTarget to fix leaks. no bug. reviewed by rods.
git-svn-id: svn://10.0.0.236/trunk@52424 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 21:53:06 +00:00
sspitzer%netscape.com
07d441b61a fix for #16119. this variable is not defined out of the scope of the loop, so
it was undefined.


git-svn-id: svn://10.0.0.236/trunk@52423 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 21:51:16 +00:00
mscott%netscape.com
5492a19059 Don't build new uri idl interfaces in netwerk.
they've been moved to uriloader.


git-svn-id: svn://10.0.0.236/trunk@52422 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 21:49:55 +00:00
radha%netscape.com
d0a23025d8 Remove the extra AddRef to nsHistoryLayoutState. r=pollmann, bug #16496
git-svn-id: svn://10.0.0.236/trunk@52421 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 21:47:54 +00:00
mscott%netscape.com
e1c9192da5 remove these uri dispatching interfaces from netwerk.
they live in uriloader now.


git-svn-id: svn://10.0.0.236/trunk@52420 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 21:47:26 +00:00
alecf%netscape.com
a15001ef11 fix twisties in the thread pane and account manager by responding to GetTarget() along the child arcs like #child and #MessageChild bug #13551
r=scottip


git-svn-id: svn://10.0.0.236/trunk@52419 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 21:46:07 +00:00
mscott%netscape.com
099420f43e none of these interfaces were being used yet.
they've been moved into mozilla\uriloader.


git-svn-id: svn://10.0.0.236/trunk@52418 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 21:45:29 +00:00
tbogard%aol.net
ae3cd9e2ce Changed NS_ENSURE_NOT to NS_ENSURE_FALSE to reflect API change. r=hyatt
git-svn-id: svn://10.0.0.236/trunk@52417 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 21:43:56 +00:00
dveditz%netscape.com
5ed2cd7fa7 taking a crack at some ports bustage. r=pnunn
git-svn-id: svn://10.0.0.236/trunk@52416 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 21:35:50 +00:00
akkana%netscape.com
9dd7ffd0ef 17275, 16285, 15204: Switch to using nsISaveAsCharset for both charset and entity conversion. r=nhotta
git-svn-id: svn://10.0.0.236/trunk@52415 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 21:34:44 +00:00
tbogard%aol.net
46a7117699 Changed NS_ENSURE_NOT to NS_ENSURE_FALSE to reflect API change. r=hyatt
git-svn-id: svn://10.0.0.236/trunk@52414 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 21:27:09 +00:00
tbogard%aol.net
8d4c0ac47e Changed NS_ENSURE_NOT to NS_ENSURE_FALSE to reflect API change.
git-svn-id: svn://10.0.0.236/trunk@52413 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 21:25:52 +00:00
tbogard%aol.net
87358978bd Changed NS_ASSERTION to use NS_WARN_IF_FALSE. r=pavlov
git-svn-id: svn://10.0.0.236/trunk@52412 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 21:24:24 +00:00
dp%netscape.com
ff9db70a07 Removing release on a service as this would be taken care by the
NS_WITH_SERVICE() macro. r=danm


git-svn-id: svn://10.0.0.236/trunk@52411 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 21:16:24 +00:00
Jerry.Kirk%Nexwarecorp.com
2bc6161677 Remove call to nsIThread::SetMainThread() and clean up things a bit.
r=kedl


git-svn-id: svn://10.0.0.236/trunk@52410 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 20:52:52 +00:00
warren%netscape.com
933e7aa1a8 Minor cleanup
git-svn-id: svn://10.0.0.236/trunk@52409 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 20:50:04 +00:00
warren%netscape.com
793d674760 Eliminating netwerk/util
git-svn-id: svn://10.0.0.236/trunk@52408 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 20:48:12 +00:00
valeski%netscape.com
42d0478ba8 removing early xpcom proxy release change from earlier in the weekend.
git-svn-id: svn://10.0.0.236/trunk@52407 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 20:37:13 +00:00
varada%netscape.com
bd12ec528f fix for bug #6568 - showing summary in the first page
git-svn-id: svn://10.0.0.236/trunk@52406 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 20:13:16 +00:00
idk%eng.sun.com
307fe1df58 fix for 17454
changed strncmp to PL_strncasecmp


git-svn-id: svn://10.0.0.236/trunk@52405 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 20:04:57 +00:00
tbogard%aol.net
e885439545 Changed some m_* to m*.
git-svn-id: svn://10.0.0.236/trunk@52404 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 19:57:15 +00:00
mscott%netscape.com
2a86ddb6f8 (not part of the seamonkey build)
top level Makefile for uriloader


git-svn-id: svn://10.0.0.236/trunk@52403 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 19:56:25 +00:00
mscott%netscape.com
cc0ac6a407 not part of the seamonkey build
add makefile for the uriloader\build directory.


git-svn-id: svn://10.0.0.236/trunk@52402 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 19:52:49 +00:00
mscott%netscape.com
4f15b3e7bd not part of the seamonkey build
add CID header file and uri loader module class.


git-svn-id: svn://10.0.0.236/trunk@52401 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 19:52:25 +00:00
mscott%netscape.com
9cbec3ba42 not part of the seamonkey build.
add top level makefile.win for uriloader.


git-svn-id: svn://10.0.0.236/trunk@52400 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 19:51:45 +00:00
mscott%netscape.com
604569330e not part of the seamonkey build
remove class id and progid from the interface


git-svn-id: svn://10.0.0.236/trunk@52399 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 19:51:05 +00:00
mscott%netscape.com
82bbc3b0eb (not part of the seamonkey build!)
export nsURIDispatcher.h


git-svn-id: svn://10.0.0.236/trunk@52398 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 19:49:09 +00:00
idk%eng.sun.com
b338802f73 fix for 17449
added checkings for NULL


git-svn-id: svn://10.0.0.236/trunk@52397 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 19:39:26 +00:00
varada%netscape.com
13b7afe705 fixes to bug 5434
git-svn-id: svn://10.0.0.236/trunk@52396 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 19:14:29 +00:00
varada%netscape.com
56c344a8d0 cleanup code for customizationlist
git-svn-id: svn://10.0.0.236/trunk@52395 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 18:10:26 +00:00
varada%netscape.com
fb8cb373a0 cleanup code for checklist
git-svn-id: svn://10.0.0.236/trunk@52394 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 18:09:31 +00:00
briano%netscape.com
e2c9ed766a Automated update
git-svn-id: svn://10.0.0.236/trunk@52393 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 15:45:17 +00:00
rods%netscape.com
23778b8c16 Check to see if the option being added has the "selected" property, if it
does then the list needs to be reinitialized.
r=dcone, bug #17519


git-svn-id: svn://10.0.0.236/trunk@52392 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 15:41:17 +00:00
kipp%netscape.com
bac454b0b5 Added address information to the dump content diagnostic code
git-svn-id: svn://10.0.0.236/trunk@52391 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 15:38:05 +00:00
kipp%netscape.com
c6c74d8fe2 r=ftang (someday); fixed bug 17130 - the problem was that nbsp's were being mapped into spaces by the text-transformer which is normally good, but for the purposes of line-breaking look-ahead was bad. I added code to revert the post-transformed spaces into nbsp's before using the line-breaker
git-svn-id: svn://10.0.0.236/trunk@52390 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 15:36:02 +00:00
kipp%netscape.com
283a28a5d4 r=ftang (someday); fixed 17559 regression - there were a few cases where characters > 127 were leaking out without setting the mHasMultibyte flag that were triggering painting bugs on macs...
git-svn-id: svn://10.0.0.236/trunk@52389 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 15:32:37 +00:00
cls%seawood.org
9981b6e5e7 Tested various build options, marked some broken, unmarked others that have been fixed. Removed obsolete options.
git-svn-id: svn://10.0.0.236/trunk@52388 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 15:32:02 +00:00
kipp%netscape.com
2cabf1bf40 Disabled debug noise I accidently checked in (whoops!)
git-svn-id: svn://10.0.0.236/trunk@52387 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 15:31:04 +00:00
cls%seawood.org
aabaf48158 Remove the extra -D_XXX_SOURCE_ flags for Linux builds.
git-svn-id: svn://10.0.0.236/trunk@52386 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 15:29:31 +00:00
kipp%netscape.com
63ae90acca r=troy; reworked the way that blocks inside of inline elements are handled. It's all in the frame construction code now (bugs 15999, 16737)
git-svn-id: svn://10.0.0.236/trunk@52385 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 15:24:57 +00:00
kipp%netscape.com
333bf3d48a Added address information to the dump content diagnostic code
git-svn-id: svn://10.0.0.236/trunk@52384 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 15:23:06 +00:00
kipp%netscape.com
e5672a7cbf Added another frame property
git-svn-id: svn://10.0.0.236/trunk@52383 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 15:22:25 +00:00
jfrancis%netscape.com
8ad4c60be3 fix for bugs: 16724, 16855; r=sfraser
git-svn-id: svn://10.0.0.236/trunk@52382 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 15:15:56 +00:00
jfrancis%netscape.com
53c8075ee8 fixes for bugs: 16361,12253,15696,15734; r=sfraser
git-svn-id: svn://10.0.0.236/trunk@52381 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 15:15:35 +00:00
dp%netscape.com
a1cbbe03aa Removing double check for failure. Checking for nsresult is sufficient.
git-svn-id: svn://10.0.0.236/trunk@52380 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 08:54:06 +00:00
tbogard%aol.net
188cbf9d0b Added some checks to verify calling of the nsIDocShellFile and nsIDocShellEdit functions.
git-svn-id: svn://10.0.0.236/trunk@52379 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 07:53:24 +00:00
tbogard%aol.net
1b8869ef46 Changed NS_ENSURE to be NS_ENSURE_TRUE.
git-svn-id: svn://10.0.0.236/trunk@52378 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 07:45:38 +00:00
tbogard%aol.net
e1325fa173 Changed NS_ENSURE and NS_ENSURE_NOT occurences to be NS_ENSURE_TRUE and NS_ENSURE_FALSE respectively.
git-svn-id: svn://10.0.0.236/trunk@52377 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 07:40:19 +00:00
tbogard%aol.net
e3a1567dcc Changed NS_ENSURE to be NS_ENSURE_TRUE. Also changed NS_ENSURE_NOT to be NS_ENSURE_FALSE. Left NS_ENSURE and NS_ENSURE_NOT, but they will soon be going away.
git-svn-id: svn://10.0.0.236/trunk@52376 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 06:59:16 +00:00
rpotts%netscape.com
6a0e6b0b2d bug #16418 (r=warren,gagan). When redirecting a URL only copy the Ref to the new URL (not the Param and Query).
git-svn-id: svn://10.0.0.236/trunk@52375 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 06:00:55 +00:00
dougt%netscape.com
908f338b00 Adding a set accessor to the permissions functions. Needed by the xpinstall
folks.


git-svn-id: svn://10.0.0.236/trunk@52374 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 04:44:56 +00:00
tbogard%aol.net
fe0b504eac Added comment around frame stuff to explain lack of ref-counting.
git-svn-id: svn://10.0.0.236/trunk@52373 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 04:03:03 +00:00
tbogard%aol.net
2766610a72 Implemented GetZoom and SetZoom. Removed some left over comment code.
git-svn-id: svn://10.0.0.236/trunk@52372 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 04:02:24 +00:00
troy%netscape.com
5143eb0b1d Added nsIFrameDebug interface
git-svn-id: svn://10.0.0.236/trunk@52371 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 03:34:43 +00:00
bienvenu%netscape.com
0828780018 fix updating of folders after imap/moves r=mscott bug 12491
git-svn-id: svn://10.0.0.236/trunk@52370 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 01:10:08 +00:00
bienvenu%netscape.com
b3ee9d6099 add support for pending counts for imap folders r=mscott
git-svn-id: svn://10.0.0.236/trunk@52369 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 01:06:29 +00:00
mscott%netscape.com
059b0b18ff remove shut down listener stuff.
r=bienvenu


git-svn-id: svn://10.0.0.236/trunk@52368 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 00:57:49 +00:00
mscott%netscape.com
c3e35b09e6 remove shutdown listener stuff.
r=bienvenu


git-svn-id: svn://10.0.0.236/trunk@52367 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 00:56:19 +00:00
mscott%netscape.com
3c8f842dd1 remove shutdown listener code.
r=bienvenu


git-svn-id: svn://10.0.0.236/trunk@52366 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 00:55:06 +00:00
tonyr%fbdesigns.com
f0bafa3901 Added Outlook mail and address book import functionality
git-svn-id: svn://10.0.0.236/trunk@52365 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 00:46:18 +00:00
bienvenu%netscape.com
90413c1803 add method to find out if folder is in open window r=putterman
git-svn-id: svn://10.0.0.236/trunk@52364 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-31 22:21:55 +00:00
tbogard%aol.net
86bf83a5cb Changed NS_IMETHOD to NS_IMETHODIMP on implemented function.
git-svn-id: svn://10.0.0.236/trunk@52363 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-31 07:38:44 +00:00
beard%netscape.com
46857947de made more robust with partial output.
git-svn-id: svn://10.0.0.236/trunk@52362 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-31 06:05:09 +00:00
dp%netscape.com
76860bfac3 Removing use of nsIShutdownListener r=sspitzer
git-svn-id: svn://10.0.0.236/trunk@52361 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-31 05:02:55 +00:00
troy%netscape.com
3300906c1f b=15742. Changed Reflow() to invalidate the child's bounds if we're forced
to do a second reflow because we didn't correctly predict whether the vertical
scrollbar was needed. Because the second reflow changes the display width we
need to repaint


git-svn-id: svn://10.0.0.236/trunk@52360 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-31 04:04:32 +00:00
troy%netscape.com
c53de3fb2f b=17507. Changed Reflow() to use "available height" instead of "computed
height" when reflowing child frames. What was happening was that the child
table frame didn't fit and was trying to split. That should only happen when
we're paginated


git-svn-id: svn://10.0.0.236/trunk@52359 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-31 03:39:24 +00:00
troy%netscape.com
248afe72e1 b=17573. Changed mRowIndex to be signed integer (was unsigned integer) but
field. This allows it be negative, which some of the table code is depending
on


git-svn-id: svn://10.0.0.236/trunk@52358 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-31 03:15:52 +00:00
brendan%mozilla.org
9c83cbc655 Gross workaround for VC5 bug.
git-svn-id: svn://10.0.0.236/trunk@52357 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-31 03:04:02 +00:00
jband%netscape.com
9a6507c902 fix typo that was causing bustage on some compilers
git-svn-id: svn://10.0.0.236/trunk@52356 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-31 03:02:43 +00:00
dmose%mozilla.org
5c49b2dcfa removing qtfe files from the tip, since qtfe is only ever destined to build on the MozillaClassic branch; approved=arnt@troll.no
git-svn-id: svn://10.0.0.236/trunk@52355 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-31 02:29:26 +00:00
beard%netscape.com
fdd0b24390 changed the CID for "component://netscape/gfx/region" to use new NS_SCRIPTABLEREGION_CID. r=pavlov
git-svn-id: svn://10.0.0.236/trunk@52354 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-31 02:28:32 +00:00
beard%netscape.com
f871d649af switched to NS_IMPL_ISUPPORTS1, no longer supports QI to nsIRegion. r=pavlov
git-svn-id: svn://10.0.0.236/trunk@52353 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-31 02:26:10 +00:00
beard%netscape.com
8070950a1a removed scriptable region hackery, switched to NS_IMPLE_ISUPPORTS1. r=pavlov
git-svn-id: svn://10.0.0.236/trunk@52352 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-31 02:26:06 +00:00
beard%netscape.com
2f5831d91f cleaned up factory to use nsCOMPtrs, modern NS_IMPL* macros, support for creating scriptable regions. r=pavlov
git-svn-id: svn://10.0.0.236/trunk@52351 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-31 02:26:03 +00:00
beard%netscape.com
48e85583a8 added NS_SCRIPTABLE_REGION_CID. r=pavlov
git-svn-id: svn://10.0.0.236/trunk@52350 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-31 02:25:59 +00:00
tbogard%aol.net
74d906dbdf Fixed changes to use the GetPresShell rather than using the now removed member variable.
git-svn-id: svn://10.0.0.236/trunk@52348 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-31 02:05:21 +00:00
brendan%mozilla.org
f980be0221 (13163, r=alecf, scc, waterson, others; names available on request)
- Fix most of bug 13163 (see TODO for rest).  This entails adding a version-string argument to nsIScriptContext::EvaluateString and passing it around lots of places in content sinks. 

- Fix leaks and confusion about mSecurityManager and mNameSpaceManager in nsJSEnvironment.cpp.  These still need to move from nsJSContext to nsGlobalWindow or thereabouts, jband and vidur are looking at that. 

- Added comments and expanded tabs in nsJSEnvironment.cpp, esp. to EvaluateString.  Also changed various nsresult vars to be named rv.  Also restored brace/style conformity to nsJSProtocolHandler.cpp. 

- Factored CompileFunction from AddScriptEventListener to pave the way for brutal sharing of compiled JS event handlers via JS_CloneFunctionObject. 

- Lots of nsCOMPtr uses added.  I'm using one for mNameSpaceManager.  Hold mSecurityManager as a service explicitly, on the other hand (awaiting scc's fix to allow comptrs for services), and release in nsJSContext's dtor (fixing a leak).  These two managers should be moved to the window object -- TODO item below. 

- Hold JSRuntimeService along with JSRuntime for live of nsJSEnvironment, fix for shaver. 

- Fix window.setTimeout etc. so the filename and line number of the timeout expr is propagated.  This meant factoring nsJSUtils.cpp code. 

- Fix all content sinks to use the same, and up-to-date JavaScript version parsing (whether for script type or for old language attribute); also fix SplitMimeType clones to strip whitespace. 

- With waterson, fix bug in brutal-sharing version of XUL content sink: script src= should not evaluate the inline content of its tag.


git-svn-id: svn://10.0.0.236/trunk@52347 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-31 00:43:30 +00:00
scc%netscape.com
65b7cd0c03 changed the mechanism underlying |do_QueryInterface| to decouple |nsCOMPtr| from services, |nsIWeakReference|, etc. This change fixes bug #17364, and paves the way for making |nsCOMPtr| cooperate with services. r=valeski (additional builds done by dmose and syd)
git-svn-id: svn://10.0.0.236/trunk@52346 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-31 00:35:48 +00:00
scc%netscape.com
3872148e22 removed incorrect use of private class name in favor of |do_QueryInterface|, part of the fix for bug #17364, r=valeski (additional builds done by dmose, and syd)
git-svn-id: svn://10.0.0.236/trunk@52345 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-31 00:32:15 +00:00
syd%netscape.com
dc0e84da8f Add xpcom.dll to link line so test will link with scc changes make about this time. r=scc
git-svn-id: svn://10.0.0.236/trunk@52344 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-31 00:22:53 +00:00
pavlov%netscape.com
e4422a7744 better fix for twips rounding problems patch_from=dbaron@fas.harvard.edu r=me
git-svn-id: svn://10.0.0.236/trunk@52343 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-31 00:09:52 +00:00
sgehani%netscape.com
1a10f1bfca Turning on Mac Install Wizard. [r=ssu]
git-svn-id: svn://10.0.0.236/trunk@52342 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-30 23:04:41 +00:00
sgehani%netscape.com
42a5d3afe8 *** NOT PART OF BUILD ***
Added "About..." box.


git-svn-id: svn://10.0.0.236/trunk@52341 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-30 22:29:26 +00:00
sgehani%netscape.com
2eefd82de8 Changes to accomodate ASEncoder for bug 17096 (new interfaces: GUI and AppleScript to accept folders to decode and encode). [r=dveditz]
git-svn-id: svn://10.0.0.236/trunk@52340 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-30 22:24:09 +00:00
sgehani%netscape.com
c148d9293b First Checked In.
git-svn-id: svn://10.0.0.236/trunk@52339 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-30 22:21:38 +00:00
sgehani%netscape.com
1d98e513a5 *** NOT PART OF BUILD ***
Fixes for bug 17096. New interfaces (GUI and AppleScript) that accept folders to encode and decode.


git-svn-id: svn://10.0.0.236/trunk@52338 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-30 22:21:28 +00:00
sgehani%netscape.com
9318031900 Fixing static targets to be usable by MIW once again: removed new nsJARInputStream from the static targets. For real this time...
git-svn-id: svn://10.0.0.236/trunk@52337 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-30 22:18:31 +00:00
sgehani%netscape.com
66089af9ca Backed out change temporarily.
git-svn-id: svn://10.0.0.236/trunk@52336 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-30 22:03:46 +00:00
sgehani%netscape.com
43165f999b Fixing static targets to be usable by MIW once again: removed new nsJARInputStream from the statis targets.
git-svn-id: svn://10.0.0.236/trunk@52335 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-30 21:56:51 +00:00
beard%netscape.com
95ab15987f MLK: fix device context leak, bug=15380, r=scc
git-svn-id: svn://10.0.0.236/trunk@52334 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-30 20:18:31 +00:00
beard%netscape.com
7eff69da6d MLK: fixed nsICSSDeclaration leak, bug=15380, r=kipp
git-svn-id: svn://10.0.0.236/trunk@52333 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-30 20:17:40 +00:00
dp%netscape.com
ab8b41ac6e Fixing viewer starup assert on SetMainThread() happening twice.
git-svn-id: svn://10.0.0.236/trunk@52332 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-30 17:17:12 +00:00
troy%netscape.com
bf93831e8b Removed call to SetMainThread() because it was triggering an assert. Turns
out NS_InitXPCOM() does it so we don't need to do it twice


git-svn-id: svn://10.0.0.236/trunk@52331 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-30 16:44:04 +00:00
buster%netscape.com
33e56d70f4 huge performance work for text controls
we now display the content of a single line text control using a child pseudo frame
until the text control first gets focus.  at that time, a webshell and editor are created on the fly.
fixed bug bug 14727
r=rods


git-svn-id: svn://10.0.0.236/trunk@52330 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-30 16:33:00 +00:00
buster%netscape.com
12d91fc204 added pseudo style for single line text controls
bug 14727
r=rods


git-svn-id: svn://10.0.0.236/trunk@52329 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-30 16:31:11 +00:00
buster%netscape.com
2da450442d added DOM notification up to frame system for text control value changes
part of  bug 14727
r=rods


git-svn-id: svn://10.0.0.236/trunk@52328 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-30 16:30:33 +00:00
buster%netscape.com
2669825bf4 added pseudo-style for single line text controls. bug 14727
git-svn-id: svn://10.0.0.236/trunk@52327 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-30 16:29:32 +00:00
troy%netscape.com
23e130e01b Added nsHTMLReflowState.h
git-svn-id: svn://10.0.0.236/trunk@52326 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-30 16:16:45 +00:00
alecf%netscape.com
78d06b8fcf make buttons class="push"
only a test, not part of product


git-svn-id: svn://10.0.0.236/trunk@52325 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-30 07:39:07 +00:00
alecf%netscape.com
225dbf24eb update debug menu to reflect new DOMViewer location
(debug only not part of product)


git-svn-id: svn://10.0.0.236/trunk@52324 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-30 07:38:12 +00:00
alecf%netscape.com
20afa40ad0 fix a warning
r=pavlov


git-svn-id: svn://10.0.0.236/trunk@52323 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-30 07:32:23 +00:00
alecf%netscape.com
4eaeb0af68 move DOM viewer into chrome so that DOM security doesn't f us up again
only a test, not part of the product


git-svn-id: svn://10.0.0.236/trunk@52322 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-30 07:23:07 +00:00
alecf%netscape.com
4c4a69c07f more tweaks for boehm to catch up with the nsILeakDetector work
git-svn-id: svn://10.0.0.236/trunk@52321 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-30 07:06:26 +00:00
dp%netscape.com
0b96f92229 Removing shutdown listener. Releasing gCaseConv on XPCOM Shutdown r=kipp
git-svn-id: svn://10.0.0.236/trunk@52320 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-30 06:45:45 +00:00
beard%netscape.com
015fa0cad4 fixed up -blame option to use line marking.
git-svn-id: svn://10.0.0.236/trunk@52319 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-30 05:59:02 +00:00
alecf%netscape.com
1cd1d3967c more adding of class="dialog" to dialogs
git-svn-id: svn://10.0.0.236/trunk@52318 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-30 05:55:15 +00:00
beard%netscape.com
2300c27a4f fix nsIInterfaceInfoManager leak. bug=15380, r=jband
git-svn-id: svn://10.0.0.236/trunk@52317 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-30 05:48:07 +00:00
alecf%netscape.com
2dd3c4eacc add class="dialog" to mailnews prefs panes
this and last checkin r=rgoodger@ihug.co.nz


git-svn-id: svn://10.0.0.236/trunk@52316 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-30 05:46:04 +00:00
alecf%netscape.com
75c3ca9e17 add class="dialog" to all pref window dialogs
enable languages pane and fix XUL
disable smart_browsing pane (because it was crashing)


git-svn-id: svn://10.0.0.236/trunk@52315 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-30 05:44:23 +00:00
beard%netscape.com
ceb9cf186d changed gInstanceClassName from char[256] to const char* to save space. r=sfraser
git-svn-id: svn://10.0.0.236/trunk@52314 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-30 04:02:54 +00:00
beard%netscape.com
9a3ae339ee changed gInstanceClassName from char[256] to const char* to save space. added NS_IF_RELEASE(mFontMetrics) to destructor to fix memory leak. bug=15380, r=sfraser
git-svn-id: svn://10.0.0.236/trunk@52313 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-30 04:02:50 +00:00
danm%netscape.com
cd569b141a insert cast necessary on one of the "other" platforms
git-svn-id: svn://10.0.0.236/trunk@52312 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-30 03:13:55 +00:00
troy%netscape.com
6210745a33 Updated to not export nsIFrameReflow.h
git-svn-id: svn://10.0.0.236/trunk@52311 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-30 02:53:36 +00:00
troy%netscape.com
19db355c46 Changed to not export nsIFrameReflow.h
git-svn-id: svn://10.0.0.236/trunk@52310 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-30 02:52:43 +00:00
troy%netscape.com
88c4d96e2c Folded reflow functions into nsIFrame and eliminated nsIFrameReflow and
nsIHTMLReflow. This saves 4 bytes per frame and cleans things up


git-svn-id: svn://10.0.0.236/trunk@52309 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-30 02:52:11 +00:00
tbogard%aol.net
f5d99c2cec Removed mPresShell and mPresContext from the base class. Added internal getter function GetPresShell to retrieve presShell objects. Added a pointer to mContentViewer. Changed LoadURI* to take a presContext. Changed SetDocument to take a presContext. Changed the attribute presContext to be read only.
git-svn-id: svn://10.0.0.236/trunk@52308 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-30 02:30:13 +00:00
akhil.arora%sun.com
4e94fff191 r=akhil.arora@sun.com, fix by Denis Sharypov <sdv@sparc.spb.su>
13271: the wrong method was being called in ProcessingInstructionImpl.cpp
13338: handle null input arguments gracefully without crashing


git-svn-id: svn://10.0.0.236/trunk@52307 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-30 02:14:28 +00:00
beard%netscape.com
85fd5baad4 moved call to nsIThread::SetMainThread() to NS_InitXPCOM. r=warren
git-svn-id: svn://10.0.0.236/trunk@52306 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-30 01:53:03 +00:00
beard%netscape.com
7cf4142599 added call to nsIThread::SetMainThread(), to ensure users of XPCOM get a main thread mapped. r=warren
git-svn-id: svn://10.0.0.236/trunk@52305 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-30 01:52:55 +00:00
nisheeth%netscape.com
2d10931ddb Fix for bug 17540. Uncommented the call to nsFrameManager::CantRenderReplacedElement().
git-svn-id: svn://10.0.0.236/trunk@52303 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-30 01:31:49 +00:00
beard%netscape.com
15bc1a40b1 Removed statically constructed nsAutoString LinkCommand, moved inside nsWebShell::LoadURL(). This prevents calling printf before main runs on MacOS, which messes up the console window. r=sfraser
git-svn-id: svn://10.0.0.236/trunk@52302 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-30 01:23:01 +00:00
waterson%netscape.com
89a8c47740 '#if 0' DOM crawling code in toolbar frame to avoid over-eager generation of content model from RDF. GetElementsByTagName() is evil! r=pinkerton,hyatt
git-svn-id: svn://10.0.0.236/trunk@52301 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-30 01:21:44 +00:00
beard%netscape.com
20f6524e69 Fix proxied objects leak. r=sfraser, bug=15380
git-svn-id: svn://10.0.0.236/trunk@52300 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-30 01:17:24 +00:00
tbogard%aol.net
7b140eafb2 Removed zoom now that it has been moved out of the nsIGenericWindow interface.
git-svn-id: svn://10.0.0.236/trunk@52299 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-30 00:53:41 +00:00
tbogard%aol.net
069e0c0ab7 Moved zoom attribute from nsIGenericWindow to nsIDocShell. Updated zoom documentation.
git-svn-id: svn://10.0.0.236/trunk@52298 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-30 00:52:57 +00:00
hangas%netscape.com
bd127b8712 Fixed OK/Cancel button appearance by using globalOverlay.xul r=mscott
git-svn-id: svn://10.0.0.236/trunk@52297 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-30 00:14:52 +00:00
hangas%netscape.com
273c3a1673 Image transparency problem fixed by Andrew Niese.
git-svn-id: svn://10.0.0.236/trunk@52296 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-30 00:07:21 +00:00
tbogard%aol.net
945c6841ea Removed mDocument in favor of the preferred way of getting the document from the content viewer.
git-svn-id: svn://10.0.0.236/trunk@52295 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-30 00:02:38 +00:00
tbogard%aol.net
bc6a15f81a Changed a call to QueryInterface to use CallQueryInterface which helps with type checking.
git-svn-id: svn://10.0.0.236/trunk@52294 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 23:59:20 +00:00
valeski%netscape.com
0e08363c68 warning fixes, again :(
git-svn-id: svn://10.0.0.236/trunk@52293 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 23:35:06 +00:00
evaughan%netscape.com
1f41bc5a41 Fixed bug in example. -r hyatt
git-svn-id: svn://10.0.0.236/trunk@52292 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 23:27:26 +00:00
Jerry.Kirk%Nexwarecorp.com
95ed3035d3 Fixing FillPolygon code in nsRenderingPh.cpp
Adding debug code in nsDrawingSurfacePh  to find the crash.
r=kedl


git-svn-id: svn://10.0.0.236/trunk@52291 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 23:18:16 +00:00
Jerry.Kirk%Nexwarecorp.com
7d754fa3e8 Changing mClipSibling to False in preparation to popup change
Pavlov is working on/thinking about... I'm sure he will see it my
way eventually...
r=kedl


git-svn-id: svn://10.0.0.236/trunk@52290 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 23:16:57 +00:00
mjudge%netscape.com
c750a7c32d reviewed by hyatt bug of someone elses but in my code. dont know number. simple check for null
git-svn-id: svn://10.0.0.236/trunk@52289 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 23:12:44 +00:00
mjudge%netscape.com
2dee462ae3 i cannot find the bug# it is for selecting inside forms. we need to turn off selection in certain frames based on the style. this sets up it to work once we figure out the style rule to set.
git-svn-id: svn://10.0.0.236/trunk@52288 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 23:07:07 +00:00
colin%theblakes.com
a3feb440b1 Only define MDCPUCFG if HOST_NSPR_MDCPUCFG is defined. r=cls
git-svn-id: svn://10.0.0.236/trunk@52287 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 23:03:15 +00:00
rogerl%netscape.com
b817d51d4b I changed the exepcted value for object.toString() calls on the empty
object - There's no clear documentation of the result, but the source
code unambiguously calls 'js_obj_toSource', which inserts the extra '()'
under the version1_2 flag, so I believe this is the correct result.


git-svn-id: svn://10.0.0.236/trunk@52286 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 23:02:17 +00:00
valeski%netscape.com
2eefe93ceb 17521, r = mscott. FTP authentication dialogs we're looping if canceled. I also changed a bunch of string getter routines to take XPIDLCStrings. there was speculation during the reveiw that there might be some casting problems on other platforms. if this is the case either case the XPIDLCString to (const char *) or call me and I'll do it.
git-svn-id: svn://10.0.0.236/trunk@52285 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 23:00:52 +00:00
edburns%acm.org
31ca3266f1 r=marklin
#17358
approver=edburns
author=edburns

This fix enables webclient to work with the latest mozilla.  For now.


git-svn-id: svn://10.0.0.236/trunk@52284 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 22:51:06 +00:00
rogerl%netscape.com
b16f4bc0c7 Changed to account for latest ECMA spec on back-references vs. octal
git-svn-id: svn://10.0.0.236/trunk@52283 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 22:50:43 +00:00
rogerl%netscape.com
fa193f41c1 New ECMA spec for no argument calls to max & min - should return +/- Inf
git-svn-id: svn://10.0.0.236/trunk@52282 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 22:48:33 +00:00
brendan%mozilla.org
ba803ea225 Add JS_VersionToString and JS_StringToVersion, updated Impl. Version (13163, r=shaver@mozilla.org).
git-svn-id: svn://10.0.0.236/trunk@52281 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 22:44:35 +00:00
akkana%netscape.com
d167106925 Remove one GDK_question. Trivial one-line fix
git-svn-id: svn://10.0.0.236/trunk@52280 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 22:37:18 +00:00
cmanske%netscape.com
1095535469 Fixed Composer UI to adjust to latest global CSS changes. Mostly needed to add appropriate class to titled buttons. Change editorshell to stop throbber animation even if editor fails to initialize. r=sfraser
git-svn-id: svn://10.0.0.236/trunk@52279 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 22:33:34 +00:00
jefft%netscape.com
01d415eebe fixed bug 12131 -- message counts not updated after a move/copy; call UpdateFolder() after move/copy is done; r=bienvenu
git-svn-id: svn://10.0.0.236/trunk@52278 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 22:28:55 +00:00
rogerl%netscape.com
8760c5b5e8 r=norris
Change for ECMA spec. - String.charCodeAt, etc call ToInteger on index.
Ditto - String.match(re) was constructing /undefined/ instead of empty
regexp.


git-svn-id: svn://10.0.0.236/trunk@52277 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 22:27:33 +00:00
rogerl%netscape.com
853e43bd31 r=norris
Opinion was that Script.exec() should execute in global scope, not caller.


git-svn-id: svn://10.0.0.236/trunk@52276 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 22:25:25 +00:00
rogerl%netscape.com
dcacacf7d7 r=norris
Fixed accidental eating of exceptions (match loop didn't terminate on
failure). New ECMA definition (again) of back reference format.


git-svn-id: svn://10.0.0.236/trunk@52275 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 22:23:36 +00:00
rogerl%netscape.com
e8f1c05ca6 r=norris
New ECMA behaviour for max & min.


git-svn-id: svn://10.0.0.236/trunk@52274 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 22:21:54 +00:00
rogerl%netscape.com
2ed88ba80b r=norris
Upgrading to new ECMA - conversionError subsumed by TypeError.


git-svn-id: svn://10.0.0.236/trunk@52273 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 22:20:23 +00:00
rogerl%netscape.com
69933e9f74 r=norris, Bug#16984
New error message for function.apply arguments.


git-svn-id: svn://10.0.0.236/trunk@52272 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 22:19:04 +00:00
rpotts%netscape.com
021f44ae53 Fixed crash during error condition in END_WRITE... (r=warren)
git-svn-id: svn://10.0.0.236/trunk@52271 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 22:14:52 +00:00
evaughan%netscape.com
0fa061c765 Made tabs us visibility instead of shrinking their children to 0,0.
Made it possible to change the look for the selected tab.


git-svn-id: svn://10.0.0.236/trunk@52270 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 22:13:57 +00:00
waterson%netscape.com
0d6ebd6b12 Pull script object and event listener list out of slots and into delegate to avoid faulting a heavyweight element. Fix EnsureSlots() to _not_ do a bunch of extra work that is already being done when we create an element from its prototype. Use nsCOMPtr's in nsXULAttributes to avoid leak of nsIStyleRule. r=hyatt
git-svn-id: svn://10.0.0.236/trunk@52269 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 22:09:20 +00:00
varada%netscape.com
b1f24224b8 fix for bug #14012 viewfile function to open the files and open url to open html
git-svn-id: svn://10.0.0.236/trunk@52268 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 21:57:00 +00:00
rchen%netscape.com
604931010d Add Localization Notes
git-svn-id: svn://10.0.0.236/trunk@52267 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 21:53:20 +00:00
mscott%netscape.com
29d7ee003b first created.
git-svn-id: svn://10.0.0.236/trunk@52266 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 21:49:19 +00:00
mscott%netscape.com
6ad3ce8ee3 Moving URI dispatching code into its new home in mozilla\uriloader. I'll be removing
the existing files that I put in netwerk very soon.


git-svn-id: svn://10.0.0.236/trunk@52265 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 21:46:18 +00:00
rchen%netscape.com
6be0ffb4ca Add localization notes
git-svn-id: svn://10.0.0.236/trunk@52264 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 21:40:07 +00:00
rchen%netscape.com
89f810c614 Add Localization Notes
git-svn-id: svn://10.0.0.236/trunk@52263 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 21:37:43 +00:00
bienvenu%netscape.com
fa7e1e0f1e fix body filters, r=sspitzer 17058
git-svn-id: svn://10.0.0.236/trunk@52262 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 21:33:44 +00:00
rchen%netscape.com
beb892e3f0 Add Localization notes
git-svn-id: svn://10.0.0.236/trunk@52261 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 21:27:41 +00:00
rogerl%netscape.com
338c55ea1d New, spawned from AIX4.2.mk.
git-svn-id: svn://10.0.0.236/trunk@52260 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 21:14:31 +00:00
rchen%netscape.com
394244ab39 Add Localization notes
git-svn-id: svn://10.0.0.236/trunk@52259 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 21:12:26 +00:00
alecf%netscape.com
ea62024583 fix a broken class= r=sspitzer
git-svn-id: svn://10.0.0.236/trunk@52258 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 21:11:06 +00:00
alecf%netscape.com
ee5415192d add class="dialog push" to the profile wizard UI r=sspitzer
git-svn-id: svn://10.0.0.236/trunk@52257 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 21:10:53 +00:00
alecf%netscape.com
928787debd add class="dialog push" to all pref windows r=sspitzer
git-svn-id: svn://10.0.0.236/trunk@52256 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 21:01:41 +00:00
rchen%netscape.com
e6e52fc833 Add localization notes
git-svn-id: svn://10.0.0.236/trunk@52255 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 20:58:42 +00:00
rchen%netscape.com
280221ed46 Add Localization notes
git-svn-id: svn://10.0.0.236/trunk@52254 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 20:52:42 +00:00
alecf%netscape.com
52ddc97b98 fix titledbutton class to "dialog push"
r=shaver


git-svn-id: svn://10.0.0.236/trunk@52253 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 20:51:41 +00:00
valeski%netscape.com
7559ac64c5 15590 - build warnings prompted some variable name changes. Also replaced nsVoidArray usage w/ nsCStringArrays. Added some null checks. converted some raw ptrs to com ptrs.
16968 - bugzilla wasn't progress through bug lists via "next" "prev" links. we now set cookie headers from within x-multi-mixed-replace data.


git-svn-id: svn://10.0.0.236/trunk@52252 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 20:50:06 +00:00
karnaze%netscape.com
7868fc24c7 new regression test
git-svn-id: svn://10.0.0.236/trunk@52251 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 20:47:33 +00:00
valeski%netscape.com
85c426971e 15590, r=kipp. added a nsCStringArray class so the cool string array functionality could be used for CStrings too. this checkin is *part* of a fix to the bug
git-svn-id: svn://10.0.0.236/trunk@52250 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 20:47:17 +00:00
putterman%netscape.com
9c5e4137a1 Fix for 17556. Reviewed by alecf. Newsgroups show abbreviated name in folder pane.
git-svn-id: svn://10.0.0.236/trunk@52249 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 20:46:15 +00:00
cata%netscape.com
324e2f56a7 Fix for bug #17018, r=cata, checkin for momoi.
git-svn-id: svn://10.0.0.236/trunk@52248 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 20:41:21 +00:00
despotdaemon%netscape.com
e9ccfad854 Pseudo-automatic update of changes made by leaf@mozilla.org.
git-svn-id: svn://10.0.0.236/trunk@52247 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 20:41:01 +00:00
cata%netscape.com
eb0df2c879 Fix for bug #16186 build warnings; eliminating unused var.
git-svn-id: svn://10.0.0.236/trunk@52246 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 20:32:00 +00:00
cata%netscape.com
b855e5dd72 Fix for bug #15706; r=nhotta
git-svn-id: svn://10.0.0.236/trunk@52245 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 20:29:40 +00:00
rchen%netscape.com
bca34cf5da Add Localization Notes
git-svn-id: svn://10.0.0.236/trunk@52244 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 20:28:18 +00:00
karnaze%netscape.com
b2c6378cf2 bug 17375 - better checks and casting before calling DidAppendRow
git-svn-id: svn://10.0.0.236/trunk@52243 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 20:25:13 +00:00
rchen%netscape.com
a74e27b3f5 Add localization notes
git-svn-id: svn://10.0.0.236/trunk@52242 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 20:24:48 +00:00
harishd%netscape.com
bb63ac5e3f Fix fof bug 15674 - Putting back char* buffer.
r=akkana


git-svn-id: svn://10.0.0.236/trunk@52241 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 19:59:09 +00:00
akkana%netscape.com
1645b0ed7a Only output the xif.xif debug file if DEBUG_XIF is defined. Requested by sfraser
git-svn-id: svn://10.0.0.236/trunk@52240 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 19:36:30 +00:00
akkana%netscape.com
e367bbd2be 17305: Add ? to the list of fakie-shifted keycodes. r=pavlov
git-svn-id: svn://10.0.0.236/trunk@52239 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 19:33:57 +00:00
morse%netscape.com
e3e9faf88f fix bug 14932, mozilla asserts if client-wallet is disabled, r=neeti
git-svn-id: svn://10.0.0.236/trunk@52238 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 19:31:30 +00:00
jefft%netscape.com
5b125a705f partial fix for bug 17034; decode encoded words prior setting to the composition fields; r=nhotta,rhp
git-svn-id: svn://10.0.0.236/trunk@52237 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 19:23:29 +00:00
slamm%netscape.com
3b0382f6c1 Use tb_find_build_record() instead of find_build_record().
git-svn-id: svn://10.0.0.236/trunk@52236 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 19:20:53 +00:00
slamm%netscape.com
3fd6cb1d50 Fix 17347. Initialize the 'View | Sidebar' menu to the correct state. r=mozbot.
git-svn-id: svn://10.0.0.236/trunk@52235 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 19:17:22 +00:00
slamm%netscape.com
45e93dc267 Get min heights correct so that the sidebar will collapse. r=evaughan.
git-svn-id: svn://10.0.0.236/trunk@52234 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 19:16:38 +00:00
slamm%netscape.com
8769efefd3 Add license.
git-svn-id: svn://10.0.0.236/trunk@52233 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 19:13:42 +00:00
vidur%netscape.com
a595e9b30a Fix for double frame creation for scripts that document.write content that causes sink context creation. Fix that allows the last children of a body to be flushed. R=harishd
git-svn-id: svn://10.0.0.236/trunk@52232 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 19:07:24 +00:00
slamm%netscape.com
0e1f052c66 Spit and polish. Take 2. Do not put 'undef' in 'my' list.
git-svn-id: svn://10.0.0.236/trunk@52231 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 19:01:14 +00:00
slamm%netscape.com
4c48633d37 Somethings not working. Backup
git-svn-id: svn://10.0.0.236/trunk@52230 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 18:54:32 +00:00
pnunn%netscape.com
66c14dd8b7 part of fix for bug#15817. r: akkana. strong suggestion by kipp. Do the right
thing in image container destructor.


git-svn-id: svn://10.0.0.236/trunk@52229 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 18:53:03 +00:00
slamm%netscape.com
731c45ad0c Clean up global names. Spit and polish. Fix '-w' warnings.
git-svn-id: svn://10.0.0.236/trunk@52228 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 18:52:04 +00:00
pnunn%netscape.com
f742f7e4fd fix for bug#17076. r: akkana. Puts data stream mime check before component
loading instead of after a component load failure.


git-svn-id: svn://10.0.0.236/trunk@52227 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 18:51:09 +00:00
ducarroz%netscape.com
e83ba4c213 Fix for bug 17493, We need to cleanup any GCI commands from the URI when generating a file name. R=rhp
git-svn-id: svn://10.0.0.236/trunk@52226 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 18:50:05 +00:00
warren%netscape.com
dfe868a09a Fixed round-off error computing bloat total.
git-svn-id: svn://10.0.0.236/trunk@52225 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 18:48:37 +00:00
varada%netscape.com
3e9b7b7fb2 fix for bug #17459 by adding another depend function onnext
git-svn-id: svn://10.0.0.236/trunk@52224 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 18:36:52 +00:00
varada%netscape.com
4f3ab7cb05 fix for bug #17459 as well as some clean up
git-svn-id: svn://10.0.0.236/trunk@52223 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 18:35:58 +00:00
sspitzer%netscape.com
db726a6afc fix for #17555. get all the default files, including panels.rdf
git-svn-id: svn://10.0.0.236/trunk@52222 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 18:29:07 +00:00
buster%netscape.com
3fe2b88255 more implementation
some nits to conform more to seamonkey coding conventions.


git-svn-id: svn://10.0.0.236/trunk@52221 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 18:25:57 +00:00
warren%netscape.com
7e5a7e1258 Fixed parsing of bloat log when value was nan, or class contained ::.
git-svn-id: svn://10.0.0.236/trunk@52220 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 18:05:09 +00:00
warren%netscape.com
a237edb9e7 Made the leak/bloat baseline only be the min over the last 5 entries.
git-svn-id: svn://10.0.0.236/trunk@52219 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 17:19:54 +00:00
kipp%netscape.com
363a93452d Fixed solaris build bustage
git-svn-id: svn://10.0.0.236/trunk@52218 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 15:20:20 +00:00
troy%netscape.com
de2a95b57c Space reduction. We now save 8 bytes per row frame by eliminating the max
top/bottom margin data members which are no longer needed


git-svn-id: svn://10.0.0.236/trunk@52217 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 14:40:58 +00:00
kipp%netscape.com
aaabce0894 r=troy; bugs 12958 and 12760; reworked the way that first-letter frames are created and updated. We now support incremental content changes even when first-letter style applies.
git-svn-id: svn://10.0.0.236/trunk@52216 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 14:39:48 +00:00
kipp%netscape.com
96da767847 r=troy; fixed a crash bug in the debug logic found while fixing 12958
git-svn-id: svn://10.0.0.236/trunk@52215 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 14:36:00 +00:00
kipp%netscape.com
5f8b23824a r=troy; api changes for 12958, 12760 and preperations for 17377
git-svn-id: svn://10.0.0.236/trunk@52214 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 14:35:36 +00:00
kipp%netscape.com
f35516791b r=troy; cleaned up resize reflow optimization logic and prepared it for fixing bug #17737 (not yet fixed!)
git-svn-id: svn://10.0.0.236/trunk@52213 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 14:34:53 +00:00
kipp%netscape.com
5a0f716ef3 r=troy; fixed letter frame logic to use the line layout to flow frames so that white-space trimming, for example, would work right
git-svn-id: svn://10.0.0.236/trunk@52212 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 14:34:01 +00:00
kipp%netscape.com
b3ecfed51c r=troy; updated api slightly to support fixes to bug 12760, 12958 and some resize-reflow optimization bugs
git-svn-id: svn://10.0.0.236/trunk@52211 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 14:33:26 +00:00
kipp%netscape.com
a2f8cba30c r=troy; use new line-layout api to help with some resize-reflow optimization bugs
git-svn-id: svn://10.0.0.236/trunk@52210 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 14:32:11 +00:00
rods%netscape.com
c01e8f06c0 Allows radiobuttons to remove themselves from the named radio group
when deleted factored the code
r=kmcclusk, bug 17418


git-svn-id: svn://10.0.0.236/trunk@52209 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 13:56:30 +00:00
rods%netscape.com
24bb2c855d removes itself from the radio group when it is destructed
r=kmcclusk, bug 17418


git-svn-id: svn://10.0.0.236/trunk@52208 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 13:54:58 +00:00
rods%netscape.com
38a193d9b4 clears the the checked item on removal
r=kmcclusk,bug 17418


git-svn-id: svn://10.0.0.236/trunk@52207 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 13:53:50 +00:00
kin%netscape.com
5fae6982e3 Fix for bug #16176: [DOGFOOD] need to annotate line frames with whitespace trim
layout/base/src/nsCaret.cpp
        - Modified DrawCaretWithContext so that we only
          adjust the caret position if we are within the
          frame's bounds.

    layout/html/base/src/nsTextFrame.cpp
        - Modified GetPointFromOffset() to add the width
          of a space if the offset is after a trailing space
          and it was trimmed off the frame.

r=sfraser@netscape.com


git-svn-id: svn://10.0.0.236/trunk@52206 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 13:43:11 +00:00
Jerry.Kirk%Nexwarecorp.com
e08673c042 Fixes for drawing the new Chrome. Had to explicitly call PgFlush
to flush the draw stream from the memory context into the off screen
buffer. I think this is a bug in Photon, but for now this is the fix.
r=kedl


git-svn-id: svn://10.0.0.236/trunk@52205 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 12:53:58 +00:00
pavlov%netscape.com
f24c85975a remove some tabs and add a check for null (bug 17252) r=syd
git-svn-id: svn://10.0.0.236/trunk@52204 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 09:03:53 +00:00
pavlov%netscape.com
385f05a7b1 fix for bugs 17234,17416 r=tor,bruce
git-svn-id: svn://10.0.0.236/trunk@52203 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 08:36:47 +00:00
pavlov%netscape.com
594fc96d9f fix for 15942 and some performance tests/code r=syd
git-svn-id: svn://10.0.0.236/trunk@52202 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 08:24:09 +00:00
danm%netscape.com
8dd72754a2 treat the return key, like enter, as if the default dialog button had been pressed. part of fix for bug 17529. r:saari@netscape.com
git-svn-id: svn://10.0.0.236/trunk@52201 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 06:17:07 +00:00
danm%netscape.com
12fd34f1ce dialog now uses okCancelButtons overlay. partial fix for bug 17529 r:hangas@netscape.com
git-svn-id: svn://10.0.0.236/trunk@52200 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 06:12:26 +00:00
cmanske%netscape.com
d779af105f Changed hover style for FormatToolbar for consistency with new UI
git-svn-id: svn://10.0.0.236/trunk@52199 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 06:04:48 +00:00
beard%netscape.com
73ee8b0ee5 added transitive closure size computation.
git-svn-id: svn://10.0.0.236/trunk@52198 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 06:04:01 +00:00
jband%netscape.com
d8b2fc8146 r=shaver@mozilla.org
- Fix for bug 13419 - xpconnect calls wrapped JS objects on wrong JSContext.
Added code to use the nsThreadJSContextStack in order to call wrapped
JS object on the JSContext that is current for the running thread.

We've made the rule that xpconnect only supports one JSRuntime. We
partially enforce that here by enforcing that the JSContext on which
we will run code hails from the same JSRuntime as the JSContext on
which the wrapper for the JS code was built.

Because it is perfectly legal for the nsThreadJSContextStack to be empty
if a wrapped JS object is being called from code other than a DOM event,
this system will lazily create a JSContext for the current thread and
maintain it in TLS. This JSContext is used as necessary. If it uses such
a JSContext that was not already on the nsThreadJSContextStack then the
system will temporarily push that JSContext onto the nsThreadJSContextStack
during the course of the function call being performed. This is all managed
my a new auto class: AutoPushCompatibleJSContext. This is used in the two
places where wrapped JS code is called from native code.

[the two places where this system is invoked are currently disabled due to
the fact that the DOM code makes bad assumptions about the JSContext on
which DOM objects can be accessed. We are working to fix that and then this
code will be enabled.]

- Add #ifdef XPC_DETECT_LEADING_UPPERCASE_ACCESS_ERRORS code that will help
users when we do things like fix bug 14460. As soon as we make more of the
idl declarations of methods leadingLowercase then we will have
LeadingUppercase calls from JS breaking at runtime. It is expected that this
will especially be a problem for coders working with the same interfaces
from both C++ and JS (since from C++ an interface has LeadingUpper methods and
the *same* interface seen from JS has leadingLowecase names). This code
(as suggested by shaver) will print out an informative error message when
it detects the misuse. This is currently enabled for DEBUG builds only.

- Copy code from xpcshell to TestXPC to use the JSRuntimeSerivce.

r=norris@netscape.com
- Check to see if a wrapped JS object has a QueryInterface property before
trying to call that method. This is a speed optimization. It also and makes
norris happy because his perrenial breakpoint in jsReportErrorNumber is not
getting hit (even though the old code was safe).


git-svn-id: svn://10.0.0.236/trunk@52197 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 05:42:41 +00:00
mcafee%netscape.com
b3a2df9860 Updating legend to match new output format.
git-svn-id: svn://10.0.0.236/trunk@52196 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 05:02:00 +00:00
troy%netscape.com
58248e0de3 Fix for bug #16649. Didn't actually change anything. Just restored some
code that was clobbered by revision 3.153


git-svn-id: svn://10.0.0.236/trunk@52195 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 04:57:02 +00:00
morse%netscape.com
4f5d2bc5d5 get ready for integration with http/ftp authentication, r=davidm
git-svn-id: svn://10.0.0.236/trunk@52194 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 04:51:27 +00:00
sspitzer%netscape.com
1bb663bbef fix for #8717. performance is good enough to bump this back to 500.
still more work to be done, as this is a per-server pref now, I think.


git-svn-id: svn://10.0.0.236/trunk@52193 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 04:49:41 +00:00
mcafee%netscape.com
dbd1674956 No spaces so units don't go on next line.
git-svn-id: svn://10.0.0.236/trunk@52192 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 04:45:52 +00:00
sspitzer%netscape.com
e36c5874dc fix it so that if you have something selected, and you hit enter, it starts with that profile.
git-svn-id: svn://10.0.0.236/trunk@52191 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 04:40:20 +00:00
bienvenu%netscape.com
9187011a29 changes to use nsIMsgWindow r=putterman
git-svn-id: svn://10.0.0.236/trunk@52190 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 04:39:06 +00:00
mcafee%netscape.com
d977243f6d oops left out b units
git-svn-id: svn://10.0.0.236/trunk@52189 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 04:36:17 +00:00
mcafee%netscape.com
d2807b6f90 Better units, r=brendan
git-svn-id: svn://10.0.0.236/trunk@52188 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 04:30:56 +00:00
morse%netscape.com
6bc4bb23b5 provide compatibility with single signon, r=davidm
git-svn-id: svn://10.0.0.236/trunk@52187 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 04:30:38 +00:00
cmanske%netscape.com
55b30027eb Reduced size of Named Anchor proxy icon used in editor page to minimize layout disturbance when present. Changed colors.
git-svn-id: svn://10.0.0.236/trunk@52186 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 04:23:36 +00:00
sspitzer%netscape.com
3441bfea68 fix for #16231, r=mscott. make the file locator know about panels.rdf.
if <profile>/panels.rdf doesn't exist, copy the default to that location.


git-svn-id: svn://10.0.0.236/trunk@52185 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 04:02:25 +00:00
sspitzer%netscape.com
61aed8f307 fix for #16231, r=mscott. use the file locator (which caches the profile directory) instead of going through the profile service.
git-svn-id: svn://10.0.0.236/trunk@52184 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 04:02:20 +00:00
sspitzer%netscape.com
fc22d0aa61 remove the GetCurrentProfileDirFromJS() method from the nsIProfile interface. the only one using it was the sidebar js, but now that uses the fileLocator. r=mscott.
git-svn-id: svn://10.0.0.236/trunk@52183 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 04:01:22 +00:00
rginda%ndcico.com
0da4aac936 ** NOT PART OF THE SEAMONKEY DEFAULT BUILD **
* xul/tests/index.html
Content update.

* xul/tests/test3-output-loud.css
Added ugly style.

* Makefile.in, makefile.win
Updated to install new style.


git-svn-id: svn://10.0.0.236/trunk@52182 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 03:33:01 +00:00
warren%netscape.com
74b069723b Moved purify stuff into xpcom/base for the benefit of all.
git-svn-id: svn://10.0.0.236/trunk@52181 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 03:28:22 +00:00
warren%netscape.com
1fae170c08 Adding pure.h pure_api.c to the build. bug#16695
git-svn-id: svn://10.0.0.236/trunk@52180 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 03:26:50 +00:00
warren%netscape.com
3e59dc9845 Took out bogus error message.
git-svn-id: svn://10.0.0.236/trunk@52179 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 03:19:11 +00:00
waterson%netscape.com
4c9f59d49c Fix SizeOf() operation.
git-svn-id: svn://10.0.0.236/trunk@52178 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 03:07:38 +00:00
cmanske%netscape.com
941b2da9d7 Style adjustment for Composer DisplayMode toolbar
git-svn-id: svn://10.0.0.236/trunk@52177 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 02:58:37 +00:00
cmanske%netscape.com
f320760ce4 Color adjustment for Composer DisplayMode toolbar
git-svn-id: svn://10.0.0.236/trunk@52176 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 02:47:47 +00:00
warren%netscape.com
d4cac369ff Printed out TOTAL line for showbuilds.cgi
git-svn-id: svn://10.0.0.236/trunk@52175 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 02:39:10 +00:00
cathleen%netscape.com
7754b4e90e update unix packaging list for missing chrome and res files (editor, xpinstall... )
git-svn-id: svn://10.0.0.236/trunk@52174 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 02:37:27 +00:00
cmanske%netscape.com
aa538bb21b Added 'Throbber' to Composer - more UI adjustments for new skin. Tweaked new toolbar images. r=sfraser
git-svn-id: svn://10.0.0.236/trunk@52173 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 02:33:51 +00:00
kipp%netscape.com
877bf64923 Implement the LIBMALLOC_NOFREE flag; add in support for memory fill count which increases the malloc by N and fills it with a pattern to help detect overruns and random memory corruptions
git-svn-id: svn://10.0.0.236/trunk@52172 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 02:19:25 +00:00
kipp%netscape.com
71e57e9bc0 Disabled some of my own debugging noise
git-svn-id: svn://10.0.0.236/trunk@52171 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 02:17:55 +00:00
rhp%netscape.com
aa26800137 Fix for message display - Bug #17481 - r: jefft
git-svn-id: svn://10.0.0.236/trunk@52170 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 02:17:10 +00:00
ssu%netscape.com
a9a91fcc7c fixing bugs #16935 and #11581. r=dvedtiz.
The first fix reverses the way xpinstall aborts/cleans up itself.  The
correct way is to undo the commands it ran in backwards order.

The second fixes problem with a install.js script not having called
finalizeInstall() yet still installing files.


git-svn-id: svn://10.0.0.236/trunk@52169 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 02:15:56 +00:00
kipp%netscape.com
87ff88fc08 nuked another silly warning because I got tired of seeing it
git-svn-id: svn://10.0.0.236/trunk@52168 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 02:06:33 +00:00
kipp%netscape.com
f748008a0b I added logic to the viewers browser window to disable javascript initiated popups during web crawling; I also fixed the web crawler to only initiate a new load after a previous document ends not a subdocument (again!)
git-svn-id: svn://10.0.0.236/trunk@52167 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 02:06:09 +00:00
kipp%netscape.com
20e3748d92 I added logic to the viewers browser window to disable javascript initiated popups during web crawling
git-svn-id: svn://10.0.0.236/trunk@52166 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 02:05:16 +00:00
gagan%netscape.com
213f166414 Fixed bug 17393. We were firing an OnStopRequest for redirect's response completion. That messes up imagelib which starts to reset/abort streams. r=waterson
git-svn-id: svn://10.0.0.236/trunk@52165 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 01:55:58 +00:00
kipp%netscape.com
0f8e430077 r=troy; fixed code to properly remove reflowc ommands when cancelling
git-svn-id: svn://10.0.0.236/trunk@52164 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 01:53:56 +00:00
wtc%netscape.com
407de78336 Need to set the reuseaddr socket option before PR_Bind, now that
PR_Bind no longer sets that option automatically (see Bugzilla #17184).


git-svn-id: svn://10.0.0.236/trunk@52163 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 01:41:34 +00:00
wtc%netscape.com
4adfa873d2 Bugzilla bug #15858: fixed compiler warnings.
git-svn-id: svn://10.0.0.236/trunk@52162 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 01:33:54 +00:00
jj%netscape.com
0410c9f36b added [xpiengine] module and rename 'ChromeRegistry' to 'ChomeRegistry' to be consistent with this typo across the tree.
git-svn-id: svn://10.0.0.236/trunk@52161 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 01:25:51 +00:00
waterson%netscape.com
6d0e00cdd4 Bug 15146. Brutal content model sharing, Phase II. XUL content sink now constructs prototype documents; 'real' content model constructed from walking prototype. Landed XUL_SHARING_19991027_BRANCH (derived from XUL_SHARING_19991022_BRANCH). See branch comments for details. r=hyatt.
git-svn-id: svn://10.0.0.236/trunk@52160 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 01:21:15 +00:00
mcafee%netscape.com
19573259fb typo, r=slamm
git-svn-id: svn://10.0.0.236/trunk@52159 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 01:21:06 +00:00
waterson%netscape.com
5a02e1350c Bug 15146. Remove usage of nsIXUL[Child|Parent]Document, nsIXULDocumentInfo. Now obsolete with brutal sharing. r=hyatt
git-svn-id: svn://10.0.0.236/trunk@52158 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 01:19:20 +00:00
dougt%netscape.com
72ec0f3079 adding license.
git-svn-id: svn://10.0.0.236/trunk@52157 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 01:10:00 +00:00
kipp%netscape.com
e8cc21c4c3 New tests (not part of any build)
git-svn-id: svn://10.0.0.236/trunk@52156 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 00:59:41 +00:00
warren%netscape.com
e6e16569fb Added 1k fudge factor.
git-svn-id: svn://10.0.0.236/trunk@52155 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 00:40:04 +00:00
sspitzer%netscape.com
695d6778d8 don't specify the height and width, let it size to content. otherwise, the buttons on the bottom don't show up.
git-svn-id: svn://10.0.0.236/trunk@52154 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 00:26:43 +00:00
mccabe%netscape.com
5124ea8599 adding comments
git-svn-id: svn://10.0.0.236/trunk@52153 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 00:26:19 +00:00
sspitzer%netscape.com
e8194ccfb1 cleaning up comments
git-svn-id: svn://10.0.0.236/trunk@52152 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 00:09:27 +00:00
mcafee%netscape.com
af1c129e99 Reverted to mozilla.org url because of problems with loading resource:
git-svn-id: svn://10.0.0.236/trunk@52151 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 23:32:13 +00:00
nhotta%netscape.com
978eb5faf1 Adding entity property files to packages, r=ftang.
git-svn-id: svn://10.0.0.236/trunk@52150 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 23:31:30 +00:00
putterman%netscape.com
2df3525f9d More work on 17376. reviewed by bienvenu. Store open folder and keep array of msgWindows.
git-svn-id: svn://10.0.0.236/trunk@52149 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 23:27:21 +00:00
harishd%netscape.com
3d1723b618 Fix for bugs
1312   - Mapped all  HTML 4.0x FPIs to NOQUIRKS mode.
2749   - Tweaked strict comment handling code. -> r=rickg
17148 - Making sure that BeginContext() is ended only by EndContext()
17113, 1262 - Made AddLeaf(), in DTD,  to be cautious in handling text tokens.

Using bit-wise search  for IsContainer() instead of looping. ( nsElementTable )

Fixed warnings.

r=pollmann


git-svn-id: svn://10.0.0.236/trunk@52148 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 23:25:59 +00:00
mcafee%netscape.com
a6b5e55d70 Fixed extra my's that break in some versions of perl
git-svn-id: svn://10.0.0.236/trunk@52147 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 23:24:39 +00:00
sspitzer%netscape.com
a19b0a701f only show profiles that haven't been migrated in the Profile Selection dialog.
git-svn-id: svn://10.0.0.236/trunk@52146 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 23:24:05 +00:00
sspitzer%netscape.com
139ca8b52d adding "Mozilla Select Profile" (aka -SelectProfile) for the mac.
git-svn-id: svn://10.0.0.236/trunk@52145 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 23:19:02 +00:00
mcafee%netscape.com
14b918a812 Adding bloat formatting, baseline mechanism. warren/mcafee
git-svn-id: svn://10.0.0.236/trunk@52144 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 23:18:50 +00:00
sspitzer%netscape.com
9b563bc4a7 adding -SelectProfile for the mac.
git-svn-id: svn://10.0.0.236/trunk@52143 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 23:17:44 +00:00
sspitzer%netscape.com
761883462c checking in ben goodger's (rgoodger@ihug.co.nz) profile selection UI.
r=sspitzer

I made changes so that:

1)  exit quits the app, and doesn't start up app with the last current profile
2)  fix a spelling error (personalisation -> personalization), this is en-US, not en-UK
3)  fix it so start actually starts the selected profile.
4)  -SelectProfile launches this new dialog
5)  if the user starts with no command line, and they have more than one profile, they get -SelectProfile, and not -installer.


git-svn-id: svn://10.0.0.236/trunk@52142 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 23:08:46 +00:00
mcafee%netscape.com
cb42bc5347 switching to static pages.
git-svn-id: svn://10.0.0.236/trunk@52141 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 23:02:49 +00:00
mcafee%netscape.com
5d276fc49d fixing log rename problem. code=warren
git-svn-id: svn://10.0.0.236/trunk@52140 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 23:02:10 +00:00
sspitzer%netscape.com
39084ddb75 add support for SelectProfile
git-svn-id: svn://10.0.0.236/trunk@52139 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 22:56:00 +00:00
ftang%netscape.com
725ca86a3c fix bustage.
git-svn-id: svn://10.0.0.236/trunk@52138 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 22:38:58 +00:00
warren%netscape.com
25f7059c43 Fixed the fact that all pdb files get called default.pdb (which made it hard to debug when there was more than one test file in a directory). r=cyeh
git-svn-id: svn://10.0.0.236/trunk@52137 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 22:36:22 +00:00
rbs%maths.uq.edu.au
cdfb86c649 Catching up with recent changes of the nsIFrame API
git-svn-id: svn://10.0.0.236/trunk@52136 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 22:30:28 +00:00
waterson%netscape.com
ed6d691c92 Remove unused references to nsIXULChildDocument and nsIXULParentDocument.
git-svn-id: svn://10.0.0.236/trunk@52135 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 22:18:21 +00:00
pepper%netscape.com
856f1ee86f Added a newline to the end of file so that AIX and HP compilers are happy.
r=mgleeson


git-svn-id: svn://10.0.0.236/trunk@52134 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 22:17:43 +00:00
rbs%maths.uq.edu.au
4ea4c2ba26 Adding Dave Fiddes' patch for a MOZ_MATHML CFLAGS
git-svn-id: svn://10.0.0.236/trunk@52133 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 22:17:13 +00:00
waterson%netscape.com
c13911024a Remove redundant registration of well-formed DTD. r=rickg
git-svn-id: svn://10.0.0.236/trunk@52132 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 22:15:18 +00:00
waterson%netscape.com
0509ac6c24 Put column headers back in to folder pane. r=hyatt.
git-svn-id: svn://10.0.0.236/trunk@52131 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 22:14:14 +00:00
mccabe%netscape.com
c568cf9bed Add an API entry point for building JS Date objects from millisecond values.
Patches courtesy Chris Houck.  r=mccabe.


git-svn-id: svn://10.0.0.236/trunk@52130 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 22:11:41 +00:00
rhp%netscape.com
b3f1a34e11 Fix for sending plain text as binary files - Bug #16393 - r: mscott
git-svn-id: svn://10.0.0.236/trunk@52129 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 22:09:27 +00:00
norris%netscape.com
a825f1738a work on bug 7270.
r=mstoltz.
Implement netscape.security.PrivilegeManager callbacks.


git-svn-id: svn://10.0.0.236/trunk@52128 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 22:09:03 +00:00
mscott%netscape.com
58da4d1cc2 part of url dispatching framework.
build nsURLDispatcher.cpp


git-svn-id: svn://10.0.0.236/trunk@52127 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 22:08:57 +00:00
ftang%netscape.com
949f26b1d9 remove nsIDOMTextRange.h nsIDOMTextRangeList.h. fix bug 12756. r=tague
git-svn-id: svn://10.0.0.236/trunk@52126 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 22:05:42 +00:00
wtc%netscape.com
2989da583b Bugzilla bug #17486: need parentheses around a & operator in an expression
git-svn-id: svn://10.0.0.236/trunk@52125 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 22:03:08 +00:00
srinivas%netscape.com
894660c683 Export version descriptor. Bugzilla 4742
git-svn-id: svn://10.0.0.236/trunk@52123 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 21:28:46 +00:00
bienvenu%netscape.com
7a179cfe09 fix mac build bustage
git-svn-id: svn://10.0.0.236/trunk@52122 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 21:20:40 +00:00
mcafee%netscape.com
4a058b42d1 Ignore tree directories.
git-svn-id: svn://10.0.0.236/trunk@52120 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 21:16:44 +00:00
dmose%mozilla.org
0d77d490d6 script to update license boilerplate in source files
git-svn-id: svn://10.0.0.236/trunk@52119 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 21:16:29 +00:00
rpotts%netscape.com
4626597396 cleanup - removed unnecessary code checking that mRequest != nsnull. Now the mRequest is allocated at channel construction and the channel is deleted if the request allocation fails...
git-svn-id: svn://10.0.0.236/trunk@52118 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 21:15:56 +00:00
ssu%netscape.com
cc23cb4fd5 added new resource string. This is related to bug #17391. r=dbragg.
Affects only windows platforms.


git-svn-id: svn://10.0.0.236/trunk@52117 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 21:13:28 +00:00
alecf%netscape.com
32ed46c795 fix casting problem on solaris
git-svn-id: svn://10.0.0.236/trunk@52116 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 21:13:06 +00:00
ssu%netscape.com
da07ac32b1 fixing bug #17391. r=dbragg.
Fixes problem with calculating available disk space under
Win95/win98.  Affects only windows platforms.


git-svn-id: svn://10.0.0.236/trunk@52115 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 21:12:24 +00:00
warren%netscape.com
052c27feff Fixed thing that chops off final digit.
git-svn-id: svn://10.0.0.236/trunk@52114 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 21:06:36 +00:00
racham%netscape.com
8f6655fb4a r=gayatrib. Fix for Bug 16414. If the profile dir is deleted it always gets rebuilt based on the path it gets from registry
git-svn-id: svn://10.0.0.236/trunk@52113 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 21:05:26 +00:00
dp%netscape.com
f2caaa1890 Converting to module. r=kipp
git-svn-id: svn://10.0.0.236/trunk@52112 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 20:59:49 +00:00
dp%netscape.com
b3499577af Convering to nsIModule. r=kipp
git-svn-id: svn://10.0.0.236/trunk@52111 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 20:57:29 +00:00
dp%netscape.com
da7c33e34c Remove delete on nsISupports. r=kipp
git-svn-id: svn://10.0.0.236/trunk@52110 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 20:44:45 +00:00
nhotta%netscape.com
b6d38ed4f7 Check input for the null pointer and empty string, bug 17287, r=ducarroz,jefft.
git-svn-id: svn://10.0.0.236/trunk@52109 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 20:41:45 +00:00
nisheeth%netscape.com
ce3c186894 r=nisheeth. Fix for bug 17237 from Rick Gessner (rickg@netscape.com). Thanks, Rick.
git-svn-id: svn://10.0.0.236/trunk@52108 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 20:40:08 +00:00
mscott%netscape.com
33fe7bdd57 Build new uri dispatching interfaces on the Mac.
git-svn-id: svn://10.0.0.236/trunk@52107 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 20:38:16 +00:00
mscott%netscape.com
1e3a7c2073 export uri dispatching interfaces.
git-svn-id: svn://10.0.0.236/trunk@52106 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 20:37:58 +00:00
despotdaemon%netscape.com
a82717bab8 Pseudo-automatic update of changes made by yueheng.xu@intel.com.
git-svn-id: svn://10.0.0.236/trunk@52105 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 20:34:51 +00:00
rods%netscape.com
189a26e941 Listboxes now obey CSS specifed sizes
r=kmcclusk,related to bug 16317


git-svn-id: svn://10.0.0.236/trunk@52104 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 20:31:23 +00:00
radha%netscape.com
ca4f530508 Fix for form values not maintained while going forward. bug # 16377. r=law
git-svn-id: svn://10.0.0.236/trunk@52103 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 20:29:43 +00:00
akhil.arora%sun.com
1aa54f66ab updated list of things todo, removing stuff that has been done
git-svn-id: svn://10.0.0.236/trunk@52102 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 20:28:20 +00:00
akhil.arora%sun.com
d6ca20f368 r=akhil.arora@sun.com By Igor Nekrestyanov <nis@sparc.spb.su>
Minor changes to handle unicode strings properly


git-svn-id: svn://10.0.0.236/trunk@52101 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 20:26:27 +00:00
sspitzer%netscape.com
3a3c45b57c fix warnings. r=valeski
git-svn-id: svn://10.0.0.236/trunk@52100 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 20:25:43 +00:00
kmcclusk%netscape.com
89bd3d196e Removed stray semi-colon after NS_DECL_ISUPPORTS bug=17235 r=rods@netscape.com
git-svn-id: svn://10.0.0.236/trunk@52099 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 20:24:19 +00:00
alecf%netscape.com
5ecb0c11b3 prepare to consolidate server URI creation - create a new property of incoming servers, the local store type, and construct the URL from there.
r=sspitzer


git-svn-id: svn://10.0.0.236/trunk@52098 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 20:22:06 +00:00
alecf%netscape.com
2e274875d3 more cleanup work - now retrieve the server at URI creation time, so that GetServer() is really fast, and just forward calls to GetUsername and GetPassword() to the server. r=sspitzer
git-svn-id: svn://10.0.0.236/trunk@52097 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 20:19:57 +00:00
terry%mozilla.org
7d80bedb81 Back out last change -- specific to mozilla.org, not to general consumers of bugzilla.
git-svn-id: svn://10.0.0.236/trunk@52096 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 20:18:03 +00:00
bienvenu%netscape.com
f488902f5d work on body filters and search r=mscott
git-svn-id: svn://10.0.0.236/trunk@52095 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 20:13:22 +00:00
valeski%netscape.com
b853096819 16968, r=gagan. Changed the way HTTP header notification occurs. now the channel does the notification. Also added SetREsponseHeaders() to the nsIHTTPChannel iface which allows outside users to add response headers (such as nsMultiMIMEConv/bugzilla) and have the new headers perculate to observers. also fixed HTTP handler leak, r=dp on that one.
git-svn-id: svn://10.0.0.236/trunk@52094 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 20:12:59 +00:00
endico%mozilla.org
9b799b1100 Try to herd netscape communicator users away from bugzilla. "if your browser has a blue N logo go report the bug to netscape". This wording may be wrong later on but it works for now.
git-svn-id: svn://10.0.0.236/trunk@52093 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 20:12:52 +00:00
mcafee%netscape.com
296f21777f Updating legend for C, bloaty stats.
git-svn-id: svn://10.0.0.236/trunk@52092 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 19:47:47 +00:00
varada%netscape.com
b921af7d24 fix for bug #12715 import feature for nci files
git-svn-id: svn://10.0.0.236/trunk@52091 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 19:26:35 +00:00
varada%netscape.com
7a333b1d09 fix for change in copydir function
git-svn-id: svn://10.0.0.236/trunk@52090 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 19:25:56 +00:00
warren%netscape.com
16156488f8 Enhanced delta report. Breakdown by what's new, what's changed, etc.
git-svn-id: svn://10.0.0.236/trunk@52089 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 18:57:37 +00:00
despotdaemon%netscape.com
04b5eac48c Pseudo-automatic update of changes made by leaf@mozilla.org.
git-svn-id: svn://10.0.0.236/trunk@52088 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 17:59:13 +00:00
norris%netscape.com
0d74bb8fa4 Fix spelling of contributor's name.
git-svn-id: svn://10.0.0.236/trunk@52087 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 17:43:43 +00:00
troy%netscape.com
aa66ccecfa Elimninated compiler warning
git-svn-id: svn://10.0.0.236/trunk@52086 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 14:46:41 +00:00
ftang%netscape.com
bd4b9fbaf5 fix two comment after brade review and point out my error in prev checkin. r=brade
git-svn-id: svn://10.0.0.236/trunk@52085 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 14:46:37 +00:00
troy%netscape.com
3cb8f38164 Eliminated compiler warning
git-svn-id: svn://10.0.0.236/trunk@52084 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 14:46:06 +00:00
troy%netscape.com
5149a61f62 Added more diagnostic code
git-svn-id: svn://10.0.0.236/trunk@52083 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 14:38:14 +00:00
kipp%netscape.com
1786d79429 bug=17320; Fixed a purify warning
git-svn-id: svn://10.0.0.236/trunk@52082 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 14:33:34 +00:00
ftang%netscape.com
85c96d612c move all end of line # comment to the previous line. Remove all end of line tab and whitespace. Need this to fix Trad Chinese IME. Somehow our property file reader do not treat # as start of comment in a key value pair line. r=brade
git-svn-id: svn://10.0.0.236/trunk@52081 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 14:28:22 +00:00
vidur%netscape.com
1173466bfc Added a version of window.close, which when alled from script that defers actual closure if it is invoked from the script context of the window itself. Fixes bug 15261. R=joki.
git-svn-id: svn://10.0.0.236/trunk@52080 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 14:12:56 +00:00
ftang%netscape.com
c3b0a312fc remove unnecessary #ifdef USE_XIM. r=pavlov
git-svn-id: svn://10.0.0.236/trunk@52079 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 13:16:07 +00:00
Jerry.Kirk%Nexwarecorp.com
4385e8d68e Call PtAppAddFd instead of PtAppAddFdPri because of redraw bugs it
was causing.
r=kedl


git-svn-id: svn://10.0.0.236/trunk@52078 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 12:43:46 +00:00
dp%netscape.com
f06f488185 Removing use of mRefCnt directly. Also, removed all use of refcounted
variable as creations were always refcounted. r=kipp


git-svn-id: svn://10.0.0.236/trunk@52077 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 11:42:15 +00:00
srinivas%netscape.com
a6569800ce Include system files for BeOS; checkin for <duncan@be.com>.
git-svn-id: svn://10.0.0.236/trunk@52076 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 11:40:33 +00:00
rickg%netscape.com
7d94513269 fixed bug17387 (pre-constructing DTD's). r=warren
git-svn-id: svn://10.0.0.236/trunk@52075 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 09:26:19 +00:00
cmanske%netscape.com
450e220228 More changes to Composer for new skin (mostly new images).
git-svn-id: svn://10.0.0.236/trunk@52073 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 08:42:30 +00:00
warren%netscape.com
afff9da3ba Fixed bug in calculating leak total.
git-svn-id: svn://10.0.0.236/trunk@52072 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 08:35:53 +00:00
warren%netscape.com
4677dd631f Changed file transport to facilitate jar: protocol -- parameterized by nsIFileSystem. Bug#12579 r=gagan,gayatrib
git-svn-id: svn://10.0.0.236/trunk@52070 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 08:02:07 +00:00
rickg%netscape.com
b14a509c76 fixed bug17388, dtd leak; r=mscott
git-svn-id: svn://10.0.0.236/trunk@52069 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 07:53:21 +00:00
tbogard%aol.net
cd2764bb20 Changes made to reflect changes in nsIGenericWindow and nsIScrollable.
git-svn-id: svn://10.0.0.236/trunk@52068 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 07:52:08 +00:00
tbogard%aol.net
8e4af380cc Removed RemoveFocus() from nsIGenericWindow. Moved SizeToContent() to nsIHTMLDocShell. Added setCurScrollPosEx and setScrollRangeEx to nsIScrollable. Moved a bunch of code from nsHTMLDocShell into the base class. Commented out some stuff. Everything should compile now.
git-svn-id: svn://10.0.0.236/trunk@52067 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 07:51:10 +00:00
mscott%netscape.com
3587a59aa7 build mime before compose so we can make sure nsIMimeStreamConverter.idl has been exported
before compose IDL files try to use it.


git-svn-id: svn://10.0.0.236/trunk@52066 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 07:23:20 +00:00
dougt%netscape.com
32412a1f03 Fix for this mornings crasher (17352) r=pavlov, mscott
git-svn-id: svn://10.0.0.236/trunk@52065 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 06:44:36 +00:00
ducarroz%netscape.com
a282d4acf9 another Mac bustage fix. Caught before it appears
git-svn-id: svn://10.0.0.236/trunk@52064 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 06:01:43 +00:00
ducarroz%netscape.com
d4df792c85 Fix Mac bustage for mscott.
Add build instruction for mozilla:mailnews:mime:public:MANIFEST_IDL.


git-svn-id: svn://10.0.0.236/trunk@52063 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 05:45:22 +00:00
mscott%netscape.com
1bac65d756 Remove incorrect export of nsIMimeStreamConverter.idl
git-svn-id: svn://10.0.0.236/trunk@52062 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 05:42:15 +00:00
mscott%netscape.com
1b39aa1dd7 more work to try to fix the mac build.
git-svn-id: svn://10.0.0.236/trunk@52061 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 05:39:14 +00:00
ducarroz%netscape.com
eaa801e49e Fix for bug 17405. We need to skip entry that aren't valid during the search. R=mscott (he has also approved the fact I checking despite a red tree)
git-svn-id: svn://10.0.0.236/trunk@52060 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 05:34:07 +00:00
mscott%netscape.com
dbf6bce997 Fix windows build breakage. Try to build mime before compose so the IDL files
get exported first.


git-svn-id: svn://10.0.0.236/trunk@52058 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 05:08:36 +00:00
mscott%netscape.com
5c68fcaafc fix mac build by exporting nsIMimeStreamConverter.idl
git-svn-id: svn://10.0.0.236/trunk@52057 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 04:56:12 +00:00
waterson%netscape.com
31deb6a74d Unix filenames are case-sensitive.
git-svn-id: svn://10.0.0.236/trunk@52056 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 04:36:04 +00:00
mscott%netscape.com
888899af25 Bug #16927 --> when quoting a message, don't try to force a message URI into a protcol url. Convert the rdf uri
into a url and use that instead. For quoting the msg, use NS_NewChannel and AsyncOpen. some cleanup to fix
some ref counting stuff including supporting a new interface. Using the component manager
to create the quote listener instead of using new.
r=rhp


git-svn-id: svn://10.0.0.236/trunk@52055 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 04:22:08 +00:00
mscott%netscape.com
1bc43aaac4 Use nsCOMPtr. Add nsIMsgQuoteListener support, remove some extra member variables that we didn't need.
r=rhp


git-svn-id: svn://10.0.0.236/trunk@52054 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 04:21:30 +00:00
mscott%netscape.com
5daada9f2c Bug #16927 add nsIMsgQuoteListener interface
r=rhp


git-svn-id: svn://10.0.0.236/trunk@52053 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 04:21:02 +00:00
mscott%netscape.com
08f1d9c5a8 Bug #16927 --> add msg quote listener to module.
r=rhp


git-svn-id: svn://10.0.0.236/trunk@52052 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 04:20:41 +00:00
mscott%netscape.com
3b5d377a59 Bug #16927 --> add class id for msg quote listener
r=rhp


git-svn-id: svn://10.0.0.236/trunk@52051 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 04:19:59 +00:00
karnaze%netscape.com
15d92465ad simplified caching of column frames. split out collapsing border processing into nsBorderCollapser (checked in previously). r=troy
git-svn-id: svn://10.0.0.236/trunk@52050 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 04:09:39 +00:00
karnaze%netscape.com
0ddb8bf0bc added files: mozilla/layout/html/table/src/nsTableBorderCollapser.cpp
git-svn-id: svn://10.0.0.236/trunk@52049 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 04:06:36 +00:00
karnaze%netscape.com
b363aea0eb new class for collapsing borders, extracted from nsTableFrame, r=troy
git-svn-id: svn://10.0.0.236/trunk@52045 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 03:51:55 +00:00
braddr%puremagic.com
d8fb5871d7 Move all nsIEnumerator usage over to NS_ENUMERATOR_FALSE from NS_COMFALSE in anticipation of nixing NS_COMFALSE in the near future.
r=scc


git-svn-id: svn://10.0.0.236/trunk@52044 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 03:16:48 +00:00
brendan%mozilla.org
da68e2dcd8 Fix bogus assertion (r=shaver@mozilla.org) found by chouck@geocast.com.
git-svn-id: svn://10.0.0.236/trunk@52043 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 02:50:15 +00:00
fur%netscape.com
50f46042f0 Removed unused variable declaration to eliminate warning
git-svn-id: svn://10.0.0.236/trunk@52042 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 02:48:32 +00:00
srinivas%netscape.com
bc406e3e1e Add PR_Block/Unblock_Interrupt functions. Bugzilla 17055
git-svn-id: svn://10.0.0.236/trunk@52041 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 02:48:01 +00:00
fur%netscape.com
dbcd581b59 Eliminated references to long-dead jsaddr.[ch].
Note: These files only used in standalone JS, not SeaMonkey build.


git-svn-id: svn://10.0.0.236/trunk@52040 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 02:45:01 +00:00
fur%netscape.com
e969fa7f4f Removed unused files - they have been dead for years
git-svn-id: svn://10.0.0.236/trunk@52039 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 02:42:49 +00:00
tbogard%aol.net
d9cd4dc3b8 Pushed many of the method implementations done by buster from nsHTMLDocShell into the base class.
git-svn-id: svn://10.0.0.236/trunk@52038 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 02:20:44 +00:00
mscott%netscape.com
5bfc03c26e part of url dispatching.
export the uri dispatching interfaces.
no reviewer for this makefile change.


git-svn-id: svn://10.0.0.236/trunk@52037 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 02:05:12 +00:00
danm%netscape.com
d5cb9410ae moving initial content focus from OnEndDocumentLoad to Show. Reinstating SetSizeFromXUL. reduces new window flashing and allows gtk windows to size from JS. r:hyatt@netscape.com
git-svn-id: svn://10.0.0.236/trunk@52036 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 01:52:49 +00:00
mscott%netscape.com
df0cb24c86 Checking this in for hangas. Fixes the grey menus in the compose window.
r=mscott


git-svn-id: svn://10.0.0.236/trunk@52035 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 01:52:13 +00:00
cmanske%netscape.com
c0c0bb47c7 Fixed bugs 16690, 16991. Also made UI changes to adjust for new 'skin' r=sfraser
git-svn-id: svn://10.0.0.236/trunk@52034 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 01:51:07 +00:00
nisheeth%netscape.com
151090fbb2 r=nisheeth. Fix for bug 9781 submitted by Johnny Stenbeck (jst@citec.fi). Thanks Johnny.
git-svn-id: svn://10.0.0.236/trunk@52033 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 01:50:37 +00:00
hangas%netscape.com
9c4609c831 Fixed throbber id, bug 17271. r=german
git-svn-id: svn://10.0.0.236/trunk@52032 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 01:44:29 +00:00
law%netscape.com
85c96d1199 Bug #14999; remove last vestiges of app core usage; r=sfraser@netscape.com
git-svn-id: svn://10.0.0.236/trunk@52031 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 01:41:16 +00:00
law%netscape.com
41c8a495f1 Bug #14999, removing last vestiges of app core usage; r=sfraser@netscape.com
git-svn-id: svn://10.0.0.236/trunk@52030 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 01:39:33 +00:00
nisheeth%netscape.com
f341433a7c r=dp. Fix for bug 17411. Commenting out the call to nsFrameManager::CantRenderReplacedElement for now. This should let us open up the tree while dp and pnunn figure out the right fix.
git-svn-id: svn://10.0.0.236/trunk@52029 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 01:20:34 +00:00
tbogard%aol.net
f996be0ecd Changed nativeWindow* parentNativeWindow back to nativeWindow parentNativeWindow.
git-svn-id: svn://10.0.0.236/trunk@52028 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 00:45:13 +00:00
despotdaemon%netscape.com
20ec29f713 Pseudo-automatic update of changes made by andreww@netscape.com.
git-svn-id: svn://10.0.0.236/trunk@52027 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-28 00:11:01 +00:00
hoa.nguyen%intel.com
a56d99d249 Initialize cookie manager. Allows cgi scripts to set and retrieve cookies through viewer. r=edburns@acm.org
git-svn-id: svn://10.0.0.236/trunk@52026 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 23:58:49 +00:00
buster%netscape.com
1f5101db18 added a bunch of initial implementation. does not compile yet, but that's ok because docshell isn't part of the build yet.
git-svn-id: svn://10.0.0.236/trunk@52025 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 23:50:19 +00:00
jfrancis%netscape.com
f4bfa77ae5 fix for 17056: making a list in empty doc didnt work; also making a new list item didn't work. r=floppy moose
git-svn-id: svn://10.0.0.236/trunk@52024 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 23:44:33 +00:00
sfraser%netscape.com
3b974396c6 Add the various menu-related arrow gifs. fixes bug 17368. r=jfrancis
git-svn-id: svn://10.0.0.236/trunk@52023 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 23:40:51 +00:00
jj%netscape.com
adfe3c048e First Checked In.
git-svn-id: svn://10.0.0.236/trunk@52022 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 23:39:46 +00:00
putterman%netscape.com
7e1db2ef27 This should stop build bustage for clobber builds.
git-svn-id: svn://10.0.0.236/trunk@52021 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 23:39:15 +00:00
locka%iol.ie
74ff2dc2f4 Fixed some bugs in the copy to clipboard operation.
Control now calls NS_ShutdownXPCOM during destruction


git-svn-id: svn://10.0.0.236/trunk@52020 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 23:19:27 +00:00
locka%iol.ie
7eff36db02 Added a menu to the dialog.
Implemented tests for cut, copy, paste, select all


git-svn-id: svn://10.0.0.236/trunk@52019 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 23:17:51 +00:00
cata%netscape.com
1bb10c65f4 I'm checking in for momoi, r=cata, bug #17018, Charset Menu usability workaround.
git-svn-id: svn://10.0.0.236/trunk@52018 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 23:10:51 +00:00
ftang%netscape.com
657f0d5580 fix the delete last IME text problem. bug13494 . There are another fix in nsHTMLEditRules.cpp related this but I forget to put the bug # there. r=tague
git-svn-id: svn://10.0.0.236/trunk@52017 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 23:05:24 +00:00
troy%netscape.com
c96591767e b=6674, r=karnaze@netscape.com
Changed Paint() to set the clip rect only when the collapse offset isn't
(0, 0)


git-svn-id: svn://10.0.0.236/trunk@52016 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 23:01:21 +00:00
kipp%netscape.com
3a2fe236a8 r=troy; fixed bug #17346 - the nsTextFormatter self test code found a bug in the nsTextFragment ctor code...
git-svn-id: svn://10.0.0.236/trunk@52015 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 23:01:16 +00:00
hangas%netscape.com
5fb3a93517 Cleaned up bad style rules in global.css - should result in noticable performance improvement. Converted <titledbutton> rules to all use a class, this way we can be specific about how each type of button should look. Added line between columns in tree headers. Indented treecell contents. Cleaned up mail and AB toolbars. Fixed reflow and other drawing issues with toolbar buttons on new skins. Fixed problems in results tree on AB window. Other misc visual changes. Fixed bug 16530, changing the word Messenger to Mail. r=german/hyatt
git-svn-id: svn://10.0.0.236/trunk@52014 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 23:01:09 +00:00
cathleen%netscape.com
c249ccc29e adding missing editor chrome file to mac packaging list
git-svn-id: svn://10.0.0.236/trunk@52013 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 22:59:04 +00:00
ftang%netscape.com
c31d69ed3f add debugging code. fix remove last uncomited IMEText. r=jfrancis
git-svn-id: svn://10.0.0.236/trunk@52012 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 22:56:36 +00:00
akkana%netscape.com
018a1629cf 17305: Fix ? handling. Also add myself to a debug ifdef. r=pavlov
git-svn-id: svn://10.0.0.236/trunk@52011 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 22:53:52 +00:00
tague%netscape.com
282a0d9dcf Fixed bug #16463 - can't create profile with Danish version of Mozilla. I modified the locale mapping code to correct a bug where DA was getting mapped to LANG_DUTCH. r=nhotta@netscape.com
git-svn-id: svn://10.0.0.236/trunk@52010 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 22:52:56 +00:00
bienvenu%netscape.com
d6e604a886 turn on date filters, r=mscott 10416
git-svn-id: svn://10.0.0.236/trunk@52009 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 22:45:18 +00:00
nisheeth%netscape.com
fa55e685cc r=pollmann, troy. Fix for bug 10564. Added some error checking code to prevent crashes reported on low memory configurations.
git-svn-id: svn://10.0.0.236/trunk@52008 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 22:45:05 +00:00
sdagley%netscape.com
41a1603c9d __MD_GetEnv now calls standard C's getenv if environment variable not in NSPR's table. r=beard
git-svn-id: svn://10.0.0.236/trunk@52007 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 22:44:48 +00:00
sspitzer%netscape.com
637de3c1b6 fix for #17285 and #17397. r=mscott.
properly migrate pop and nntp servers from 4.x that were not on the default ports (110 and 119, respectively).
also, set the default port pref to be -1, so that if we don't set the port, it gets set to -1.


git-svn-id: svn://10.0.0.236/trunk@52006 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 22:44:34 +00:00
morse%netscape.com
af16ae652b bug 17339, document.cookie throwing exception, r=neeti
git-svn-id: svn://10.0.0.236/trunk@52005 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 22:43:49 +00:00
rginda%ndcico.com
dece5d007f **NOT PART OF THE SEAMONKEY DEFAULT BUILD**
* xul/tests/test3-output-loud.css
Added css for "loud" style.

* xul/tests/blue_rock.gif
Added pic for new default style, from Eterm background collection.

* makefile.win, Makefile.in
Add blue_rock.gif to install files.

* js/lib/irc.js
Strip \r characters from input.

* xul/tests/index.html
Updated content.

* xul/tests/test3-handlers.js
Create userlist object onJoin if it isnt already there.

* xul/tests/test3-output-default.css
New default style.

* xul/tests/test3-static.js
Added irc.freei.net server to top of EFNet network.  This server does not
require the ident service, which is blocked by the NS firewall.

* xul/tests/test3.xul
Added "loud" style to menu (old default style.)


git-svn-id: svn://10.0.0.236/trunk@52004 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 22:42:47 +00:00
morse%netscape.com
cfdf03bc1a bug 17120, can't startup if cookie dll missing, r=valeski
git-svn-id: svn://10.0.0.236/trunk@52003 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 22:41:36 +00:00
putterman%netscape.com
32be2053bd Added nsIMsgWindow.idl and nsIMsgRDFDataSource.idl
git-svn-id: svn://10.0.0.236/trunk@52002 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 22:40:34 +00:00
putterman%netscape.com
dd42c6ee85 Added nsMsgWindow.cpp
git-svn-id: svn://10.0.0.236/trunk@52001 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 22:39:37 +00:00
morse%netscape.com
0eb9ff94e0 part of bug 8227, dereferencing problems, r=rickg
git-svn-id: svn://10.0.0.236/trunk@52000 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 22:38:48 +00:00
putterman%netscape.com
ff9a018c1e Started work on 17376. reviewed by bienvenu. create an object that knows about
mailnews window data and pass it through backend.


git-svn-id: svn://10.0.0.236/trunk@51999 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 22:38:47 +00:00
cathleen%netscape.com
59a2f543c7 adding missing editor chrome files
git-svn-id: svn://10.0.0.236/trunk@51998 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 22:35:37 +00:00
matt%netscape.com
e180142807 fix for bug 15169 r-morse
git-svn-id: svn://10.0.0.236/trunk@51997 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 22:33:35 +00:00
matt%netscape.com
5077a5368d 17218 r-mcafee
git-svn-id: svn://10.0.0.236/trunk@51996 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 22:31:58 +00:00
rogerl%netscape.com
2bfa05205d Changed commandline option for classpath to 'classpath' instead of 'cp'
git-svn-id: svn://10.0.0.236/trunk@51995 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 22:22:56 +00:00
bienvenu%netscape.com
f3513af6e6 fix a couple ref-counting problems on news dbs, reviewed last week by sspitzer
git-svn-id: svn://10.0.0.236/trunk@51994 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 22:19:42 +00:00
bienvenu%netscape.com
6b1312845e fix off by one error computing display name from naked email address
git-svn-id: svn://10.0.0.236/trunk@51993 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 22:18:12 +00:00
rogerl%netscape.com
f891c9ebb9 Error message for apply argument type
git-svn-id: svn://10.0.0.236/trunk@51992 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 22:17:44 +00:00
rogerl%netscape.com
f3ae1fcf7a ECMA handling of undefined args for call & apply.
git-svn-id: svn://10.0.0.236/trunk@51991 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 22:17:05 +00:00
rogerl%netscape.com
7a5d5c9ad9 Handle LINE & SOURCEFILE in dumpIcode
Fix bug in multiple try/catch clauses after a catch - the tryStackTop was
being decremented twice.


git-svn-id: svn://10.0.0.236/trunk@51990 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 22:16:15 +00:00
rogerl%netscape.com
a8627f0cf6 Handle missing arg in match_or_replace
git-svn-id: svn://10.0.0.236/trunk@51989 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 22:14:46 +00:00
bienvenu%netscape.com
6b7fd317c4 turn on history ab collection for msg sending r=jefft, bug 14447
git-svn-id: svn://10.0.0.236/trunk@51988 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 22:14:37 +00:00
rhp%netscape.com
e735146e7c Fix for Unicode quoting to plain text compose - Bug: 15465 r: bienvenu
git-svn-id: svn://10.0.0.236/trunk@51987 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 22:11:51 +00:00
rogerl%netscape.com
89da4b6f9b ECMA specified handling of NaN inputs for max & min
git-svn-id: svn://10.0.0.236/trunk@51986 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 22:11:43 +00:00
rogerl%netscape.com
800a7e2800 Subsumed ConversionError into TypeError
git-svn-id: svn://10.0.0.236/trunk@51985 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 22:10:36 +00:00
mscott%netscape.com
e2730e12e8 Bug #17352 --> temporarily hide this crasher by inserting an extra
ref count of the event queue. this is horrible since we are introducing
a leak. we need to examine the ownership model of event queues for the app
shell. I'm going to get pavlov to help me look at fixing this bug for real.
r=dougt
a=gramps,granrose


git-svn-id: svn://10.0.0.236/trunk@51984 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 22:00:54 +00:00
dmose%mozilla.org
1710bfc387 updating license boilerplate in all files; checkin approved by leif@netscape.com
git-svn-id: svn://10.0.0.236/trunk@51980 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 21:02:40 +00:00
braddr%puremagic.com
1dde1a4f56 Ooops.. tree closed, better back these out for now. Sorry.
git-svn-id: svn://10.0.0.236/trunk@51979 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 21:01:37 +00:00
larryh%netscape.com
dfb30043a3 BugZilla 17374. Add PROffset types
git-svn-id: svn://10.0.0.236/trunk@51978 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 20:29:22 +00:00
braddr%puremagic.com
7767d9393b Move all nsIEnumerator usage over to NS_ENUMERATOR_FALSE from NS_COMFALSE
in anticipation of nixing NS_COMFALSE in the near future.
r=scc (please contact him should there be any build issues)


git-svn-id: svn://10.0.0.236/trunk@51977 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 20:24:21 +00:00
bienvenu%netscape.com
642710bf52 fix race condition opening imap folder r=mscott, build stopper
git-svn-id: svn://10.0.0.236/trunk@51976 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 19:15:20 +00:00
kipp%netscape.com
0637f2c48a Backed out chris's accidental checkin (don't ask)
git-svn-id: svn://10.0.0.236/trunk@51973 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 15:57:35 +00:00
karnaze%netscape.com
03e8200f99 hello
git-svn-id: svn://10.0.0.236/trunk@51972 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 15:55:31 +00:00
vidur%netscape.com
48577bac14 Update mNumFlushed counts when we do a synchronous notification (in scripts, for example). This is so that a call to FlushTags while we're executing a script sees the context stack in an updated state. Fixes bug 14042. R=joki.
git-svn-id: svn://10.0.0.236/trunk@51971 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 14:03:15 +00:00
Jerry.Kirk%Nexwarecorp.com
a4c99c7c93 Finished implementing ListenToEventQueue.
r=kedl


git-svn-id: svn://10.0.0.236/trunk@51970 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 11:36:21 +00:00
idk%eng.sun.com
3b03dc263a bugId 17329
Added PlugletSecurityContext class.
Set ProxyJNI security context to PlugletSecurityContext
(see 15902)


git-svn-id: svn://10.0.0.236/trunk@51969 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 09:33:06 +00:00
hyatt%netscape.com
a036d65c5c working on theme switching r=pavlov
git-svn-id: svn://10.0.0.236/trunk@51966 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 09:24:23 +00:00
idk%eng.sun.com
ab0a4a932c bugId 17316
Added 4 demo pluglets
a = laa@sparc.spb.su
r = idk@eng.sun.com


git-svn-id: svn://10.0.0.236/trunk@51965 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 09:10:36 +00:00
nisheeth%netscape.com
cd137af4d4 Fix for bug 15633. Fixing build warning with the patch submitted by James Clark (jjc@jclark.com). r=nisheeth
git-svn-id: svn://10.0.0.236/trunk@51964 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 07:39:57 +00:00
briano%netscape.com
3387e5dd13 Automated update
git-svn-id: svn://10.0.0.236/trunk@51962 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 07:15:10 +00:00
nisheeth%netscape.com
74d8a9e437 Added --enable-detec-webshell-leaks autoconf flag.
git-svn-id: svn://10.0.0.236/trunk@51961 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 07:14:42 +00:00
nisheeth%netscape.com
0ca61f6f5c Added --enable-detect-webshell-leaks autoconf flag.
git-svn-id: svn://10.0.0.236/trunk@51960 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 07:13:48 +00:00
mcafee%netscape.com
dc2ef44aa6 switching to absolute leak/bloat numbers.
git-svn-id: svn://10.0.0.236/trunk@51959 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 07:02:25 +00:00
rpotts%netscape.com
d54c2a54d9 bug #13054. r=mscott,warren. Reworked how data is written to the network. I consolidated the writing of nsIBufferInputStreams and nsIInputStreams and limited the amount of data being wrtten at once to MAX_IO_TRANSFER_SIZE...
git-svn-id: svn://10.0.0.236/trunk@51957 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 06:51:12 +00:00
mscott%netscape.com
26a5e7abea Bug #14928 --> url dispatching. Adding initial scaffolding for the uri dispatcher service.
(not part of the build yet)


git-svn-id: svn://10.0.0.236/trunk@51956 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 06:49:42 +00:00
rpotts%netscape.com
207123458e bug #16897. Consolidated the firing of OnStopRequest into the nsHTTPChannel. This is also called if a transport fails to be created...
git-svn-id: svn://10.0.0.236/trunk@51955 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 06:48:53 +00:00
sfraser%netscape.com
e025da23ff Ooops, maybe we do need one of those paths after all. r=floppy
git-svn-id: svn://10.0.0.236/trunk@51954 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 06:48:35 +00:00
mscott%netscape.com
c438ffca68 added a url dispatching comment.
git-svn-id: svn://10.0.0.236/trunk@51953 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 06:48:19 +00:00
sfraser%netscape.com
5258fa6070 Another teeny project fix -- remove obsolete lib/xp paths in the two static targets (which are not built anyway). r=moose
git-svn-id: svn://10.0.0.236/trunk@51952 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 06:44:44 +00:00
sfraser%netscape.com
f825fcb394 Fix the output file (RDF.header -> chrome.headers) so that .h file generation dependencies work properly. Fixes the red tree. r=mscott
git-svn-id: svn://10.0.0.236/trunk@51951 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 06:42:07 +00:00
rpotts%netscape.com
072f7a0e0b These are pollmanns changes for bug #8209 and other related POSTing bugs r=rpotts
git-svn-id: svn://10.0.0.236/trunk@51950 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 06:35:03 +00:00
mcafee%netscape.com
f3b4ca8e81 switching to absolute leak/bloat numbers.
git-svn-id: svn://10.0.0.236/trunk@51949 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 06:34:28 +00:00
sfraser%netscape.com
e48c7f6f32 Really change to using the NSComponent library. the opt target still had NSStartup. r=moose.
git-svn-id: svn://10.0.0.236/trunk@51948 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 06:31:40 +00:00
pavlov%netscape.com
30d2acfd1b check for null r=alecf
git-svn-id: svn://10.0.0.236/trunk@51944 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 05:51:05 +00:00
putterman%netscape.com
6263816942 Fix for 17277. reviewed by mscott. Delete selects next message instead of previous.
git-svn-id: svn://10.0.0.236/trunk@51942 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 04:46:12 +00:00
bienvenu%netscape.com
226d2a5c5f add accessor for load group on doc loader r=rpotts
git-svn-id: svn://10.0.0.236/trunk@51941 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 04:44:42 +00:00
troy%netscape.com
fd1d6fc2a3 Changed view to be stored as a frame property instead of a member data
of nsFrame


git-svn-id: svn://10.0.0.236/trunk@51940 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 03:56:14 +00:00
mccabe%netscape.com
f192186834 Undo overly-hasty backout. This reinstates part of my recent checkin.
git-svn-id: svn://10.0.0.236/trunk@51939 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 03:44:38 +00:00
saari%netscape.com
a9ec68967c Making popups not steal activation on MacOS. r: pinkerton, no bug number that I'm aware of
git-svn-id: svn://10.0.0.236/trunk@51938 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 03:32:35 +00:00
tbogard%aol.net
1d0ea94a3d Create an initialization structure to hold data until window created. Added a lot of implementation for many of the accessors. Filled in a lot of other first cut implementation.
git-svn-id: svn://10.0.0.236/trunk@51936 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 02:45:49 +00:00
tbogard%aol.net
144854adac For some reason to get an nsRect implementation you have to link with gfx. Yeah, that's componentized!
git-svn-id: svn://10.0.0.236/trunk@51935 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 02:44:49 +00:00
beard%netscape.com
98fb6ecb62 make warnings not terminate build. fix bustage, r=mccabe
git-svn-id: svn://10.0.0.236/trunk@51934 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 02:44:34 +00:00
tbogard%aol.net
d23ee135fa Boundary checking.
git-svn-id: svn://10.0.0.236/trunk@51933 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 02:44:01 +00:00
tbogard%aol.net
7c66962d85 A little more documentation.
git-svn-id: svn://10.0.0.236/trunk@51932 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 02:43:37 +00:00
hyatt%netscape.com
4639154a7f making the chrome registry work with dynamic overlays r=pavlov
git-svn-id: svn://10.0.0.236/trunk@51931 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 02:21:05 +00:00
mccabe%netscape.com
8522d5db78 Debust mac-specific \r-related tree breakage.
git-svn-id: svn://10.0.0.236/trunk@51927 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 01:28:59 +00:00
troy%netscape.com
c04dab44f6 Change to some assertions in debug mode
git-svn-id: svn://10.0.0.236/trunk@51925 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 00:53:15 +00:00
mccabe%netscape.com
cde9269c1b Various fixes to xpidl. Note that this checkin will cause a rebuild of everything that depends on nsISupports.h. Fixes courtesy Mike Shaver, with small tweaks by McCabe. r=shaver, r=mccabe.
- Fix to bug 17013; have xpidl produce an error when encountering a native declaration without an associated (c++-name).

- remove many DEBUG_shaver lines.

- provide xpidl_tree_warning as a fallback for libIDL versions for which IDL_tree warning is bad, and NULL-proof our message callback function.  Also remove a 1k buffer limit from the message callback function.

- make enum in IDL files an error.  We don't support it, and love consts instead.

- Fix to 12684; don't allow [retval] parameter + return or multiple [retval] parameters.

- Fix to 13390; make non-{short,long} const a fatal error.


git-svn-id: svn://10.0.0.236/trunk@51924 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 00:37:39 +00:00
hangas%netscape.com
825694f714 Fixed the order of the stop and reload buttons on the browser. r=german
git-svn-id: svn://10.0.0.236/trunk@51923 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 00:17:16 +00:00
ftang%netscape.com
94bc1e8092 add debugging code. change code so we won't call MapDBCSAttributeArrayToUnicodeOffsets when we are not composition. Sent length == 0 TextEvent if we got nothhing in IME_COMPOSITION. This is needed to delete the last unconverted text in IME. r=tague
git-svn-id: svn://10.0.0.236/trunk@51922 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 00:14:46 +00:00
ftang%netscape.com
1a8b9b5ddb implement input method highlight. r=tague
git-svn-id: svn://10.0.0.236/trunk@51921 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 00:10:03 +00:00
jj%netscape.com
e14a41074a workaround to accept wildcards on Mac -- granrose. r=jj
git-svn-id: svn://10.0.0.236/trunk@51918 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-27 00:03:54 +00:00
rods%netscape.com
beb6aa3e8b At kipp's suggestion I added a EnterReflowLock before and a ExitReflowLock
after my AppendReflowCommand. The reflow command gets "kicked off"
and it is now fixed. r=kipp, b=14771


git-svn-id: svn://10.0.0.236/trunk@51916 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-26 23:34:46 +00:00
sspitzer%netscape.com
71d282e592 fix for #17212, r=mscott.
migrate imap servers that have the port in the name (like nsmail-2:143)


git-svn-id: svn://10.0.0.236/trunk@51915 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-26 23:34:30 +00:00
rods%netscape.com
d8ca5cd972 removed an unused variable and an extra decl and call to remove two warnings
r=none


git-svn-id: svn://10.0.0.236/trunk@51914 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-26 23:28:51 +00:00
mccabe%netscape.com
2cdb9d67e3 Fix IDL to use native <idl-name>(<C++-name>); instead of just native <idl-name>; This is prep to make the tree compile with a new error mode landing in xpidl shortly.
Preperatory to a fix to 17013; I'm doing this as a separate checkin to avoid any checkin-skew danger.

r=shaver.


git-svn-id: svn://10.0.0.236/trunk@51913 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-26 23:26:28 +00:00
rods%netscape.com
bdb148b62f changed param in the initializer to aContent instead of nsnull
r=kmcclusk,b=17015


git-svn-id: svn://10.0.0.236/trunk@51912 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-26 23:21:14 +00:00
gagan%netscape.com
22e24a8da0 Fixed bugs 11677 (perf) 13837 (spaces) 14380 (leading spaces) 14707 (-1) 15069 (file://) r=valeski
git-svn-id: svn://10.0.0.236/trunk@51911 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-26 23:16:34 +00:00
cmanske%netscape.com
3054ed7de9 Fixed bugs 6278, 9758, 17014, 17071, 17160. r=sfraser,mjudge
git-svn-id: svn://10.0.0.236/trunk@51910 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-26 23:13:00 +00:00
mcafee%netscape.com
214b95844f Clear alarm from AliveTest, this was causing alternating green/orange status. Thanks to alecf/slamm for debugging help.
git-svn-id: svn://10.0.0.236/trunk@51909 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-26 23:10:35 +00:00
cmanske%netscape.com
f92e65e679 Part of fix for 17160, remove TextEditor from Tasks menu. r=mjudge
git-svn-id: svn://10.0.0.236/trunk@51908 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-26 23:07:41 +00:00
rhp%netscape.com
013f4b1591 Cleaning up some comments.
git-svn-id: svn://10.0.0.236/trunk@51907 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-26 23:06:27 +00:00
tbogard%aol.net
bb01dd252a Implemented the Destroy() method.... Which basically boils down to us returning out that we don't support the method. :)
git-svn-id: svn://10.0.0.236/trunk@51905 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-26 22:59:33 +00:00
wtc%netscape.com
f6437b73b9 Bugzilla bug #17188: NSPR should not automatically set the SO_KEEPALIVE
socket option on a new TCP socket. The HAVE_SOCKET_KEEPALIVE macro is
obsolete. r=srinivas@netscape.com.
Modified files: _beos.h, _os2.h, _unixos.h, _win16.h, _win95.h, _winnt.h,
prsocket.c, and ptio.c.


git-svn-id: svn://10.0.0.236/trunk@51902 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-26 22:58:55 +00:00
tbogard%aol.net
9e1e7d7a18 Implemented a number of methods for the doc shell attributes. Setup and Init structure which is used to accept the settings of attributes until Create() is called.
git-svn-id: svn://10.0.0.236/trunk@51900 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-26 22:56:59 +00:00
rhp%netscape.com
428cbd6498 Update changes for Mac project...again
git-svn-id: svn://10.0.0.236/trunk@51898 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-26 22:56:18 +00:00
tbogard%aol.net
0701f384c9 Updated some of the documentation.
git-svn-id: svn://10.0.0.236/trunk@51895 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-26 22:54:26 +00:00
rhp%netscape.com
3aa41ccbdf Update changes for Mac project
git-svn-id: svn://10.0.0.236/trunk@51894 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-26 22:47:55 +00:00
norris%netscape.com
0949cbb8b9 Fix 16836 "Security error accessing DOM elements inside an IFrame"
r=vidur@netscape.com
Also, bug 16536 "Security disallows opening resource URL" no longer occurs after this fix.


git-svn-id: svn://10.0.0.236/trunk@51893 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-26 22:45:32 +00:00
rhp%netscape.com
0d96648b4a Changes for better text display and format flowed - Bug #16507 - r: rhp since this is externally contributed
git-svn-id: svn://10.0.0.236/trunk@51892 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-26 22:43:25 +00:00
pinkerton%netscape.com
ae7c4c1605 File Removed.
git-svn-id: svn://10.0.0.236/trunk@51891 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-26 22:38:54 +00:00
pinkerton%netscape.com
884c5020ad use new chrome idl project instead of generated header file (r=hyatt).
git-svn-id: svn://10.0.0.236/trunk@51890 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-26 22:38:40 +00:00
pinkerton%netscape.com
3ef9a724a2 First Checked In.
git-svn-id: svn://10.0.0.236/trunk@51889 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-26 22:37:45 +00:00
slamm%netscape.com
50be5003d6 Add entity for bookmarks menu on personal toolbar
git-svn-id: svn://10.0.0.236/trunk@51888 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-26 22:10:15 +00:00
varada%netscape.com
2c49380653 fixes for bug #8977 9097
git-svn-id: svn://10.0.0.236/trunk@51887 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-26 22:07:57 +00:00
valeski%netscape.com
89e72a3976 fixing bustage
git-svn-id: svn://10.0.0.236/trunk@51886 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-26 22:07:50 +00:00
jj%netscape.com
699e8eca27 File Removed.
git-svn-id: svn://10.0.0.236/trunk@51885 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-26 21:53:43 +00:00
dougt%netscape.com
d11e61e41f People will not like to see my debugging info about object retention. Remov
ing #define.


git-svn-id: svn://10.0.0.236/trunk@51884 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-26 21:44:02 +00:00
brade%netscape.com
f6a4506783 First Checked In.
git-svn-id: svn://10.0.0.236/trunk@51883 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-26 21:27:05 +00:00
terry%mozilla.org
02502d0c41 Fixed perl warning.
git-svn-id: svn://10.0.0.236/trunk@51882 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-26 21:14:01 +00:00
varada%netscape.com
abe68f9fc4 fixing string.ini for online help from show example
git-svn-id: svn://10.0.0.236/trunk@51881 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-26 21:13:16 +00:00
varada%netscape.com
c1d12e4258 fixing checklist.ini for online help
git-svn-id: svn://10.0.0.236/trunk@51880 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-26 21:12:56 +00:00
varada%netscape.com
ff6e49dbb9 fix for bug#10810 if Help=Online;url is included in the ini file then the online help is launched with that url
git-svn-id: svn://10.0.0.236/trunk@51879 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-26 21:10:39 +00:00
valeski%netscape.com
f94df2ee59 17270, r=dougt@netscape.com. These changes move FTP from interface pointers to COMptrs. There is also a variable name change, mUrl -> mURL. Also some extraneous pipe code has been removed.
git-svn-id: svn://10.0.0.236/trunk@51878 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-26 20:55:50 +00:00
mstoltz%netscape.com
c48a5396a0 Fixed Windows breakage from converting const nsZIpItem* to nsZipItem*. r=dveditz
git-svn-id: svn://10.0.0.236/trunk@51877 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-26 20:45:21 +00:00
mscott%netscape.com
a29d572364 Bug #14928 -- > url dispatching. Change DoContent to return a stream listener instead of
a nsIContentViewer.
r=travis


git-svn-id: svn://10.0.0.236/trunk@51876 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-26 20:35:21 +00:00
rogerl%netscape.com
1aa494ee2b Changed from pic to PIC for Solaris build per Vishy.
git-svn-id: svn://10.0.0.236/trunk@51875 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-26 20:34:55 +00:00
pinkerton%netscape.com
9cbdc1b888 add case for unicode flavor, which i guess was forgotten before. now apps that request unicode get unicode. bug# 16267 r=hyatt/pav. thanks to VYV03354@nifty.ne.jp for pointing this out.
git-svn-id: svn://10.0.0.236/trunk@51874 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-26 20:33:30 +00:00
pinkerton%netscape.com
3490b579c3 Cleaned up the code and fixed a bug where data was not being null terminated on winNT.
partial fix for bug #16267 (r=hyatt/pav).


git-svn-id: svn://10.0.0.236/trunk@51873 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-26 20:31:54 +00:00
ftang%netscape.com
4c6ccd7e59 change #ifdef DEBUG_tague to #if defined(DEBUG_tague) || defined(DEBUG_ftang)
git-svn-id: svn://10.0.0.236/trunk@51872 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-26 20:17:36 +00:00
nhotta%netscape.com
643eb34912 Unicode encoder related change for unmapped characters.
If unicode encoder cannot map a character to the target encoding, it returns used unicode length including the unmapped character.
That is true for all encoder except ISO-2022-JP (bug #15706). Changed the callers to match the encoder behavior. bug 8865, r=cata.


git-svn-id: svn://10.0.0.236/trunk@51871 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-26 20:16:11 +00:00
ftang%netscape.com
a72076d654 fix IME assertion problem . r=jfrancis
git-svn-id: svn://10.0.0.236/trunk@51870 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-26 20:04:47 +00:00
putterman%netscape.com
8189fffdfb No bug. reviewed by bienvenu. OnKeyDeleted wasn't sending the correct parent
thread value because the message was being deleted before we saved off the parent.


git-svn-id: svn://10.0.0.236/trunk@51869 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-26 19:52:20 +00:00
slamm%netscape.com
861592dd89 Tweak sidebar styles. r=german.
git-svn-id: svn://10.0.0.236/trunk@51868 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-26 19:45:25 +00:00
dougt%netscape.com
f769dc5560 merging FILESEP and DIRECTORY_SEPARATOR. they both do the same thing.
git-svn-id: svn://10.0.0.236/trunk@51867 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-26 19:45:18 +00:00
slamm%netscape.com
595ab124a0 Use real separator on personal toolbar menus. r=hyatt
git-svn-id: svn://10.0.0.236/trunk@51866 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-26 19:44:22 +00:00
slamm%netscape.com
7d6ce80686 Add bookmarks button (bug #14502) to personal toolbar. Fix spacing of buttons on personal toolbar. r=hyatt
git-svn-id: svn://10.0.0.236/trunk@51865 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-26 19:43:32 +00:00
mstoltz%netscape.com
ea05167e43 Added GetInputStream function to nsJAR in order to extract files into memory rather than to disk. Created nsJARInputStream to carry this data. Most of the code for this change went into nsZipArchive, which now handles either file output or output to memory. bug=16077 r=dveditz
git-svn-id: svn://10.0.0.236/trunk@51864 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-26 19:43:26 +00:00
dougt%netscape.com
94bbe207a4 Cleanup.
Removing convertTo* routines

Not hooked up to build yet.


git-svn-id: svn://10.0.0.236/trunk@51863 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-26 19:34:56 +00:00
dougt%netscape.com
c10be2aa21 1) Change ownership model internally. (17009)
2) Fixed IMAP password dialog problems by adding a PR_SLEEP() in
   nested event loop.
3) Now using a pushed event loop.

r=valeski, mscott.


git-svn-id: svn://10.0.0.236/trunk@51862 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-26 19:30:50 +00:00
valeski%netscape.com
6f9e12e047 17144. api change to nsIIOService.idl made last night missed the javascript caller in here
git-svn-id: svn://10.0.0.236/trunk@51861 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-26 19:08:10 +00:00
nhotta%netscape.com
b6cdf6cb47 Added charset propertiy files so the charset conversion to work properly (for win and mac, unix didn't have the problem), 17254, r=ftang.
git-svn-id: svn://10.0.0.236/trunk@51860 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-26 19:06:41 +00:00
jfrancis%netscape.com
bb138b3c5c reworking editor IME supoprt; r=kin; bugs: 13576, 11878, 11994, 13494, 16432
git-svn-id: svn://10.0.0.236/trunk@51859 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-26 18:54:47 +00:00
rhp%netscape.com
b4e2e646cf Just adding new files...NOT PART OF THE BUILD!
git-svn-id: svn://10.0.0.236/trunk@51858 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-26 18:50:08 +00:00
despotdaemon%netscape.com
cceb1924b6 Pseudo-automatic update of changes made by mcs@netscape.com.
git-svn-id: svn://10.0.0.236/trunk@51857 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-26 17:55:28 +00:00
norris%netscape.com
e544596aa2 Remove method duplication in NativeGlobal.
Add javadoc comments to EcmaError.


git-svn-id: svn://10.0.0.236/trunk@51856 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-26 17:22:23 +00:00
norris%netscape.com
9be2ae4e35 Get filename and line number into uncaught exception reports.
git-svn-id: svn://10.0.0.236/trunk@51855 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-26 17:06:12 +00:00
slamm%netscape.com
0f3c71a001 Need path to gunzip. This should be configured.
git-svn-id: svn://10.0.0.236/trunk@51854 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-26 16:56:00 +00:00
terry%mozilla.org
4f2f6dae6d Update version to 1.3 (which means unstable, tip-of-CVS version).
git-svn-id: svn://10.0.0.236/trunk@51853 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-26 15:49:58 +00:00
terry%mozilla.org
8f7faa2f78 Fixed perl error caused by previous change.
git-svn-id: svn://10.0.0.236/trunk@51852 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-26 15:48:25 +00:00
72 changed files with 105 additions and 15094 deletions

View File

@@ -0,0 +1,105 @@
/*
The contents of this file are subject to the Mozilla Public
License Version 1.1 (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/MPL/
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.org code.
The Initial Developer of the Original Code is Sun Microsystems,
Inc. Portions created by Sun are
Copyright (C) 1999 Sun Microsystems, Inc. All
Rights Reserved.
Contributor(s):
*/
#ifndef __JavaDOMGlobals_h__
#define __JavaDOMGlobals_h__
#include "jni.h"
#include "prclist.h"
#include "nsError.h"
#ifdef ERROR
#undef ERROR
#endif
class nsISupports;
class nsIDOMNode;
struct PRLogModuleInfo;
struct PRLock;
class JavaDOMGlobals {
public:
static jclass attrClass;
static jclass cDataSectionClass;
static jclass commentClass;
static jclass documentClass;
static jclass documentFragmentClass;
static jclass documentTypeClass;
static jclass domImplementationClass;
static jclass elementClass;
static jclass entityClass;
static jclass entityReferenceClass;
static jclass namedNodeMapClass;
static jclass nodeClass;
static jclass nodeListClass;
static jclass notationClass;
static jclass processingInstructionClass;
static jclass textClass;
static jfieldID nodePtrFID;
static jfieldID nodeListPtrFID;
static jfieldID domImplementationPtrFID;
static jfieldID nodeTypeAttributeFID;
static jfieldID nodeTypeCDataSectionFID;
static jfieldID nodeTypeCommentFID;
static jfieldID nodeTypeDocumentFragmentFID;
static jfieldID nodeTypeDocumentFID;
static jfieldID nodeTypeDocumentTypeFID;
static jfieldID nodeTypeElementFID;
static jfieldID nodeTypeEntityFID;
static jfieldID nodeTypeEntityReferenceFID;
static jfieldID nodeTypeNotationFID;
static jfieldID nodeTypeProcessingInstructionFID;
static jfieldID nodeTypeTextFID;
static jclass domExceptionClass;
static jmethodID domExceptionInitMID;
static jclass runtimeExceptionClass;
static jmethodID runtimeExceptionInitMID;
static const char* const DOM_EXCEPTION_MESSAGE[];
typedef enum ExceptionType { EXCEPTION_RUNTIME,
EXCEPTION_DOM } ExceptionType;
static PRLogModuleInfo* log;
static PRCList garbage;
static PRLock* garbageLock;
static PRInt32 javaMaxInt;
static void Initialize(JNIEnv *env);
static void Destroy(JNIEnv *env);
static jobject CreateNodeSubtype(JNIEnv *env,
nsIDOMNode *node);
static void AddToGarbage(nsISupports* domObject);
static void TakeOutGarbage();
static void ThrowException(JNIEnv *env,
const char * message = NULL,
nsresult rv = NS_OK,
ExceptionType exceptionType = EXCEPTION_RUNTIME);
};
#endif /* __JavaDOMGlobals_h__ */

View File

@@ -1,484 +0,0 @@
# -*- Mode: perl; indent-tabs-mode: nil -*-
#
# The contents of this file are subject to the Mozilla 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/MPL/
#
# 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 the Bugzilla Bug Tracking System.
#
# 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.
#
# Contributor(s): Terry Weissman <terry@mozilla.org>
# Contains some global routines used throughout the CGI scripts of Bugzilla.
use diagnostics;
use strict;
use CGI::Carp qw(fatalsToBrowser);
require 'globals.pl';
##
## Utility routines to convert strings
##
# Get rid of all the %xx encoding and the like from the given URL.
sub url_decode {
my ($todecode) = (@_);
$todecode =~ tr/+/ /; # pluses become spaces
$todecode =~ s/%([0-9a-fA-F]{2})/pack("c",hex($1))/ge;
return $todecode;
}
# Quotify a string, suitable for putting into a URL.
sub url_quote {
my($toencode) = (@_);
$toencode=~s/([^a-zA-Z0-9_\-.])/uc sprintf("%%%02x",ord($1))/eg;
return $toencode;
}
# Quotify a string, suitable for output as form values
sub value_quote {
my ($var) = (@_);
$var =~ s/\&/\&amp;/g;
$var =~ s/</\&lt;/g;
$var =~ s/>/\&gt;/g;
$var =~ s/\"/\&quot;/g;
$var =~ s/\n/\&#010;/g;
$var =~ s/\r/\&#013;/g;
return $var;
}
sub url_encode2 {
my ($s) = @_;
$s =~ s/\%/\%25/g;
$s =~ s/\=/\%3d/g;
$s =~ s/\?/\%3f/g;
$s =~ s/ /\%20/g;
$s =~ s/\n/\%0a/g;
$s =~ s/\r//g;
$s =~ s/\"/\%22/g;
$s =~ s/\'/\%27/g;
$s =~ s/\|/\%7c/g;
$s =~ s/\&/\%26/g;
$s =~ s/\+/\%2b/g;
return $s;
}
sub url_encode3 {
my ($s) = @_;
$s =~ s/\n/\%0a/g;
$s =~ s/\r//g;
$s =~ s/\"/\%22/g;
$s =~ s/\+/\%2b/g;
return $s;
}
##
## Routines to generate html as part of Bonsai
##
# Create the URL that has the correct tree and batch information
sub BatchIdPart {
my ($initstr) = @_;
my ($result, $ro) = ("", Param('readonly'));
$initstr = "" unless (defined($initstr) && $initstr);
$result = $initstr if (($::TreeID ne "default") || $ro);
$result .= "&treeid=$::TreeID" if ($::TreeID ne "default");
$result .= "&batchid=$::BatchID" if ($ro);
return $result;
}
# Create a generic page header for bonsai pages
sub PutsHeader {
my ($title, $h1, $h2) = (@_);
if (!defined $h1) {
$h1 = $title;
}
if (!defined $h2) {
$h2 = "";
}
print "<HTML><HEAD>\n<TITLE>$title</TITLE>\n";
print $::Setup_String if (defined($::Setup_String) && $::Setup_String);
print Param("headerhtml") . "\n</HEAD>\n";
print "<BODY BGCOLOR=\"#FFFFFF\" TEXT=\"#000000\"\n";
print "LINK=\"#0000EE\" VLINK=\"#551A8B\" ALINK=\"#FF0000\">\n";
print PerformSubsts(Param("bannerhtml"), undef);
print "<TABLE BORDER=0 CELLPADDING=12 CELLSPACING=0 WIDTH=\"100%\">\n";
print " <TR>\n";
print " <TD>\n";
print " <TABLE BORDER=0 CELLPADDING=0 CELLSPACING=2>\n";
print " <TR><TD VALIGN=TOP ALIGN=CENTER NOWRAP>\n";
print " <FONT SIZE=\"+3\"><B><NOBR>$h1</NOBR></B></FONT>\n";
print " </TD></TR><TR><TD VALIGN=TOP ALIGN=CENTER>\n";
print " <B>$h2</B>\n";
print " </TD></TR>\n";
print " </TABLE>\n";
print " </TD>\n";
print " <TD>\n";
print Param("blurbhtml");
print "</TD></TR></TABLE>\n";
}
# Create a generic page trailer for bonsai pages
sub PutsTrailer {
my $args = BatchIdPart('?');
my $maintainer = Param('maintainer');
my $email = '';
if ($maintainer) {
$email = "<br>" . ConstructMailTo($maintainer, "Bonsai Comments");
$email .= " with comments/questions about this page.\n";
}
print "
<br clear=all>
<hr>
<a href=\"toplevel.cgi$args\" target=_top>
Back to the top of Bonsai</a>
$email
</html>
";
}
sub GeneratePersonInput {
my ($field, $required, $def_value, $extraJavaScript) = (@_);
if (!defined $extraJavaScript) {
$extraJavaScript = "";
}
if ($extraJavaScript ne "") {
$extraJavaScript = "onChange=\" $extraJavaScript \"";
}
return "<INPUT NAME=\"$field\" SIZE=32 $extraJavaScript VALUE=\"$def_value\">";
}
sub GeneratePeopleInput {
my ($field, $def_value) = (@_);
return "<INPUT NAME=\"$field\" SIZE=45 VALUE=\"$def_value\">";
}
sub make_options {
my ($src,$default,$isregexp) = (@_);
my $last = "";
my $popup = "";
my $found = 0;
if ($src) {
foreach my $item (@$src) {
if ($item eq "-blank-" || $item ne $last) {
if ($item eq "-blank-") {
$item = "";
}
$last = $item;
if ($isregexp ? $item =~ $default : $default eq $item) {
$popup .= "<OPTION SELECTED VALUE=\"$item\">$item";
$found = 1;
} else {
$popup .= "<OPTION VALUE=\"$item\">$item";
}
}
}
}
if (!$found && $default ne "") {
$popup .= "<OPTION SELECTED>$default";
}
return $popup;
}
sub make_popup {
my ($name,$src,$default,$listtype,$onchange) = (@_);
my $popup = "<SELECT NAME=$name";
if ($listtype > 0) {
$popup .= " SIZE=5";
if ($listtype == 2) {
$popup .= " MULTIPLE";
}
}
if (defined $onchange && $onchange ne "") {
$popup .= " onchange=$onchange";
}
$popup .= ">" . make_options($src, $default,
($listtype == 2 && $default ne ""));
$popup .= "</SELECT>";
return $popup;
}
sub make_cgi_args {
my ($k,$v);
my $ret = "";
for $k (sort keys %::FORM){
$ret .= ($ret eq "" ? '?' : '&');
$v = $::FORM{$k};
$ret .= &url_encode2($k);
$ret .= '=';
$ret .= &url_encode2($v);
}
return $ret;
}
sub cvsmenu {
my ($extra) = @_;
my ($pass, $i, $page, $title);
my ($desc, $branch, $root, $module, $maintainer);
LoadTreeConfig();
if (!defined $extra) {
$extra = "";
}
print "<table border=1 bgcolor=#ffffcc $extra>\n";
print "<tr><th>Menu</tr><tr><td><p>\n<dl>\n";
foreach $pass ("cvsqueryform|Query",
"rview|Browse",
"moduleanalyse|Examine Modules") {
($page, $title) = split(/\|/, $pass);
$page .= ".cgi";
print "<b>$title</b><br><ul>\n";
foreach $i (@::TreeList) {
$branch = '';
$branch = "&branch=$::TreeInfo{$i}{'branch'}"
if $::TreeInfo{$i}{'branch'};
$desc = $::TreeInfo{$i}{'shortdesc'};
$desc = $::TreeInfo{$i}{'description'} unless $desc;
$root = "cvsroot=$::TreeInfo{$i}{'repository'}";
$module = "module=$::TreeInfo{$i}{'module'}";
print "<li><a href=\"$page?$root&$module$branch\">$desc</a>\n";
};
print "</ul>\n";
};
if (open(EXTRA, "<data/cvsmenuextra")) {
while (<EXTRA>) {
print $_;
}
close EXTRA;
}
$maintainer = Param('maintainer');
print "</dl>
<p></tr><tr><td>
<font size=-1> Questions, Comments, Feature requests?
mail <a href=\"mailto:$maintainer\">$maintainer</a>
</font>
</tr></table>
";
}
##
## Routines to handle initializing CGI form data, cookies, etc...
##
sub ProcessFormFields {
my ($buffer) = (@_);
undef %::FORM;
undef %::MFORM;
my %isnull;
my $remaining = $buffer;
while ($remaining ne "") {
my $item;
if ($remaining =~ /^([^&]*)&(.*)$/) {
$item = $1;
$remaining = $2;
} else {
$item = $remaining;
$remaining = "";
}
my $name;
my $value;
if ($item =~ /^([^=]*)=(.*)$/) {
$name = $1;
$value = url_decode($2);
} else {
$name = $item;
$value = "";
}
if ($value ne "") {
if (defined $::FORM{$name}) {
$::FORM{$name} .= $value;
my $ref = $::MFORM{$name};
push @$ref, $value;
} else {
$::FORM{$name} = $value;
$::MFORM{$name} = [$value];
}
} else {
$isnull{$name} = 1;
}
}
if (defined %isnull) {
foreach my $name (keys(%isnull)) {
if (!defined $::FORM{$name}) {
$::FORM{$name} = "";
$::MFORM{$name} = [];
}
}
}
}
sub ProcessMultipartFormFields {
my ($boundary) = (@_);
$boundary =~ s/^-*//;
my $remaining = $ENV{"CONTENT_LENGTH"};
my $inheader = 1;
my $itemname = "";
while ($remaining > 0 && ($_ = <STDIN>)) {
$remaining -= length($_);
if ($_ =~ m/^-*$boundary/) {
$inheader = 1;
$itemname = "";
next;
}
if ($inheader) {
if (m/^\s*$/) {
$inheader = 0;
$::FORM{$itemname} = "";
}
if (m/^Content-Disposition:\s*form-data\s*;\s*name\s*=\s*"([^\"]+)"/i) {
$itemname = $1;
if (m/;\s*filename\s*=\s*"([^\"]+)"/i) {
$::FILENAME{$itemname} = $1;
}
}
next;
}
$::FORM{$itemname} .= $_;
}
delete $::FORM{""};
# Get rid of trailing newlines.
foreach my $i (keys %::FORM) {
chomp($::FORM{$i});
$::FORM{$i} =~ s/\r$//;
}
}
sub FormData {
my ($field) = (@_);
unless (defined($::FORM{$field})) {
print "\n<b>Error: Form field `<tt>$field</tt>' is not defined</b>\n";
exit 0;
}
return $::FORM{$field};
}
sub CheckEmailSyntax {
my ($addr) = (@_);
if ($addr !~ /^[^@, ]*@[^@, ]*\.[^@, ]*$/) {
print "Content-type: text/html\n\n";
print "<H1>Invalid e-mail address entered.</H1>\n";
print "The e-mail address you entered\n";
print "(<b>$addr</b>) didn't match our minimal\n";
print "syntax checking for a legal email address. A legal\n";
print "address must contain exactly one '\@', and at least one\n";
print "'.' after the \@, and may not contain any commas or.\n";
print "spaces.\n";
print "<p>Please click <b>back</b> and try again.\n";
exit;
}
}
############# Live code below here (that is, not subroutine defs) #############
$| = 1;
# Uncommenting this next line can help debugging.
# print "Content-type: text/html\n\nHello mom\n";
# foreach my $k (sort(keys %ENV)) {
# print "$k $ENV{$k}<br>\n";
# }
if (defined $ENV{"REQUEST_METHOD"}) {
if ($ENV{"REQUEST_METHOD"} eq "GET") {
if (defined $ENV{"QUERY_STRING"}) {
$::buffer = $ENV{"QUERY_STRING"};
} else {
$::buffer = "";
}
ProcessFormFields $::buffer;
} else {
if ($ENV{"CONTENT_TYPE"} =~
m@multipart/form-data; boundary=\s*([^; ]+)@) {
ProcessMultipartFormFields($1);
$::buffer = "";
} else {
read STDIN, $::buffer, $ENV{"CONTENT_LENGTH"} ||
die "Couldn't get form data";
ProcessFormFields $::buffer;
}
}
}
if (defined $ENV{"HTTP_COOKIE"}) {
foreach my $pair (split(/;/, $ENV{"HTTP_COOKIE"})) {
$pair = trim($pair);
if ($pair =~ /^([^=]*)=(.*)$/) {
$::COOKIE{$1} = $2;
} else {
$::COOKIE{$pair} = "";
}
}
}
if (defined $::FORM{'treeid'} && $::FORM{'treeid'} ne "") {
$::TreeID = $::FORM{'treeid'};
}
if (defined $::FORM{'batchid'}) {
LoadBatchID();
if ($::BatchID != $::FORM{'batchid'}) {
$::BatchID = $::FORM{'batchid'};
# load parameters first to prevent overwriting
Param('readonly');
$::param{'readonly'} = 1;
}
}
1;

View File

@@ -1,47 +0,0 @@
This file contains only important changes made to Bonsai. If you
are updating from an older verseion, make sure that you check this file!
For a more complete list of what has changed, use Bonsai itself, at
(http://cvs-mirror.mozilla.org/webtools/bonsai/cvsqueryform.cgi) to
query the CVS tree. For example,
http://cvs-mirror.mozilla.org/webtools/bonsai/cvsquery.cgi?module=all&branch=HEAD&branchtype=match&dir=mozilla%2Fwebtools%2Fbonsai&file=&filetype=match&who=&whotype=match&sortby=Date&hours=2&date=week&mindate=&maxdate=&cvsroot=%2Fcvsroot
will tell you what has been changed in the last week.
10/12/99 Apparently, newer alphas of MySQL won't allow you to have
"when" as a column name. So, I have had to rename a column in the
checkins table. You must feed the below to mysql or you won't
work at all.
alter table checkins change column when ci_when datetime not null;
7/9/99 Ported completely to perl! (Due to heroic efforts by Dieter
Weber <dieter@Compatible.COM>). Among the things you need to do to
get this to work are:
- Realize that this installation will clear the "hook", and will
prevent you from seeing any old hooks that were created by the old
TCL code.
- Create a treeconfig.pl, based on the tree data in your old
(now obsolete) configdata.
- Make sure your perl contains the MailDate and libnet CPAN modules
(see INSTALL for how to get these)
- Add a new column to the descs table (Dieter added this to speedup
database rebuilds). Feed this to mysql:
alter table descs add column hash bigint not null;
- Go visit the new editparams.cgi page, and adjust everything.
- Change your mail alias to point to the new handleCheckinMail.pl
script (instead of handleCheckinMail.tcl)
- If you use the "administrator mail" feature, change its mail alias to
point to the new handleAdminMail.pl (instead of handleAdminMail.tcl).
4/30/99 Now uses autoconf, and comes with a configure script. A few
new variables can be defined in your configdata file, and probably
need to be. See the file configdata.in for a list of the new parameters.

View File

@@ -1,261 +0,0 @@
# -*- mode: indented-text -*-
#
# Author: Artem Belevich <abelevic@ctron.com>
#
# (Changes have been made to Artem's original doc, as things evolve.)
#
#
**********************************************************************
As it's said in README "This is not very well packaged code. It's
not packaged at all. Don't come here expecting something you plop in
a directory, twiddle a few things, and you're off and using it. Much
work has to be done to get there."
This file is intended to make some things *easier* but not easy. You
are still required to make some changes on your own. There is no
guaranteed solution yet and it's unlikely that there will be one in
the nearest future.
**********************************************************************
0. OVERVIEW
Some time ago I've seen Linux Source Navigator (LSN) at
http://sunsite.unc.edu/linux-source. I was impressed.
It was and is a wanderful tool to explore Linux kernel source code.
Then Mozilla.org came up with a more elaborate tool that includes
source browser with crossreferencing (LXR http://lxr.linux.no) and CVS
tree control (Bonsai - http://www.mozilla.org/bonsai.html).
While LXR formatting is not as pretty as LSN's one, it has a huge
advantage - it lets you see where the identifier is defined and used.
And Bonsai brings nice and easy (though sometimes incompatible with
browsers other but Netscape's own) interface to the CVS history. This
includes getting list of changes, giffs between revisions, etc.
All in all LXR+Bonsai+other stuff beneath is a useful tool capable
of handling huge projects.
It's not that easy to make it work with other source tree but
Mozilla's own but it's possible. And there are a lot of things to
improve. Now I'm going to concentrate on the first goal - to make it
work.
1. GETTING IT UP
First of all you have to get all the tools in mozilla's
mozilla/webtools CVS repository. This includes lxr,bonsai,registry
and tinderbox. You're likely will not need neither tinderbox nor
registry but get them just in case.
To get the sources you have to follow instructions on
http://www.mozilla.org/bonsai.html.
OK, now you've got the sources but don't rush to try it right
away. It's likely that you will not be able to even start most of
the scripts. There are more things you will have to get and install.
The short list of the things you will need:
1) MySQL database server.
2) Perl 5.004+ with Mysql module (included with MySQL).
3) Date::Parse module for Perl
4) Some kind of HTTP server so you could use CGI scripts
You could try running the ./configure script to see what tools it
complains about right now. Mind you, it won't check for the MySQL
database.
1.1 Getting and setting up MySQL database
Visit MySQL homepage at http://www.tcx.se and grab the latest
stable binary release of the server. Sure, you can get sources and
compile them yourself, but binaries are the easiest and the fastest
way to get it up and running. Follow instructions found in
manual. There is a section about installing binary-only
distributions.
You should create database bonsai. It may be a good idea to make it
writable by all users on your machine and change access level
later. This would save you a lot of time trying to guess whether it's
permissions or a mistake in the script that make things fail.
1.2 Perl + Mysql
You will need Perl 5.004 with DB and Mysql extensions.
DB is required to use LXR browser and crossreferencer for storing
its database. Mysql is used by Bonsai.
If you have Perl already installed, try to run genxref program from
LXR suite. If it complains that it misses DB terribly then you're
probably will have to get and install DB 1.86 distribution from one of the
CPAN (www.cpan.org) mirrors in src/misc directory. I personally got it
from http://www.cpan.org/src/misc/db.1.86.tar.gz. Having DB compiled
and installed you will also have to rebuild and reinstall Perl
itself so It would recognize and compile DB module in. This can be
tricky if you have DB installed in some strange place as I did.
I've got an error during linking phase - there was a function missing
in hash/ndbm.c file, so I just commented it out. It may potentially
cause troubles, but I think it does not matter in our case as this
was intended only for DBM compatibility - the feature we don't really
use.
Now you hopefully have Perl + DB compiled installed and working.
Time to set up Mysql module. This one is easy. Just follow
instructions in MySQL manual. You have to read manuals sometimes..
I think I'm getting older.. 8-)
Next step is to get TimeDate module from one of the CPAN mirrors.
Go to CPAN search page
(http://theory.uwinnipeg.ca/search/cpan-search.html) and search for
the "TimeDate" module. Then get it and install.
You also need to get the libnet and MailTools CPAN modules. They can
both be found on CPAN at CPAN/modules/by-authors/id/GBARR.
1.3 HTTP server
You have a freedom of choice here - Apache, Netscape or any other
server on UNIX would do. The only thing - to make configuration easier
you'd better run HTTP daemon on the same machine that you run MySQL
server on. Make sure that you can access 'bonsai' database with user
id you're running the daemon with.
2. TWEAKING THE TOOLS
Now you should have all necessary tools to be able to run LXR and
Bonsai scripts and see why the wouldn't work for you right now.
2.1 LXR
The first thing to set up is LXR tool. All it needs is the source
tree (not CVS tree). It's relatively easy and works almost right of
the box. Follow instructions in LXR README file.
Having set LXR you will see that regardless what your source tree
contains you will see that everything refers to it as Mozilla. Mozilla
is a great thing and this tool was primarily tailored to mozilla tree
but you'd like to control your own tree. First step is to edit your
Here is the short list of changes I had to make
file: ident
1) change "&root=/cvsroot" to tour CVSROOT path
2) change "file=/mozilla/" to the directory under CVSROOT where
your sources are. In my case it is just "/"
file: index.html
Nothing vital here but probably worth changing to reflect your own
environment
file: lxr.conf
Changes to this file are described in LXR README file and are
quite simple.
file: source
You may find it useful to uncomment "$img = "/icons/..." lines if
you yse Explorer as it does not have internal-gopher-* images
built in. Actually Bonsai contains a lot of netscapism that will
make your IE4 unhappy anyway. You'd better stick with Netscape if
you are going to use LXR/Bonsai
file: template-*
Here you will probably want to watch closely at the places whare
you see the word 'mozilla' near '.cgi'. There are a lot of
mozilla-specific paths hardcoded
cgange/get rid of banner that loads straight from mozilla.org that
may be very dangerous if you're working for micro$oft and your
boss comes by.. 8-)
2.2 Bonsai
This stuff sometimes gets very specific about your CVS repository
setup. You have to make a lot of changes until more portable
configuration mechanism is introduced.
These steps should create a basic Bonsai install:
./configure
make install
You might want to give the option --prefix=<path> to configure to
install Bonsai in another place than /usr/local, e.g. /var/www. It
will make a new directory named "bonsai" in the prefix directory you specify.
Edit data/treeconfig.pl file as described in README file. Create
appropriate data/XXX directory for each tree XXX you've configured
in 'treeconfig.pl'.
Go to the data directory and run
trapdoor <admin password here> >data/passwd
it will set up admin's password.
That's basically it. With some luck and persistence you will have 90%
working system at this point. A lot of these things are just asking to be
fixed in near feature. And I hope they will be.
3. Setting up database
This is quite simple but time consuming operation.
First create database structure using maketable.sh script. You might
want to edit it to use the user and password you want for the bonsai
database.
Then go to Bonsai administration page and press "Rebuild CVS history"
button. Then you may go to the theater and watch a movie or two. It
will talke a lot of time. It takes several seconds to process one
file. The more revisions in file the more time it will take. My SUN
workstation with 2x200Mhz UltraSPARC processors run about an hour to
process about 4K files with 20K+ revisions. Your mileage may vary.
Copy "dolog.pl" to your CVSROOT directory, and check it in. Add
"dolog.pl" to CVSROOT/checkoutlist, and check it in. Then, add a line
to your CVSROOT/loginfo file that says something like:
ALL $CVSROOT/CVSROOT/dolog.pl -r /cvsroot bonsai-checkin-daemon@my.bonsai.machine
Replace "/cvsroot" with the name of the CVS root directory, and
"my.bonsai.machine" with the name of the machine Bonsai runs on. Now,
on my.bonsai.machine, add a mail alias so that mail sent to
"bonsai-checkin-daemon" will get piped to handleCheckinMail.tcl. The
first argument to handleCheckinMail.tcl is the directory that bonsai
is installed in. E.g. in /etc/aliases, add
bonsai-checkin-daemon: "|/usr/local/bonsai/handleCheckinMail.tcl /usr/local/bonsai"
or whatever is appropriate for your mail transport agent.
4. Things to do
a) There should be better way to track CVS tree changes. Now it's done
by making CVS send e-mail about each checkin. (See the comments at
the top of dolog.pl for some clues.) One alternative theory would be
to take advantage of the CVS history command, which provides
all necessary information to get list of files recently commited, so
there is no need to send/process email. Just set up a cron job that
will periodically look for CVS tree changes and update database. On
the other hand, it's not at all clear how efficient the cvs history
command is for large, active repositories.
b) Better configuration. One should not hardcode CVS tree <-> Source
tree translations. Another thing to configure - banners.
c) LXR could be improved in a number of ways. Using MySQL database
instead of DB would probably be a good idea. It's unclear what impact
it will have on performance though. Incremental database updates would
be nice. It might be also nice to borrow syntax highliting from LSN.
5. Conclusion.
OK. This may or may not work for you. But I hope you had a great
time trying. Or just reading.
Any suggestions/additions are welcome.

View File

@@ -1,147 +0,0 @@
#!gmake
#
# 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 the Bonsai CVS tool.
#
# 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.
# This Makefile helps you install Bonsai. Define PERL to
# the full pathnames of where you have these utilities. Define PREFIX
# to where you will install the running Bonsai. Then "make install" should
# copy things for you.
CC = @CC@
CFLAGS = @CFLAGS@
# -lcrypt
LDFLAGS = @LIBS@
# /usr/bin/perl
PERL = @PERL@
# /var/www/bonsai
PREFIX = @prefix@/bonsai
CVS=@CVS@
RLOG=@RLOG@
CO=@CO@
RCSDIFF=@RCSDIFF@
FILES = CGI.pl \
SourceChecker.cgi \
SourceChecker.pm \
addcheckin.pl \
admin.cgi \
adminfuncs.pl \
adminmail.pl \
branchspam.cgi \
branchspammer.cgi \
closemessage \
contacthelp.html \
countcheckins.cgi \
createlegaldirs.pl \
cvsblame.cgi \
cvsblame.pl \
cvsguess.cgi \
cvsindex.pl \
cvslog.cgi \
cvsmenu.pl \
cvsquery.cgi \
cvsquery.pl \
cvsqueryform.cgi \
cvsregexp.html \
cvsview2.cgi \
defparams.pl \
doadmin.cgi \
doeditcheckin.cgi \
doeditmessage.cgi \
doeditparams.cgi \
doeditwhiteboard.cgi \
dolog.pl \
dotweak.cgi \
editcheckin.cgi \
editmessage.cgi \
editparams.cgi \
editwhiteboard.cgi \
globals.pl \
handleAdminMail.pl \
handleCheckinMail.pl \
header.pl \
index.html \
indextest.pl \
lloydcgi.pl \
maketables.sh \
moduleanalyse.cgi \
modules.pl \
multidiff.cgi \
openmessage \
processqueue.pl \
rebuildcvshistory.cgi \
repophook.cgi \
reposfiles.pl \
rview.cgi \
showcheckins.cgi \
switchtree.cgi \
testlock.pl \
toplevel.cgi \
utils.pl \
viewold.cgi
all: trapdoor treeconfig.pl params
trapdoor: trapdoor.o
$(CC) -o trapdoor trapdoor.o $(LDFLAGS)
treeconfig.pl: treeconfig.pl.in
cp treeconfig.pl.in treeconfig.pl
params: params.in
sed -e s#_CVS_#$(CVS)#g \
-e s#_RLOG_#$(RLOG)#g \
-e s#_CO_#$(CO)#g \
-e s#_RCSDIFF_#$(RCSDIFF)#g \
$< >$@
install: all
-mkdir -p $(PREFIX)
@for I in $(FILES); do \
echo Installing $$I && \
sed -e s#/usr/bonsaitools/bin/perl#$(PERL)#g \
-e s#/tools/ns/bin/perl5#$(PERL)#g \
$$I > $(PREFIX)/$$I && \
chmod 755 $(PREFIX)/$$I; done
-mkdir -p $(PREFIX)/data && chmod 755 $(PREFIX)/data
cp trapdoor $(PREFIX)/data
cp bonsai.gif $(PREFIX)
chmod 755 $(PREFIX)/bonsai.gif
@if test ! -r $(PREFIX)/data/treeconfig.pl ; then \
echo "Installing treeconfig.pl" && \
cp treeconfig.pl $(PREFIX)/data ; \
else \
echo ; \
echo "Not replacing existing treeconfig.pl" ; \
echo "Check treeconfig.pl in build directory for new features" ; \
fi
@if test ! -r $(PREFIX)/data/params ; then \
echo "Installing params" && \
cp params $(PREFIX)/data ; \
else \
echo ; \
echo "Not replacing existing params" ; \
fi
@echo
@echo "If you are installing a new Bonsai (not upgrading), you should"
@echo "run maketables.sh to create database tables, then customize the"
@echo "Bonsai configuration in $(PREFIX)/data/treeconfig.pl"
clean:
rm -f trapdoor trapdoor.o treeconfig.pl params

View File

@@ -1,586 +0,0 @@
This is Bonsai. See <http://www.mozilla.org/bonsai.html>.
==========
DISCLAIMER
==========
This is not very well packaged code. It's not packaged at all. Don't
come here expecting something you plop in a directory, twiddle a few
things, and you're off and using it. Much work has to be done to get
there. We'd like to get there, but it wasn't clear when that would be,
and so we decided to let people see it first.
Don't believe for a minute that you can use this stuff without first
understanding most of the code.
Check out the INSTALL file for some guidance on getting started.
Many, many thanks to Artem Belevich <abelevic@ctron.com> for
trailblazing his way through this and writing down all the problems he
had.
============================
Configuration files you need
============================
Lots of configuration files need to be placed in the data subdir.
This is also where bonsai keeps its running state. These two things
ought to be split into different directories, but that hasn't happened
yet.
Some of these files are:
treeconfig.pl: some Perl source that defines @::TreeList, a list of trees you
want to track, and %::TreeInfo, information about each of those
trees. A sample treeconfig.pl:
@::TreeList = ('default', 'other');
%::TreeInfo = (
default => {
branch => '',
description => 'My CVS repository',
module => 'All',
repository => '/d2/cvsroot',
shortdesc => 'Mine',
},
other => {
branch => '',
description => 'Other CVS repository',
module => 'All',
repository => '/d2/otherroot',
shortdesc => 'Other',
},
);
1;
params: This file contains many operating parameters. This can be
edited using the editparams.cgi webpage; you should probably
not edit it directory.
The ./configure script will make a guess on the paramaters
that control paths for scripts to execute, and create an
initial params file for you. It looks for things on your
PATH, so if it complains, add the directories in which these
commands reside to your PATH, or override the path check, for
example:
setenv PERL /usr/local/lib/perl5
./configure
or for the Bourne shell:
PERL=/usr/local/lib/perl5 ./configure
hidelist: A list of regexps that define filenames that we don't want
to let people see via the bonsai pages. A common use is to
just have one line that says "CVSROOT".
=================================
What's What in the Bonsai sources:
=================================
This is a rough first pass at cataloging and documenting the Bonsai
sources. Many hands have been in this code over the years, and it has
accreted wildly. There is probably quite a lot of dead code in here.
THIS LIST IS PRETTY OLD AND OUT OF DATE. In particular, we don't have
any more TCL code; it's all either gone or ported to Perl.
CGI.tcl ???
Makefile: builds the "trapdoor" program. Also has a
"make install" that lets you specify where you store
perl and mysqltcl on your system.
SourceChecker.cgi scc wrote to help sanitize code. DELETE
Called by: nobody
SourceChecker.pm ???
addcheckin.tcl TCL. Add a checkin to a Bonsai hook. Determines
if the tree was open or closed at the time, shunts
checkin to proper tree.
admin.cgi TCL. Select from various administrative tasks
(which require a password.)
Called by: toplevel.cgi
Calls:
doadmin.cgi password=<text> treeid=<text>
command=[open|close]
closetimestamp=<time-text>
lastgood=<time-text>
doclear=<checkbox>
doadmin.cgi password=<text> treeid=<text>
command=tweaktimes
lastgood=<time-text>
lastclose=<time-text>
doadmin.cgi password=<text> treeid=<text>
command=editmotd
origmotd=<text>
motd=<text>
editmessage.cgi treeid=<text>
msgname=[openmessage|closemessage|
treeopened|treeopenedsamehook|
treeclosed]
#### note: no password?
repophook.cgi password=<text> treeid=<text>
command=repophook
startfrom=<time-text>
rebuildtaginfo.cgi password=<text>
treeid=<text>
command=rebuildtaginfo
rebuildcvshistory.cgi password=<text>
treeid=<text>
command=rebuildcvs
startfrom=<time-text>
firstfile=<time-text>
subdir=<time-text>
doadmin.cgi password=<text> treeid=<text>
command=changepassword
password=<text>
newpassword=<text>
newpassword2=<text>
doglobal=<radio>
adminfuncs.tcl TCL. Collection of functions to administrate a Bonsai
hook.
adminmail.tcl TCL. Set of routines for opening and closing the
Bonsai hook based on receipt of e-mail.
bonsai.gif a bonsai tree.
branchspam.cgi failed attempt to web-afy branch spam too DELETE
Called by: nobody
Calls: branchspammer.cgi
branchspammer.cgi more garbage
Called by: branchspam.cgi
Calls: nobody
changebar.tcl ???
closemessage HTML, text that gets sent to all people on the hook
when the tree is closed.
configure/ ???
contacthelp.html ???
countcheckins.cgi TCL. Draws a graph of checkins for the various
Bonsai 'hooks'.
Called by: toplevel.cgi
Calls: nobody
createlegaldirs.tcl ???
cvsblame.cgi Runs through a CVS file and tells you who changed what.
Calls:
rview.cgi dir= cvsroot= rev=
cvsblame.cgi file= rev= root= mark=
cvsblame.cgi set_line= (cookie magic?)
cvsblame.cgi root= file= rev= use_html=
Called by:
cvsguess.cgi
moduleanalyse.cgi
Used to be called by:
cvslog.cgi
cvsblame.pl ???
cvsguess.cgi Given a file name, try to figure out what directory
it's in. then link to cvsblame.cgi. parameters are
the same.
Seems to take an exact file name (sans directory),
then do a redirect to cvsblame.cgi. If there are
more than one file of that name, it presents a list.
This is (I think) redundant with LXR's file name
search.
Calls:
cvsblame.cgi file= rev= mark= #
Called by: nobody
cvsindex.pl ???
cvslog.cgi Web interface to "cvs log".
Calls:
rview.cgi dir= cvsroot= rev=
cvslog.cgi file= root= rev=
sort=[revision|date|author]
author=
cvsview2.cgi
command=DIFF_FRAMESET
diff_mode=context
whitespace_mode=show
root= subdir= file=
rev1= rev2=
cvsview2.cgi
command=DIRECTORY
subdir= files= root= branch=
Used to call:
cvsblame.cgi file= rev= root=
cvsmenu.pl ???
cvsquery.cgi Displays the results of a query entered in cvsqueryform
Called by:
cvsqueryform.cgi
Calls:
cvsqueryform.cgi
cvsview2 command=DIRECTORY
subdir= files= branch= root=
cvsview2.cgi command=DIFF_FRAMESET
diff_mode=context
whitespace_mode=show
subdir= file= rev1= rev2= root=
multidiff.cgi name=allchanges cvsroot=
cvsquery.cgi sortby=
../registry/who.cgi email=
http://scopus.mcom.com/bugsplat/show_bug.cgi
cvsquery.pl ???
cvsqueryform.cgi Main screen to let you query the CVS database.
Called by:
cvsblame.cgi
cvslog.cgi
cvsquery.cgi
toplevel.cgi
Calls:
cvsregexp.html
cvsquery.cgi
module=[all|allrepositories|?]
branch=
branchtype=[match|regexp]
directory=<text>
file=<text>
who=<text>
whotype=[match|regexp]
sortby=[Date|Who|File|Change Size]
date=[hours|day|week|month|all|
explicit]
hours=
mindate=
maxdate=
cvsroot=
cvsregexp.html ???
cvsview2.cgi Lets you view CVS diffs.
Called by:
cvsblame.cgi
cvslog.cgi
cvsquery.cgi
show2.cgi
showcheckins.cgi
Calls:
rview.cgi dir= cvsroot= rev=
cvsview2.cgi subdir= command=DIFF
root= file= rev1= rev2=
cvsview2.cgi subdir= command=DIFF_LINKS
root= file= rev1= rev2=
cvsview2.cgi subdir= command=DIFF
root= file= rev1= rev2= #
cvsview2.cgi subdir= command=DIFF_FRAMESET
root= file= rev1= rev2=
cvsview2.cgi subdir= command=DIRECTORY
root= files= branch= skip=
cvsview2.cgi subdir= command=LOG
root= file= rev=
doadmin.cgi TCL. Executes admin things asked for in admin.cgi
Called by:
admin.cgi
Calls:
mailto:clienteng
doeditcheckin.cgi TCL. Edits a checkin on the hook.
Called by:
editcheckin.cgi
Calls:
nobody
doeditmessage.cgi TCL. Edits one of the email messages that bonsai sends
people.
Called by:
editmessage.cgi
Calls:
nobody
doeditprofile.cgi TCL. Edit peoples contact info. Left-over code from
before we started getting this info from LDAP.
Called by:
editprofile.cgi
Calls:
nobody
doeditwhiteboard.cgi TCL. Edits the free-for-all whiteboard.
Called by:
editwhiteboard.cgi
Calls:
nobody
dolog.pl Perl. Magic file that causes CVS to send mail to
Bonsai whenever someone makes a change. Please read
the comments towards the beginning for more clues.
dotweak.cgi TCL. Tweaks a bunch of checkins in ahook at once.
Called by:
show2.cgi
showcheckins.cgi
Calls:
nobody
editcheckin.cgi TCL. Edits a checkin on the hook.
Called by:
show2.cgi
showcheckins.cgi
Calls:
doeditcheckin.cgi
editmessage.cgi TCL. Edits one of the email messages that bonsai sends
people.
Called by:
admin.cgi
Calls:
doeditmessage.cgi
editprofile.cgi TCL. Edit peoples contact info. Left-over code from
before we started getting this info from LDAP.
Called by:
localprofile.cgi
Calls:
doeditprofile.cgi
editwhiteboard.cgi TCL. Edits the free-for-all whiteboard.
Called by:
toplevel.cgi
Calls:
doeditwhiteboard.cgi
globals.tcl ???
handleAdminMail.tcl TCL. Mail is piped to this script and parsed.
Calls:
adminfuncs.tcl
handleCheckinMail.tcl TCL. Mail is piped to this script and parsed. It
then adds a checkin to a Bonsai hook.
header.pl ???
index.html ???
indextest.pl ???
lloydcgi.pl parses CGI args from $QUERY_STRING and leaves them
in $form{$key}; and puts cookies in %cookie_jar.
Calls: nobody
Called by: everybody
localprofile.cgi TCL. Display peoples contact info. Left-over code
from before we started getting this info from LDAP.
Called by:
nobody
Calls:
editprofile.cgi
profile.cgi
maketables.sh ???
Unused?
moduleanalyse.cgi Shows the directories in a module.
Called by:
nobody
Calls:
moduleanalyse.cgi module=[all|?] cvsroot=
rview.cgi dir= cvsroot=
cvsblame.cgi file= root=
modules.pl ???
Called by:
branchspam.cgi
cvsqueryform.cgi
moduleanalyse.cgi
multidiff.cgi Implements the "Show me ALL the Diffs" button
Called by:
cvsquery.cgi
show2.cgi
showcheckins.cgi
Calls:
nobody
myglobrecur.tcl ???
openmessage ???
perlifyconfig.tcl ???
processqueue.pl ???
profile.cgi TCL. Stupid interface to LDAP to show all the info
about a person.
Called by:
localprofile.cgi
show2.cgi
Calls:
profile.cgi person=
rebuildcvshistory.cgi TCL. Admin script to go rebuild the bonsai database
from CVS.
Called by:
admin.cgi
Calls:
nobody
rebuilddatabase.tcl ???
rebuildtaginfo.cgi TCL. Half-written piece of junk to try and remember
things about tags. Should probably nuke it.
Called by:
admin.cgi
repophook.cgi TCL. Rebuilds a bonsai hook from the bonsai database.
Called by:
admin.cgi
Calls:
nobody
reposfiles.pl ???
rview.cgi Lets you browse a directory in a CVS repository.
Called by:
cvsblame.cgi
cvslog.cgi
cvsview2.cgi
moduleanalyse.cgi
Calls:
rview.cgi dir= cvsroot= rev=
rview.cgi dir= cvsroot= rev= ?=chdir
rview.cgi dir= cvsroot= rev= ?=Set Branch
&make_cgi_args ???
../registry/file.cgi cvsroot= file= dir=
show2.cgi TCL. This seems to be a variant on showcheckins.cgi?
Called by:
nobody
Calls:
dotweak.cgi
showcheckins.cgi [various funky args]
editcheckin.cgi id= [various funky args]w
profile.cgi person= [various funky args]
cvsview2.cgi subdir= files= command=DIRECTORY
branch=
http://w3/cgi/cvsview2.cgi subdir= files=
command=DIRECTORY
multidiff.cgi allchanges=
showcheckins.cgi TCL. Shows some set of checkins in a bonsai hook.
Called by:
admin.cgi
show2.cgi
toplevel.cgi
Calls:
dotweak.cgi
showcheckins.cgi [various funky args]
editcheckin.cgi id= [various funky args]w
http://phonebook/ds/dosearch/phonebook/...
cvsview2.cgi root= subdir= files=
command=DIRECTORY branch=
http://w3/cgi/cvsview2.cgi subdir= files=
command=DIRECTORY
multidiff.cgi allchanges=
status/ ???
switchtree.cgi TCL. Lets you choose a different bonsai branch.
Called by:
toplevel.cgi
Calls:
nobody
testlock.pl ???
toplevel.cgi TCL. Main interface to the bonsai hook.
Called by:
CGI.tcl
contacthelp.html
index.html
sheriff2.html
switchtree.cgi
toplevel.cgi
viewold.cgi
Calls:
editwhiteboard.cgi [...]
http://phonebook/ds/dosearch/phonebook/...
showcheckins.cgi
http://warp/tinderbox/showbuilds.cgi
switchtree.cgi [...]
news:mcom.dev.client.build.busted
http://phonebook/
viewold.cgi [...]
countcheckins.cgi [...]
admin.cgi [...]
index.html
http://warp/client/dogbert/tree.html
contacthelp.html
http://warp/client/dogbert/buildlore/index.html
trapdoor.c ???
utils.pl ???
viewold.cgi TCL. Lets you choose an old bonsai hook to view.
Called by:
toplevel.cgi
Calls:
toplevel.cgi treeid=
=================
Glossary of terms
=================
Here are some funky terms you may find here and there:
Hook The 'hook' is actually the oldest part of the Bonsai
code. The idea is, every so often (at Netscape, it was
every day), some build engineers will close the tree
and make sure that everything still builds properly.
If it doesn't, then the build engineers want to have a
list of people they can go beat up, this being the list
of people who changed the tree since the last time they
successfully built the tree. Those people are "on the
hook"; they are held responsible for any probs that
arise.
So, it works out to: the list of people who have
checked in since the tree was last closed.
==========
Maintainer
==========
The current primary maintainer of Bonsai is Terry Weissman <terry@mozilla.org>.

View File

@@ -1,242 +0,0 @@
#!/usr/bonsaitools/bin/perl -w
# -*- Mode: perl; indent-tabs-mode: nil -*-
#
# 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 the Bonsai CVS tool.
#
# 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.
# SourceChecker.cgi -- tools for creating or modifying the dictionary
# used by cvsblame.cgi.
#
# Created: Scott Collins <scc@netscape.com>, 4 Feb 1998.
#
# Arguments (passes via GET or POST):
# ...
#
use diagnostics;
use strict;
use CGI;
use SourceChecker;
#
# Global
#
my $query = new CGI;
#
# Subroutines
#
sub print_page_header()
{
print <<'END_OF_HEADER';
<H1>SourceChecker Dictionary Maintainance</H1>
END_OF_HEADER
}
sub print_page_trailer()
{
print <<'END_OF_TRAILER';
<HR>
<FONT SIZE=-1>
Last updated 5 Feb 1998.
<A HREF="SourceChecker.cgi">Dictionary maintainance and help</A>.</FONT>
Mail feedback to <A HREF="mailto:scc?subject=[SourceChecker.cgi]">&lt;scc@netscape.com&gt;</A>.
END_OF_TRAILER
}
my $error_header = '<HR><H2>I couldn\'t process your request...</H2>';
sub print_error($)
{
my $message = shift;
print "$error_header<P><EM>Error</EM>: $message</P>";
$error_header = '';
}
sub print_query_building_form()
{
print $query->start_multipart_form;
print '<HR><H2>Build a new request</H2>';
print '<P>...to modify or create a remote dictionary with words from one or more local files.</P>';
print '<H3>Files on the server</H3>';
print '<P>...i.e., the dictionary to be created or modified.</P>';
print $query->textfield( -name=>'dictionary',
-default=>'',
-override=>1,
-size=>30 );
print '-- the path to dictionary.';
print '<H3>Files on your local machine</H3>';
print '<P>...that will be uploaded to the server, so their contents can be added to the dictionary.</P>';
print '<BR>';
print $query->filefield( -name=>'ignore_english', -size=>30 );
print '-- contains english (i.e., transformable) words to ignore.';
print '<BR>';
print $query->filefield( -name=>'ignore_strings', -size=>30 );
print '-- contains identifiers (i.e., non-transformable) words to ignore.';
print '<BR>';
print $query->filefield( -name=>'flag_strings', -size=>30 );
print '-- contains identifiers words to be flagged.';
print '<BR>';
print $query->filefield( -name=>'ignore_names', -size=>30 );
print '-- contains user names to be ignored.';
print '<BR>';
print $query->submit;
print $query->endform;
}
sub do_add_good_words($)
{
my $file = shift;
while ( <$file> )
{
next if /\#/;
add_good_words($_);
}
}
sub do_add_bad_words($)
{
my $file = shift;
while ( <$file> )
{
next if /\#/;
add_bad_words($_);
}
}
sub do_add_good_english($)
{
my $file = shift;
while ( <$file> )
{
next if /\#/;
add_good_english($_);
}
}
sub do_add_names($)
{
my $file = shift;
while ( <$file> )
{
next if /\#/;
add_names($_);
}
}
sub handle_query()
{
my $dictionary_path = $query->param('dictionary');
if ( ! $dictionary_path )
{
print_error('You didn\'t supply a path to the dictionary file.');
return;
}
dbmopen %SourceChecker::token_dictionary, "$dictionary_path", 0666
|| print_error("The dictionary you named could not be opened.");
my $added_some_words = 0;
my ($file_of_good_english, $file_of_good_words,
$file_of_bad_words, $file_of_names);
if ( $file_of_good_english = $query->param('ignore_english') )
{
do_add_good_english($file_of_good_english);
$added_some_words = 1;
}
if ( $file_of_good_words = $query->param('ignore_strings') )
{
do_add_good_words($file_of_good_words);
$added_some_words = 1;
}
if ( $file_of_bad_words = $query->param('flag_strings') )
{
do_add_bad_words($file_of_bad_words);
$added_some_words = 1;
}
if ( $file_of_names = $query->param('ignore_names') )
{
do_add_names($file_of_names);
$added_some_words = 1;
}
if ( ! $added_some_words )
{
print_error("You did not supply any words to add to the dictionary.");
}
dbmclose %SourceChecker::token_dictionary;
}
#
# The main script
#
print $query->header;
print $query->start_html(-title=>'SourceChecker Dictionary Maintainance',
-author=>'scc@netscape.com');
print_page_header();
if ( $query->param )
{
handle_query();
}
print_query_building_form();
print_page_trailer();
print $query->end_html;
__DATA__

View File

@@ -1,192 +0,0 @@
# -*- Mode: perl; tab-width: 4; indent-tabs-mode: nil -*-
#
# 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 the Bonsai CVS tool.
#
# 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.
package SourceChecker;
require Exporter;
@ISA = qw(Exporter);
@EXPORT = qw(%token_dictionary add_good_english add_good_words add_bad_words add_names tokenize_line markup_line);
@EXPORT_OK = qw($GOOD_TOKEN $UNKNOWN_TOKEN $BAD_TOKEN $NAME_TOKEN add_token canonical_token @markup_prefix @markup_suffix);
$GOOD_TOKEN = \-1;
$UNKNOWN_TOKEN = \0;
$NAME_TOKEN = \1;
$BAD_TOKEN = \2;
@markup_prefix = ('<FONT COLOR="green">', '<FONT COLOR="red">', '<FONT COLOR="blue">');
@markup_suffix = ('</FONT>', '</FONT>', '</FONT>');
sub canonical_token($)
{
my $token = shift;
if ( defined $token )
{
$token =~ s/[\'Õ\&]+//g;
$token = length($token)>2 ? lc $token : undef;
}
$token;
}
sub _push_tokens($$)
{
# Note: inherits |@exploded_phrases| and |@exploded_tokens| from caller(s)
push @exploded_phrases, shift;
push @exploded_tokens, canonical_token(shift);
}
sub _explode_line($)
{
# Note: inherits (and returns results into) |@exploded_phrases| and |@exploded_tokens| from caller(s)
my $line = shift;
my $between_tokens = 0;
foreach $phrase ( split /([A-Za-z\'Õ\&]+)/, $line )
{
if ( $between_tokens = !$between_tokens )
{
_push_tokens($phrase, undef);
next;
}
for ( $_ = $phrase; $_; )
{
m/^[A-Z\'Õ\&]*[a-z\'Õ\&]*/;
$token = $&;
$_ = $';
if ( ($token =~ m/[A-Z][a-z\'Õ]+/) && $` )
{
$token = $&;
_push_tokens($`, $`);
}
_push_tokens($token, $token);
}
}
$#exploded_phrases;
}
sub tokenize_line($)
{
my $line = shift;
local @exploded_tokens;
_explode_line($line);
my $i = -1;
foreach $token ( @exploded_tokens )
{
$exploded_tokens[++$i] = $token if defined $token;
}
$#exploded_tokens = $i;
@exploded_tokens;
}
sub markup_line($)
{
my $line = shift;
local @exploded_phrases;
local @exploded_tokens;
_explode_line($line);
$i = 0;
foreach $phrase ( @exploded_phrases )
{
$phrase =~ s/&/&amp;/g;
$phrase =~ s/</&lt;/g;
$phrase =~ s/>/&gt;/g;
my $token = $exploded_tokens[$i];
if ( defined $token && ($token_kind = $token_dictionary{$token}) >= 0 )
{
$phrase = $markup_prefix[$token_kind] . $phrase . $markup_suffix[$token_kind];
}
++$i;
}
join '', @exploded_phrases;
}
sub add_token($$)
{
(my $token, my $token_kind) = @_;
if ( !defined $token_dictionary{$token} || ($token_kind > $token_dictionary{$token}) )
{
$token_dictionary{$token} = $token_kind;
}
}
sub add_good_english($)
{
my $line = shift;
foreach $token ( tokenize_line($line) )
{
add_token($token, $$GOOD_TOKEN);
my $initial_char = substr($token, 0, 1);
(my $remainder = substr($token, 1)) =~ s/[aeiouy]+//g;
$abbreviated_length = length($remainder) + 1;
if ( $abbreviated_length != length($token) && $abbreviated_length > 2 )
{
add_token("$initial_char$remainder", $$GOOD_TOKEN);
}
}
}
sub _add_tokens($$)
{
(my $line, my $token_kind) = @_;
foreach $token ( tokenize_line($line) )
{
add_token($token, $token_kind);
}
}
sub add_good_words($)
{
_add_tokens(shift, $$GOOD_TOKEN);
}
sub add_bad_words($)
{
_add_tokens(shift, $$BAD_TOKEN);
}
sub add_names($)
{
_add_tokens(shift, $$NAME_TOKEN);
}
1;

View File

@@ -1,34 +0,0 @@
dnl autoconf tests for bonsai
dnl Pontus Lidman 99-05-04
dnl
dnl check if Perl::DB is installed
dnl
AC_DEFUN(AC_PERL_DB,
[
AC_MSG_CHECKING(for perl DBD::mysql module)
$PERL -w -c -e 'use DBD::mysql' 2>/dev/null; has_dbd=$?
if test "x$has_dbd" = "x0" ; then
AC_MSG_RESULT(yes)
ifelse([$1], , :, [$1])
else
AC_MSG_RESULT(no)
echo "*** the perl MySQL module (DBD::mysql) could not be found"
ifelse([$2], , :, [$2])
fi
])
dnl
dnl check if Date::Parse is installed
dnl
AC_DEFUN(AC_PERL_DATEPARSE,
[
AC_MSG_CHECKING(for perl Date::Parse module)
$PERL -w -c -e 'use Date::Parse' 2>/dev/null; has_dateparse=$?
if test "x$has_dateparse" = "x0" ; then
AC_MSG_RESULT(yes)
ifelse([$1], , :, [$1])
else
AC_MSG_RESULT(no)
echo "*** the perl Date::Parse module could not be found"
ifelse([$2], , :, [$2])
fi
])

View File

@@ -1,237 +0,0 @@
#!/usr/bonsaitools/bin/perl -w
# -*- Mode: perl; indent-tabs-mode: nil -*-
#
# 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 the Bonsai CVS tool.
#
# 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.
require 'globals.pl';
use vars qw($BatchID @TreeList @LegalDirs);
if (@::CheckInList) {
die '@::CheckInList is valid ?!?';
}
my $inheader = 1;
my $foundlogline = 0;
my @filelist = ();
my $log = '';
my $appendjunk = '';
my $repository = pickDefaultRepository();
my %group = ();
my $forcetreeid = '';
my ($chtype, $date, $name, $dir, $file);
my ($version, $sticky, $branch, $addlines, $removelines);
my ($key, $junk, $tagtime, $tagname, @data);
my ($mungedname, $filename, @treestocheck);
my (@files, @fullinfo, $i, $okdir, $f, $full, $d, $info, $id);
my ($mail, %substs, %headers, $body);
if (($#ARGV >= 1) && ($ARGV[0] eq '-treeid')) {
$forcetreeid = $ARGV[1];
shift; shift;
}
# Read in from remaining file arguments
DATAFILE:
for ( ; $#ARGV >= 0; shift) {
next DATAFILE
unless (open(FILE, $ARGV[0]));
LINE:
while (<FILE>) {
my $line = $_;
chop($line);
$line = trim($line);
if ($inheader) {
$inheader = 0 if ($line =~ /^$/);
next LINE;
}
unless ($foundlogline) {
if ($line =~ /^.\|/) {
$appendjunk .= "$line\n";
($chtype, $date, $name, $repository, $dir, $file,
$version, $sticky, $branch, $addlines, $removelines) =
split(/\|/, $line);
$key = "$date|$branch|$repository|$dir|$name";
$group{$key} .=
"$file|$version|$addlines|$removelines|$sticky\n";
} elsif ($line =~ /^Tag\|/) {
($junk, $repository, $tagtime, $tagname, @data) =
split(/\|/, $line);
($mungedname = $repository) =~ s!/!_!g;
$filename = "data/taginfo/$mungedname/" .
MungeTagName($tagname);
Lock();
unless (-d "data/taginfo/$mungedname") {
system("mkdir -p data/taginfo/$mungedname");
system("chmod -R 777 data/taginfo/$mungedname");
}
if (open(TAGFILE, ">> $filename")) {
print TAGFILE "$tagtime|" . join('|', @data) . "\n";
close(TAGFILE);
chmod(0666, $filename);
}
Unlock();
} elsif ($line =~ /^LOGCOMMENT/) {
$foundlogline = 1;
}
next LINE;
}
last LINE if ($line eq ":ENDLOGCOMMENT");
$log .= "$line\n";
}
close(FILE);
# unlink($ARGV[0]);
my $plainlog = $log;
$log = MarkUpText(html_quote(trim($log)));
next DATAFILE unless ($plainlog && $appendjunk);
Lock();
LoadTreeConfig();
unless ($forcetreeid) {
($mungedname = $repository) =~ s!/!_!g;
$mungedname =~ s!^_!!;
$filename = "data/checkinlog/$mungedname";
unless (-d "data/checkinlog") {
system("mkdir -p data/checkinlog");
system("chmod -R 777 data/checkinlog");
}
if (open(TID, ">> $filename")) {
print TID "${appendjunk}LOGCOMMENT\n$plainlog:ENDLOGCOMMENT\n";
close(TID);
chmod(0666, $filename);
}
ConnectToDatabase();
AddToDatabase($appendjunk, $plainlog);
@treestocheck = @::TreeList;
}
Unlock();
@treestocheck = ($forcetreeid) if $forcetreeid;
foreach $key (keys(%group)) {
($date, $branch, $repository, $dir, $name) = split(/\|/, $key);
@files = ();
@fullinfo = ();
foreach $i (split(/\n/, $group{$key})) {
($file, $version, $addlines, $removelines) = split(/\|/, $i);
push @files, $file;
push @fullinfo, $i;
}
TREE:
foreach $::TreeID (@treestocheck) {
next TREE if exists($::TreeInfo{$::TreeID}{nobonsai});
next TREE
unless ($branch =~ /^.?$::TreeInfo{$::TreeID}{branch}$/);
next TREE
unless ($repository eq $::TreeInfo{$::TreeID}{repository});
LoadDirList();
$okdir = 0;
FILE:
foreach $f (@files) {
$full = "$dir/$f";
LEGALDIR:
foreach $d (sort( grep(!/\*$/, @::LegalDirs))) {
if ($full =~ m!^$d\b!) {
$okdir = 1;
last LEGALDIR;
}
}
last FILE if $okdir;
}
next TREE unless $okdir;
Lock();
undef $::BatchID;
undef @::CheckInList;
LoadCheckins();
$id = "::checkin_${date}_$$";
push @::CheckInList, $id;
$info = eval("\\\%$id");
%$info = (
person => $name,
date => $date,
dir => $dir,
files => join('!NeXt!', @files),
'log' => $log,
treeopen => $::TreeOpen,
fullinfo => join('!NeXt!', @fullinfo)
);
WriteCheckins();
Log("Added checkin $name $dir " . join(' + ', @files));
Unlock();
if ($::TreeOpen) {
$filename = DataDir() . "/openmessage";
foreach $i (@::CheckInList) {
$filename = "this file doesn't exist"
# XXX verify...
if ((eval("\$$i" . "{person}") eq $name) &&
($i ne $id));
}
} else {
$filename = DataDir() . "/closemessage";
}
if (!$forcetreeid && -f $filename && open(MAIL, "$filename")) {
$mail = join("", <MAIL>);
close(MAIL);
%substs = (
profile => GenerateProfileHTML($name),
nextclose => "We don't remember close " .
"times any more...",
name => EmailFromUsername($name),
dir => $dir,
files => join(',', @files),
'log' => $log,
);
$mail = PerformSubsts($mail, \%substs);
%headers = ParseMailHeaders($mail);
%headers = CleanMailHeaders(%headers);
$body = FindMailBody($mail);
my $mail_relay = Param("mailrelay");
my $mailer = Mail::Mailer->new("smtp",
Server => $mail_relay);
$mailer->open(\%headers)
or warn "Can't send hook mail: $!\n";
print $mailer "$body\n";
$mailer->close();
}
}
}
}

View File

@@ -1,288 +0,0 @@
#!/usr/bonsaitools/bin/perl -w
# -*- Mode: perl; indent-tabs-mode: nil -*-
#
# 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 the Bonsai CVS tool.
#
# 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.
require 'CGI.pl';
use diagnostics;
use strict;
sub StupidFuncToShutUpWarningsByUsingVarsAgain {
my $z;
$z = $::TreeOpen;
$z = $::CloseTimeStamp;
}
Lock();
LoadCheckins();
LoadMOTD();
LoadTreeConfig();
Unlock();
my $BIP = BatchIdPart('?');
my $BIP_nohook = BatchIdPart();
print "Content-type: text/html\n\n";
PutsHeader("Bonsai Administration [`$::TreeID' Tree]",
"Bonsai Administration",
"Administrating `$::TreeID' Tree");
print <<EOF ;
<pre>
</pre>
<center><b>
You realize, of course, that you have to know the magic password to do
anything from here.
</b></center>
<pre>
</pre>
<hr>
EOF
TweakCheckins();
CloseTree();
TweakTimestamps();
ChangeMOTD();
EditEmailMessage();
RebuildHook();
RebuildTags();
RebuildHistory();
ChangePasswd();
PutsTrailer();
exit 0;
sub TweakCheckins {
print qq(
<a href="showcheckins.cgi?tweak=1$BIP_nohook">
Go tweak bunches of checkins at once.</a><br>
<a href="editparams.cgi">
Edit Bonsai operating parameters.</a>
<hr>
);
}
sub CloseTree { # Actually opens tree also
my $timestamp = value_quote(MyFmtClock(time));
print qq(
<FORM method=get action=\"doadmin.cgi\">
<B>Password:</B> <INPUT NAME=password TYPE=password> <BR>
<INPUT TYPE=HIDDEN NAME=treeid VALUE=$::TreeID>
);
if ($::TreeOpen) {
print qq(
<INPUT TYPE=HIDDEN NAME=command VALUE=close>
<B>Closing time stamp is:</B>
<INPUT NAME=closetimestamp VALUE=\"$timestamp\"><BR>
<INPUT TYPE=SUBMIT VALUE=\"Close the tree\">
);
} else {
print qq(
<INPUT TYPE=HIDDEN NAME=command VALUE=open>
<B>The new \"good\" timestamp is:</B>
<INPUT NAME=lastgood VALUE=\"$timestamp\"><BR>
<INPUT TYPE=CHECKBOX NAME=doclear CHECKED>Clear the list of checkins.<BR>
<INPUT TYPE=SUBMIT VALUE=\"Open the tree\">
);
}
print qq(</FORM>\n<hr>\n\n);
}
sub TweakTimestamps {
my $lg_timestamp = value_quote(MyFmtClock($::LastGoodTimeStamp));
my $c_timestamp = value_quote(MyFmtClock($::CloseTimeStamp));
print qq(
<FORM method=get action=\"doadmin.cgi\">
<B>Password:</B> <INPUT NAME=password TYPE=password> <BR>
<INPUT TYPE=HIDDEN NAME=treeid VALUE=$::TreeID>
<INPUT TYPE=HIDDEN NAME=command VALUE=tweaktimes>
<TABLE>
<TR>
<TD><B>Last good timestamp:</B></TD>
<TD><INPUT NAME=lastgood VALUE=\"$lg_timestamp\"></TD>
</TR><TR>
<TD><B>Last close timestamp:</B></TD>
<TD><INPUT NAME=lastclose VALUE=\"$c_timestamp\"></TD>
</TR>
</TABLE>
<INPUT TYPE=SUBMIT VALUE=\"Tweak the timestamps\">
</FORM>
<hr>
);
}
sub ChangeMOTD {
my $motd = value_quote($::MOTD);
print qq(
<FORM method=get action=\"doadmin.cgi\">
<INPUT TYPE=HIDDEN NAME=treeid VALUE=$::TreeID>
<B>Password:</B> <INPUT NAME=password TYPE=password> <BR>
<INPUT TYPE=HIDDEN NAME=command VALUE=editmotd>
Change the message-of-the-day:<br>
<INPUT TYPE=HIDDEN NAME=origmotd VALUE=\"$motd\">
<TEXTAREA NAME=motd ROWS=10 COLS=50>$::MOTD</TEXTAREA><BR>
<INPUT TYPE=SUBMIT VALUE=\"Change the MOTD\">
</FORM>
<hr>
);
}
sub EditEmailMessage {
print qq(
<FORM method=get action=\"editmessage.cgi\">
<INPUT TYPE=HIDDEN NAME=treeid VALUE=$::TreeID>
Change the e-mail message sent:
<SELECT NAME=msgname SIZE=1>
<OPTION VALUE=openmessage>when a checkin is made when the tree is open.
<OPTION VALUE=closemessage>when a checkin is made when the tree is closed.
<OPTION VALUE=treeopened>to the hook when the tree opens
<OPTION VALUE=treeopenedsamehook>to the hook when the tree opens and the hook isn\'t cleared
<OPTION VALUE=treeclosed>to the hook when the tree closes
</SELECT><br>
<INPUT TYPE=SUBMIT VALUE=\"Edit a message\">
</FORM>
<hr>
);
}
sub RebuildHook {
my $lg_timestamp = value_quote(MyFmtClock($::LastGoodTimeStamp));
print qq(
<FORM method=get action=\"repophook.cgi\">
<INPUT TYPE=HIDDEN NAME=treeid VALUE=$::TreeID>
<B>Password:</B> <INPUT NAME=password TYPE=password> <BR>
<INPUT TYPE=HIDDEN NAME=command VALUE=repophook>
Repopulate the hook from scratch.<p>
<font color=red size=+2>This can be very dangerous.</font> You should
usually only need to do this to populate a new Bonsai branch.
<p>
<b>Use any checkin since:</b>
<INPUT NAME=startfrom VALUE=\"$lg_timestamp\">
<br>
<INPUT TYPE=SUBMIT VALUE=\"Rebuild the hook\">
</FORM>
<hr>
);
}
sub RebuildTags {
print qq(
<FORM method=get action=\"rebuildtaginfo.cgi\">
<INPUT TYPE=HIDDEN NAME=treeid VALUE=$::TreeID>
<B>Password:</B> <INPUT NAME=password TYPE=password> <BR>
<INPUT TYPE=HIDDEN NAME=command VALUE=rebuildtaginfo>
Recreate the entire table of tags for the $::TreeInfo{$::TreeID}{repository}
repository from scratch.
<p>
<font color=red size=+2>This can take a very, very long time.</font> You
should
usually only need to do this when first introducing an entire CVS repository
into Bonsai. (And, in fact, nothing right now ever even uses that info, so
don't bother unless you know what you're doing.)
<br>
<INPUT TYPE=SUBMIT VALUE=\"Rebuild tag information\">
</FORM>
<hr>
);
}
sub RebuildHistory {
my $timestamp = value_quote(MyFmtClock(0));
print qq(
<FORM method=get action=\"rebuildcvshistory.cgi\">
<INPUT TYPE=HIDDEN NAME=treeid VALUE=$::TreeID>
<B>Password:</B> <INPUT NAME=password TYPE=password> <BR>
<INPUT TYPE=HIDDEN NAME=command VALUE=rebuildcvs>
Recreate the entire list of every checkin ever done to the
$::TreeInfo{$::TreeID}{repository} repository from scratch.
<p>
<font color=red size=+2>This can take an incredibly long time.</font> You
should
usually only need to do this when first introducing an entire CVS repository
into Bonsai.
<p>
<b>Ignore checkins earlier than:</b>
<INPUT NAME=startfrom VALUE=\"$timestamp\">
<br>
<b>Ignore files before (must be full path starting
with $::TreeInfo{$::TreeID}{repository}; leave blank to do everything):</b>
<INPUT NAME=firstfile VALUE=\"\" size=50>
<br>
<b>Only do files within the subdirectory of
$::TreeInfo{$::TreeID}{repository} named:</b>
<INPUT NAME=subdir VALUE=\".\" size=50>
<br>
<INPUT TYPE=SUBMIT VALUE=\"Rebuild cvs history\">
</FORM>
<hr>
);
}
sub ChangePasswd {
print qq(
<FORM method=post action=\"doadmin.cgi\">
<INPUT TYPE=HIDDEN NAME=treeid VALUE=$::TreeID>
<INPUT TYPE=HIDDEN NAME=command VALUE=changepassword>
Change password.<BR>
<B>Old password:</B> <INPUT NAME=password TYPE=password> <BR>
<B>New password:</B> <INPUT NAME=newpassword TYPE=password> <BR>
<B>Retype new password:</B> <INPUT NAME=newpassword2 TYPE=password> <BR>
<INPUT TYPE=RADIO NAME=doglobal VALUE=0 CHECKED>Change password for this tree<BR>
<INPUT TYPE=RADIO NAME=doglobal VALUE=1>Change master Bonsai password<BR>
<INPUT TYPE=SUBMIT VALUE=\"Change the password\">
</FORM>
);
}

View File

@@ -1,117 +0,0 @@
# -*- Mode: perl; indent-tabs-mode: nil -*-
#
# 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 the Bonsai CVS tool.
#
# 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.
use strict;
use diagnostics;
# Shut up misguided -w warnings about "used only once". "use vars" just
# doesn't work for me.
sub adminfuncs_pl_sillyness {
my $zz;
$zz = $::TreeID;
}
require 'globals.pl';
use Mail::Internet;
use Mail::Header;
sub MakeHookList {
my ($checkin, $person, %people, @addrs);
# First, empty the arrays
undef %people; undef @addrs;
foreach $checkin (@::CheckInList) {
my $info = eval("\\\%$checkin");
$people{$$info{'person'}} = 1;
}
foreach $person (sort(keys(%people))) {
push @addrs, EmailFromUsername($person);
}
return @addrs;
}
sub SendHookMail {
my ($filename) = @_;
my $hooklist = join(', ', MakeHookList());
my (%substs, %headers, $body, $mail);
local *MAIL;
my $pathname = DataDir() . "/$filename";
return unless $hooklist;
return unless -f $pathname;
return unless open(MAIL, "< $pathname");
$mail = join("", <MAIL>);
close (MAIL);
%substs = ();
$substs{'hooklist'} = $hooklist;
$mail = PerformSubsts($mail, \%substs);
%headers = ParseMailHeaders($mail);
%headers = CleanMailHeaders(%headers);
$body = FindMailBody($mail);
my $mail_relay = Param("mailrelay");
my $mailer = Mail::Mailer->new("smtp", Server => $mail_relay);
$mailer->open(\%headers)
or warn "Can't send hook mail: $!\n";
print $mailer "$body\n";
$mailer->close();
}
sub AdminOpenTree {
my ($lastgood, $clearp) = @_;
return if $::TreeOpen;
$::LastGoodTimeStamp = $lastgood;
$::TreeOpen = 1;
PickNewBatchID();
if ($clearp) {
SendHookMail('treeopened');
@::CheckInList = ();
} else {
SendHookMail('treeopenedsamehook');
}
Log("Tree opened. \$::LastGoodTimeStamp is " .
MyFmtClock($::LastGoodTimeStamp));
}
sub AdminCloseTree {
my ($closetime) = @_;
return unless $::TreeOpen;
$::CloseTimeStamp = $closetime;
$::TreeOpen = 0;
SendHookMail('treeclosed');
Log("Tree $::TreeID closed. \$::CloseTimeStamp is " .
MyFmtClock($::CloseTimeStamp));
}

View File

@@ -1,69 +0,0 @@
#!/usr/bonsaitools/bin/perl -w
# -*- Mode: perl; indent-tabs-mode: nil -*-
#
# 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 the Bonsai CVS tool.
#
# 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.
require 'globals.pl';
require 'adminfuncs.pl';
use strict;
use diagnostics;
sub GetDate {
my ($line) = (@_);
my $date;
if ($line =~ /([0-9].*)$/) {
$date = str2time($1);
} else {
$date = time();
}
return $date;
}
Lock();
open(FID, "<$ARGV[0]") || die "Can't open $ARGV[0]";
while (<FID>) {
chomp();
my $line = $_;
if ($line =~ /^([^ ]*)\s+([^ ]*)/) {
my $foobar = $1;
$::TreeID = $2;
$::TreeID = $2; # Duplicate line to avoid stupid perl warning.
undef @::CheckInList;
undef @::CheckInList; # Duplicate line to avoid stupid perl warning.
if ($foobar =~ /^opennoclear$/i) {
LoadCheckins();
AdminOpenTree(GetDate($line), 0);
WriteCheckins();
} elsif ($foobar =~ /^open$/i) {
LoadCheckins();
AdminOpenTree(GetDate($line), 1);
WriteCheckins();
} elsif ($foobar =~ /^close$/i) {
LoadCheckins();
AdminCloseTree(GetDate($line));
WriteCheckins();
}
}
}
Unlock();

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

View File

@@ -1,201 +0,0 @@
So you want to run Bonsai? It's better that you know how Bonsai works
since your obviously going to be hacking around in the code to change
it to your individual site configuration.
o What Bonsai can do for you:
Bonsai allows you to query the contents of your CVS tree, figuring out
the differences between arbitrary versions and/or branches of a file
and allows you to watch those changes over time.
One of the problems with CVS is that although it allows you to define
logical groups of directories into a module, it has no way to define a
module that represents a specific branch within one or more of those
directories. Bonsai allows you to define a module that represents
both a directory and a branch within that directory in your CVS
repository.
Bonsai is tree control.
---------------------
o How does it work?
To do all this, Bonsai requires access to the source of your CVS
repository. This means that it will actually read the source files in
their ,v format. It is not enough that you have access to a checked
out copy of an arbitrary CVS tree. Bonsai also reads the modules that
you have defined in the modules file in the CVSROOT directory of your
CVS repository. The logical mappings that you set up in that file
define the base Bonsai modules that Bonsai will use to set up your
queries.
In order to keep track of these changes in a format that is easily
queried Bonsai also requires access to a relational database, in this
case MySQL. Once your CVS tree is in place and Bonsai has been
installed, you will import the important data from your CVS repository
into the Bonsai database. This doesn't import the entire repository
verbatim, it only reads and stores the information that it needs
including information about users, dates, file names, versions and
branch information.
To keep track of changes over time, Bonsai also requires notification
through some kind of asynchronous method to know that you have updated
a file. It keeps track of these changes through email. In CVS
every time that you make a check-in, any scripts that are defined in the
loginfo file in the CVSROOT directory of your CVS repository will be
run and the information about that check-in will be passed to that
script. Bonsai requires that you add a script to that file that will
automatically generate a specially formatted email. That email will
then be sent to a special account and, in turn, a script. That script
will then parse the email and update the Bonsai database with the
check-in information.
This method, while seemingly roundabout, provides a few advantages.
It keeps you from constantly polling your CVS tree to check for
changes. This can be a very intensive operation on large
repositories. This method is pretty reliable. Mail messages are
rarely lost on systems.
Bonsai requires that it always have read access to the CVS repository.
It does not ever need to write to the repository so this means you can
use a read-only nfs setup or some other mirroring strategy.
The last part of Bonsai is the web based interface. This interface is
where you do most of the day-to-day administration and querying. The
interface uses the backend database and the configuration files that
you set up.
---------------
o How do I set up my administration password?
When you build bonsai, the program "trapdoor" is built and installed
into the data directory in your Bonsai installation tree. Change to
the data directory in your installation and run the command:
trapdoor <your admin password> > passwd
If you look at the file you will see your admin password in standard
unix crypt() format.
---------------
o Ok, I've installed the files. What do I do now?
First, you need to define logical Bonsai modules on top of the modules
that you have already defined in CVS. Any CVS modules that you do not
define here will still show up in the Bonsai query interface.
However, defining Bonsai modules allows you access to the most
commonly used modules and allows you fast access to the branches of a
particular module. Also, to import a directory from CVS into Bonsai
it must be included as part of one of the Bonsai modules.
To set up the Bonsai modules you need to edit the configdata script in
the data/ directory of your Bonsai installation. The first part of
this file contains a list of the Bonsai modules that you want to
define and looks something like this:
set treelist {default module_a module_b module_c}
Please note the "default" module. You can define this module to be
any of the modules in your CVS tree. It is probably best that you
define it as your most used. It _must_ be defined.
For each of the Bonsai modules you need to define the information that
describes that module. For example, for you default module you can
define the following information:
set treeinfo(default,module) XYZSource
set treeinfo(default,branch) {}
set treeinfo(default,repository) {/cvsroot}
set treeinfo(default,description) {XYZ Sourcecode}
set treeinfo(default,shortdesc) {XYZ}
Each of the treeinfo settings describes the following things:
module: This is the logical module as defined in your modules file on
the CVS repository.
branch: This is the branch within that module. As above, you don't
have to have one of these defined. If you don't it's the same as the
HEAD branch.
repository: This is the directory that contains the repository.
description: This is the long description for the module, used
throughout the web interface.
shortdesc: This is a shorter version of the description.
Here is another example using a branch:
set treeinfo(module_a,module) ABCSource
set treeinfo(module_a,branch) {ACB_MERGE_1_0_BRANCH}
set treeinfo(module_a,repository) {/cvsroot}
set treeinfo(module_a,description) {ABC Sourcecode}
set treeinfo(module_a,shortdesc) {ABC}
Also in the configdata file you need to define the absolute paths to
some more commonly used commands and configuration information. These
are pretty self explanatory:
set cvscommand /usr/local/bin/cvs
set rlogcommand /usr/bin/rlog
set rcsdiffcommand /usr/bin/rcsdiff
set cocommand /usr/bin/co
set lxr_base http://www.abc.com/webtools/lxr/source
set mozilla_lxr_kludge TRUE
Once you have set up these configuration items you also need to make a
directory in your data directory that has the same name as each of the
modules above. For example, for the default module defined above you
would need to create a directory called "ABCSource".
-----------------
o How do I import data?
You can do this from the administration menu in Bonsai. Go to the
toplevel of Bonsai and choose the module that you want to import by
using the pull down menu. Then click on the link near the bottom of
the page for administration. This will take you to the administration
page for that module. If this is the first time importing data, find
the section that has a button labeled "Rebuild CVS history". When you
fill in your administration password and click on the button, all of
the history information for that Bonsai module will be rebuilt.
You need to do this once for all of the modules that you have defined.
Unfortunately, there is no way to import an entire CVS tree from the
root.
------------------
o How do I set up mail for bonsai?
There are three things that you need to do to to set up email for
bonsai.
o You need to set up an account that will accept the email from Bonsai
and process it. When you have set up that user's .forward file to run
the script that handles the email. This is what a sample .forward
file looks like, please note that the script takes one argument which
is the directory where all of your bonsai data resides:
"|/home/httpd/html/webtools/bonsai/handleCheckinMail.tcl /home/httpd/html/webtools/bonsai"
o You need to set up an alias for "bonsai-checkin-daemon" to the
account that will process the email. This is where the mail will be
sent to when checking into CVS. Also create an alias called
"bonsai-daemon" for error mail.
o You need to add the script that creates the email to the loginfo
file in CVS. To do this you can add a line to the loginfo file that
looks like this:
# For bonsai
ALL /home/httpd/html/webtools/bonsai/dolog.pl -r /usr/local/cvsroot bonsai-checkin-daemon@your-bonsai-host.your-company.com
#
This will generate a piece of email every time someone checks in code
and should be handled with the setup above.

View File

@@ -1,23 +0,0 @@
From: bonsai-daemon
To: %name%
Subject: [Bonsai] Hey! You checked in while the tree was closed!
Mime-Version: 1.0
Content-Type: text/html
<HTML>
<H1>Boy, you better have had permission!</H1>
You just checked into <tt>%dir%</tt> the files <tt>%files%</tt>. The
tree is currently frozen. You better have had permission from the build group
to make a checkin; otherwise, you're in deep doo-doo.
<P>
Your contact info and other vital data is listed below. Please
<a href=http://warp/bonsai/profile.cgi?person=%name%>update</a>
this info <b>immediately</b> if it is at all inaccurate or incorrect.
<hr>
%profile%

File diff suppressed because it is too large Load Diff

View File

@@ -1,28 +0,0 @@
dnl Process this file with autoconf to produce a configure script.
AC_INIT(trapdoor.c)
dnl Checks for programs.
AC_PROG_CC
AC_PATH_PROG(PERL,perl)
AC_PERL_DB
AC_PERL_DATEPARSE
AC_PATH_PROG(CO,co)
AC_PATH_PROG(CVS,cvs)
AC_PATH_PROG(RLOG,rlog)
AC_PATH_PROG(RCSDIFF,rcsdiff)
dnl Checks for libraries.
dnl Replace `main' with a function in -lcrypt:
AC_CHECK_LIB(crypt, crypt)
dnl Checks for header files.
dnl Checks for typedefs, structures, and compiler characteristics.
dnl Checks for library functions.
AC_OUTPUT(Makefile)
AC_OUTPUT_COMMANDS([echo type 'make install' to install bonsai])

View File

@@ -1,27 +0,0 @@
<html> <head>
<title>Changing other people's contact info.</title>
</head>
<body>
<h1>Changing other people's contact info.</h1>
Occasionally, you need to change the "contact info" listed for some
other person. (Like, they just called you on their celphone from the
horrible traffic accident they just got in, and need you to go on the
hook for them.) Well, it's easy. Go ahead onto their contact page,
change the contact info field, and type your own username and UNIX
password to the form. It'll work.
<P>
Note that you're only allowed to change the "Current Contact Info"
field this way. It won't let you change anything else.
<hr>
<a href="toplevel.cgi" target=_top>Back to the top of Bonsai</a>
<hr>
<address><a href="http://home.netscape.com/people/terry/">Terry Weissman &lt;terry@netscape.com&gt;</a></address>
<!-- hhmts start -->
Last modified: Wed Oct 30 13:03:35 1996
<!-- hhmts end -->
</body> </html>

View File

@@ -1,90 +0,0 @@
#!/usr/bonsaitools/bin/perl -w
# -*- Mode: perl; indent-tabs-mode: nil -*-
#
# 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 the Bonsai CVS tool.
#
# 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.
use diagnostics;
use strict;
require 'CGI.pl';
use vars qw($CloseTimeStamp);
print "Content-type: text/html\n\n";
LoadCheckins();
my $maxsize = 400;
PutsHeader("Beancounter central", "Meaningless checkin statistics");
print "
<TABLE BORDER CELLSPACING=2><TR>
<TH>Tree closed</TH>
<TH>Number<BR>of<BR>people<BR>making<BR>changes</TH>
<TH COLSPAN=2>Number of checkins</TH>
</TR>\n";
my @list = ();
my $globstr = DataDir() . '/batch-*[0-9].pl';
foreach my $i (glob($globstr )) {
if ($i =~ /(\d+)/) {
push @list, $1;
}
}
@list = sort { $b <=> $a } @list;
my $first = 1;
my $biggest = 1;
my %minfo; # meaninglesss info
foreach my $i (@list) {
my $batch = DataDir() . "/batch-$i.pl";
require $batch;
$minfo{$i}{num} = scalar @::CheckInList;
$biggest = $minfo{$i}{num} if ($minfo{$i}{num} > $biggest);
if ($first) {
$minfo{$i}{donetime} = "Current hook";
$first = 0;
} else {
$minfo{$i}{donetime} = MyFmtClock($::CloseTimeStamp);
}
my %people = ();
foreach my $checkin (@::CheckInList) {
my $info = eval("\\\%$checkin");
$people{$$info{'person'}} = 1;
}
$minfo{$i}{numpeople} = scalar keys(%people);
}
foreach my $i (@list) {
print "<tr>\n";
print "<TD>$minfo{$i}{donetime}</TD>\n";
print "<TD ALIGN=RIGHT>$minfo{$i}{numpeople}</TD>\n";
print "<TD ALIGN=RIGHT>$minfo{$i}{num}</TD>\n";
printf "<TD><table WIDTH=%d bgcolor=green>\n",
($minfo{$i}{num} * $maxsize) / $biggest;
print "<tr><td>&nbsp;</td></tr></table></TD>\n";
print "</TR>\n";
}
print "</table>\n";
PutsTrailer();
exit;

View File

@@ -1,124 +0,0 @@
#!/usr/bonsaitools/bin/perl
#
# 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 the Bonsai CVS tool.
#
# 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.
require 'globals.pl';
sub add_module {
my ($str) = @_;
my $module;
$str =~ s/^\s*(\S+)\s*(-\S*\s*)?//;
$module = $1;
$::Modules{$module} = $str;
}
sub init_modules {
my ($cvsroot, $curline);
my $cvscommand = Param('cvscommand');
undef %::Modules;
$cvsroot = $::TreeInfo{$::TreeID}{'repository'};
$::CVSCOMMAND = "$cvscommand -d $cvsroot checkout -c";
open(MODULES, "$::CVSCOMMAND |") ||
die "Unable to read modules list from CVS\n";
$curline = "";
while (<MODULES>) {
chop;
if (/^\s+/) {
$curline .= $_;
} else {
add_module($curline) if ($curline);
$curline = $_;
}
}
add_module($curline) if ($curline);
close(MODULES);
}
sub init {
$::TreeID = $ARGV[0];
die "Must specify a treeid...\n"
unless ($::TreeID);
LoadTreeConfig();
$::ModuleName = $::TreeInfo{$::TreeID}{'module'};
init_modules();
die "modules file no longer includes `$::ModuleName' ???
Used `$::CVSCOMMAND' to try to find it\n"
unless (exists($::Modules{$::ModuleName}));
$::DataDir = DataDir();
}
sub find_dirs {
my ($oldlist, $list, $i);
$oldlist = '';
$list = $::ModuleName;
until ($list eq $oldlist) {
$oldlist = $list;
$list = '';
foreach $i (split(/\s+/, $oldlist)) {
if (exists($::Modules{$i})) {
$list .= "$::Modules{$i} ";
# Do an undef to prevent infinite recursion.
undef($::Modules{$i});
} else {
$list .= "$i ";
}
}
$list =~ s/\s+$//;
}
return ($list);
}
sub create_legal_dirs {
my ($dirs);
$list = find_dirs();
Lock();
unless (open(LDIR, "> $::DataDir/legaldirs")) {
Unlock();
die "Couldn't create $::DataDir/legaldirs";
}
chmod(0666,"$::DataDir/legaldirs");
foreach $i (split(/\s+/, $list)) {
print LDIR "$i\n";
print LDIR "$i/*\n";
}
close(LDIR);
Unlock();
}
##
## Main program...
##
Log("Attempting to recreate legaldirs...");
init();
create_legal_dirs();
Log("...legaldirs recreated.");
exit(0);

View File

@@ -1,707 +0,0 @@
#!/usr/bonsaitools/bin/perl -w
# cvsblame.cgi -- cvsblame with logs as popups and allowing html in comments.
# -*- Mode: perl; indent-tabs-mode: nil -*-
#
# 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 the Bonsai CVS tool.
#
# 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.
# Created: Steve Lamm <slamm@netscape.com>, 12-Sep-97.
# Modified: Marc Byrd <byrd@netscape.com> , 19971030.
#
# Arguments (passed via GET or POST):
# file - path to file name (e.g. ns/cmd/xfe/Makefile)
# root - cvs root (e.g. /warp/webroot)
# - default includes /m/src/ and /h/rodan/cvs/repository/1.0
# rev - revision (default is the latest version)
# line_nums - boolean for line numbers on/off (use 1,0).
# (1,on by default)
# use_html - boolean for html comments on/off (use 1,0).
# (0,off by default)
# sanitize - path to sanitization dictionary
# (e.g. /warp2/webdoc/projects/bonsai/dictionary/sanitization.db)
# mark - highlight a line
#
use diagnostics;
use strict;
# Shut up misguided -w warnings about "used only once". "use vars" just
# doesn't work for me.
sub sillyness {
my $zz;
$zz = $::progname;
$zz = $::revision_ctime;
$zz = $::revision_log;
}
require 'CGI.pl';
require 'cvsblame.pl';
use SourceChecker;
$| = 1;
# Cope with the cookie and print the header, first thing. That way, if
# any errors result, they will show up for the user.
print "Content-Type:text/html\n";
if ($ENV{"REQUEST_METHOD"} eq 'POST' && defined($::FORM{'set_line'})) {
# Expire the cookie 5 months from now
print "Set-Cookie: line_nums=$::FORM{'set_line'}; expires="
. toGMTString(time + 86400 * 152) . "; path=/\n";
}
print "\n";
# Some Globals
#
my $Head = 'CVS Blame';
my $SubHead = '';
my @src_roots = getRepositoryList();
# Do not use layers if the client does not support them.
my $useLayers = 1;
my $user_agent = $ENV{HTTP_USER_AGENT};
if (not $user_agent =~ m@^Mozilla/4.@ or $user_agent =~ /MSIE/) {
$useLayers = 0;
}
# Init sanitiazation source checker
#
my $sanitization_dictionary = $::FORM{'sanitize'};
my $opt_sanitize = defined $sanitization_dictionary;
if ( $opt_sanitize )
{
dbmopen %SourceChecker::token_dictionary, "$sanitization_dictionary", 0664;
}
# Init byrd's 'feature' to allow html in comments
#
my $opt_html_comments = &html_comments_init();
# Handle the "file" argument
#
my $filename = '';
$filename = $::FORM{'file'} if defined($::FORM{'file'});
if ($filename eq '')
{
&print_usage;
exit;
}
my ($file_head, $file_tail) = $filename =~ m@(.*/)?(.+)@;
# Handle the "rev" argument
#
$::opt_rev = '';
$::opt_rev = $::FORM{'rev'} if defined($::FORM{'rev'} && $::FORM{'rev'} ne 'HEAD');
my $browse_revtag = "HEAD";
$browse_revtag = $::opt_rev if ($::opt_rev =~ /[A-Za-z]/);
my $revision = '';
# Handle the "root" argument
#
my $root = $::FORM{'root'};
if (defined $root && $root ne '') {
$root =~ s|/$||;
validateRepository($root);
if (-d $root) {
unshift(@src_roots, $root);
} else {
&print_top;
print "Error: Root, $root, is not a directory.<BR><BR>\n";
print "</BODY></HTML>\n";
&print_bottom;
exit;
}
}
# Find the rcs file
#
my $rcs_filename;
foreach (@src_roots) {
$root = $_;
$rcs_filename = "$root/$filename,v";
$rcs_filename = Fix_BonsaiLink($rcs_filename);
goto found_file if -r $rcs_filename;
$rcs_filename = "$root/${file_head}Attic/$file_tail,v";
goto found_file if -r $rcs_filename;
}
# File not found
&print_top;
print "Rcs file, $filename, does not exist.<pre>rcs_filename => '$rcs_filename'\nroot => '$root'</pre><BR><BR>\n";
print "</BODY></HTML>\n";
&print_bottom;
exit;
found_file:
my $rcs_path;
($rcs_path) = $rcs_filename =~ m@$root/(.*)/.+?,v@;
CheckHidden($rcs_filename);
# Parse the rcs file ($::opt_rev is passed as a global)
#
$revision = &parse_cvs_file($rcs_filename);
my $file_rev = $revision;
# Handle the "line_nums" argument
#
my $opt_line_nums = 1;
if (exists($::COOKIE{'line_nums'})) {
$opt_line_nums = 1 if $::COOKIE{'line_nums'} eq 'on';
}
if (exists($::FORM{'line_nums'})) {
$opt_line_nums = 0 if $::FORM{'line_nums'} =~ /off|no|0/i;
$opt_line_nums = 1 if $::FORM{'line_nums'} =~ /on|yes|1/i;
}
# Option to make links to included files
my $opt_includes = 0;
$opt_includes = 1 if (exists($::FORM{'includes'}) &&
$::FORM{'includes'} =~ /on|yes|1/i);
$opt_includes = 1 if $opt_includes && $file_tail =~ /(.c|.h|.cpp)$/;
my @text = &extract_revision($revision);
die "$::progname: Internal consistency error" if ($#text != $#::revision_map);
my $use_html = 0;
$use_html = 1 if exists($::FORM{'use_html'}) && $::FORM{'use_html'} eq '1';
# Handle the "mark" argument
#
my %mark_line;
my $mark_arg = '';
$mark_arg = $::FORM{'mark'} if defined($::FORM{'mark'});
foreach my $mark (split(',',$mark_arg)) {
my ($begin, $end);
if (($begin, $end) = $mark =~ /(\d*)\-(\d*)/) {
$begin = 1 if $begin eq '';
$end = $#text + 1 if $end eq '' || $end > $#text + 1;
next if $begin >= $end;
$mark_line{$begin} = 'begin';
$mark_line{$end} = 'end';
} else {
$mark_line{$mark} = 'single';
}
}
# Start printing out the page
#
&print_top;
print Param('bannerhtml', 1);
# Print link at top for directory browsing
#
print q(
<TABLE BORDER=0 CELLPADDING=5 CELLSPACING=0 WIDTH="100%">
<TR>
<TD ALIGN=LEFT VALIGN=CENTER>
<NOBR><FONT SIZE="+2"><B>
CVS Blame
</B></FONT></NOBR>
<BR><B>
);
my $link_path;
foreach my $path (split('/',$rcs_path)) {
# Customize this translation
$link_path .= url_encode2($path).'/';
my $lxr_path = Fix_LxrLink($link_path);
print "<A HREF='$lxr_path'>$path</a>/ ";
}
print "<A HREF='$link_path$file_tail'>$file_tail</a> ";
print " (<A HREF='cvsblame.cgi?file=$filename&rev=$revision&root=$root'";
print " onmouseover='return log(event,\"$::prev_revision{$revision}\",\"$revision\");'" if $useLayers;
print ">";
print "$browse_revtag:" unless $browse_revtag eq 'HEAD';
print $revision if $revision;
print "</A>)";
my $lxr_path = Fix_LxrLink("$link_path$file_tail");
print qq(
</B>
</TD>
<TD ALIGN=RIGHT VALIGN=TOP WIDTH="1%">
<TABLE BORDER CELLPADDING=10 CELLSPACING=0>
<TR>
<TD NOWRAP BGCOLOR="#FAFAFA">
<TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0>
<TR>
<TD NOWRAP>
<A HREF="$lxr_path">LXR: Cross Reference</A>
</TD>
</TR><TR>
<TD NOWRAP>
<A HREF="cvslog.cgi?file=$filename">Full Change Log</A>
</TD>
</TR>
</TABLE>
</TD>
</TR>
</TABLE>
</TD>
</TR>
</TABLE>
);
my $open_table_tag =
'<TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH="100%">';
print "$open_table_tag<TR><TD colspan=3><PRE>";
# Print each line of the revision, preceded by its annotation.
#
my $count = $#::revision_map;
if ($count == 0) {
$count = 1;
}
my $line_num_width = int(log($count)/log(10)) + 1;
my $revision_width = 3;
my $author_width = 5;
my $line = 0;
my %usedlog;
$usedlog{$revision} = 1;
my $old_revision = 0;
my $row_color = '';
my $lines_in_table = 0;
my $inMark = 0;
my $rev_count = 0;
foreach $revision (@::revision_map)
{
my $text = $text[$line++];
$usedlog{$revision} = 1;
$lines_in_table++;
if ($opt_html_comments) {
# Don't escape HTML in C/C++ comments
$text = &leave_html_comments($text);
} elsif ( $opt_sanitize ){
# Mark filty words and Escape HTML meta-characters
$text = markup_line($text);
} else {
$text =~ s/&/&amp;/g;
$text =~ s/</&lt;/g;
$text =~ s/>/&gt;/g;
}
# Add a link to traverse to included files
$text = &link_includes($text) if $opt_includes;
my $output = '';
# Highlight lines
my $mark_cmd;
if (defined($mark_cmd = $mark_line{$line})
&& $mark_cmd ne 'end') {
$output .= '</TD></TR><TR><TD BGCOLOR=LIGHTGREEN WIDTH="100%"><PRE>';
$inMark = 1;
}
if ($old_revision ne $revision and $line != 1) {
if ($row_color eq '') {
$row_color=' BGCOLOR="#e7e7e7"';
} else {
$row_color='';
}
if (not $inMark) {
if ($lines_in_table > 100) {
$output .= "</TD></TR></TABLE>$open_table_tag<TR><TD colspan=3$row_color><PRE>";
$lines_in_table=0;
} else {
$output .= "</TD></TR><TR><TD colspan=3$row_color><PRE>";
}
}
} elsif ($lines_in_table > 200 and not $inMark) {
$output .= "</TD></TR></TABLE>$open_table_tag<TR><TDcolspan=3$row_color><PRE>";
$lines_in_table=0;
}
$output .= "<A NAME=$line></A>";
$output .= sprintf("%${line_num_width}s ", $line) if $opt_line_nums;
if ($old_revision ne $revision or $rev_count > 20) {
$revision_width = max($revision_width,length($revision));
# $output .= "<A HREF=\"cvsblame.cgi?file=$filename&rev=$revision&root=$root\"";
if (defined $::prev_revision{$revision}) {
$output .= "<A HREF=\"cvsview2.cgi?diff_mode=context&whitespace_mode=show&root=$root&subdir=$rcs_path&command=DIFF_FRAMESET&file=$file_tail&rev2=$revision&rev1=$::prev_revision{$revision}\"";
} else {
$output .= "<A HREF=\"cvsview2.cgi?root=$root&subdir=$rcs_path&command=DIRECTORY&files=$file_tail\"";
$::prev_revision{$revision} = '';
}
$output .= " onmouseover='return log(event,\"$::prev_revision{$revision}\",\"$revision\");'" if $useLayers;
$output .= ">";
my $author = $::revision_author{$revision};
$author =~ s/%.*$//;
$author_width = max($author_width,length($author));
$output .= sprintf("%-${author_width}s ", $author);
$output .= "$revision</A> ";
$output .= ' ' x ($revision_width - length($revision));
$old_revision = $revision;
$rev_count = 0;
} else {
$output .= ' ' . ' ' x ($author_width + $revision_width);
}
$rev_count++;
$output .= "$text";
# Close the highlighted section
if (defined($mark_cmd) and $mark_cmd ne 'begin') {
chop($output);
#if( defined($::prev_revision{$file_rev})) {
# $output .= "</TD><TD ALIGN=RIGHT$row_color><A HREF=\"cvsblame.cgi?file=$filename&rev=$::prev_revision{$file_rev}&root=$root&mark=$mark_arg\">Previous&nbsp;Revision&nbsp;($::prev_revision{$file_rev})</A></TD><TD BGCOLOR=LIGHTGREEN>&nbsp;";
#}
$output .= "</TD></TR><TR><TD colspan=3$row_color><PRE>";
$inMark = 0;
}
print $output;
}
print "</TD></TR></TABLE>\n";
if ($useLayers) {
# Write out cvs log messages as a JS variables
#
print "<SCRIPT>";
while (my ($revision, $junk) = each %usedlog) {
# Create a safe variable name for a revision log
my $revisionName = $revision;
$revisionName =~ tr/./_/;
my $log = $::revision_log{$revision};
$log =~ s/([^\n\r]{80})([^\n\r]*)/$1\n$2/g;
$log = MarkUpText($log);
$log =~ s/\n|\r|\r\n/<BR>/g;
$log =~ s/"/\\"/g;
# Write JavaScript variable for log entry (e.g. log1_1 = "New File")
my $author = $::revision_author{$revision};
$author =~ tr/%/@/;
my $author_email = EmailFromUsername($author);
print "log$revisionName = \""
."<b>$revision</b> &lt;<a href='mailto:$author_email'>$author</a>&gt;"
." <b>$::revision_ctime{$revision}</b><BR>"
."<SPACER TYPE=VERTICAL SIZE=5>$log\";\n";
}
print "</SCRIPT>";
}
&print_bottom;
if ( $opt_sanitize )
{
dbmclose %SourceChecker::token_dictionary;
}
## END of main script
sub max {
my ($a, $b) = @_;
return ($a > $b ? $a : $b);
}
sub print_top {
my ($title_text) = "for $file_tail (";
$title_text .= "$browse_revtag:" unless $browse_revtag eq 'HEAD';
$title_text .= $revision if $revision;
$title_text .= ")";
$title_text =~ s/\(\)//;
print "<HTML><HEAD><TITLE>CVS Blame $title_text</TITLE>";
print <<__TOP__ if $useLayers;
<SCRIPT>
var event = 0; // Nav3.0 compatibility
document.loaded = false;
function finishedLoad() {
if (parseInt(navigator.appVersion) < 4 ||
navigator.userAgent.toLowerCase().indexOf("msie") != -1) {
return true;
}
document.loaded = true;
document.layers['popup'].visibility='hide';
return true;
}
function revToName (rev) {
revName = rev + "";
revArray = revName.split(".");
return revArray.join("_");
}
function log(event, prev_rev, rev) {
if (parseInt(navigator.appVersion) < 4 ||
navigator.userAgent.toLowerCase().indexOf("msie") != -1) {
return true;
}
var l = document.layers['popup'];
var guide = document.layers['popup_guide'];
if (event.target.text.length > max_link_length) {
max_link_length = event.target.text.length;
guide.document.write("<PRE>" + event.target.text);
guide.document.close();
popup_offset = guide.clip.width;
}
if (document.loaded) {
l.document.write("<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=3><TR><TD BGCOLOR=#F0A000>");
l.document.write("<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=6><TR><TD BGCOLOR=#FFFFFF><tt>");
l.document.write(eval("log" + revToName(rev)) + "</TD></TR></TABLE>");
l.document.write("</td></tr></table>");
l.document.close();
}
if(event.target.y > window.innerHeight + window.pageYOffset - l.clip.height) {
l.top = (window.innerHeight + window.pageYOffset - (l.clip.height + 15));
} else {
l.top = event.target.y - 9;
}
l.left = event.target.x + popup_offset;
l.visibility="show";
return true;
}
file_tail = "$file_tail";
popup_offset = 5;
max_link_length = 0;
initialLayer = "<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=3><TR><TD BGCOLOR=#F0A000><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=6><TR><TD BGCOLOR=#FFFFFF><B>Page loading...please wait.</B></TD></TR></TABLE></td></tr></table>";
</SCRIPT>
</HEAD>
<BODY onLoad="finishedLoad();" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000EE" VLINK="#551A8B" ALINK="#F0A000">
<LAYER SRC="javascript:initialLayer" NAME='popup' onMouseOut="this.visibility='hide';" LEFT=0 TOP=0 BGCOLOR='#FFFFFF' VISIBILITY='hide'></LAYER>
<LAYER SRC="javascript:initialLayer" NAME='popup_guide' onMouseOut="this.visibility='hide';" LEFT=0 TOP=0 VISIBILITY='hide'></LAYER>
__TOP__
print '<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000EE" VLINK="#551A8B" ALINK="#F0A000">' if not $useLayers;
} # print_top
sub print_usage {
my ($linenum_message) = '';
my ($new_linenum, $src_roots_list);
my ($title_text) = "Usage";
if ($ENV{"REQUEST_METHOD"} eq 'POST' && defined($::FORM{'set_line'})) {
# Expire the cookie 5 months from now
my $set_cookie = "Set-Cookie: line_nums=$::FORM{'set_line'}; expires="
.&toGMTString(time + 86400 * 152)."; path=/";
# XXX Hey, nothing is done with this handy cookie string! ### XXX
}
if (!defined($::COOKIE{'line_nums'}) && !defined($::FORM{'set_line'})) {
$new_linenum = 'on';
} elsif ($::COOKIE{'line_nums'} eq 'off' || $::FORM{'set_line'} eq 'off') {
$linenum_message = 'Line numbers are currently <b>off</b>.';
$new_linenum = 'on';
} else {
$linenum_message = 'Line numbers are currently <b>on</b>.';
$new_linenum = 'off';
}
$src_roots_list = join('<BR>', @src_roots);
print <<__USAGE__;
<HTML>
<HEAD>
<TITLE>CVS Blame $title_text</TITLE>
</HEAD><BODY>
<H2>CVS Blame Usage</H2>
Add parameters to the query string to view a file.
<P>
<TABLE BORDER CELLPADDING=3>
<TR ALIGN=LEFT>
<TH>Param</TH>
<TH>Default</TH>
<TH>Example</TH>
<TH>Description</TH>
</TR><TR>
<TD>file</TD>
<TD>--</TD>
<TD>ns/cmd/Makefile</TD>
<TD>path to file name</TD>
</TR><TR>
<TD>root</TD>
<TD>$src_roots_list</TD>
<TD>/warp/webroot</TD>
<TD>cvs root</TD>
</TR><TR>
<TD>rev</TD>
<TD>HEAD</TD>
<TD>1.3
<BR>ACTRA_branch</TD>
<TD>revision</TD>
</TR><TR>
<TD>line_nums</TD>
<TD>on *</TD>
<TD>on
<BR>off</TD>
<TD>line numbers</TD>
</TR><TR>
<TD>#&lt;line_number&gt;</TD>
<TD>--</TD>
<TD>#111</TD>
<TD>jump to a line</TD>
</TR>
</TABLE>
<P>Examples:
<TABLE><TR><TD>&nbsp;</TD><TD>
<A HREF="cvsblame.cgi?file=ns/cmd/Makefile">
cvsblame.cgi?file=ns/cmd/Makefile</A>
</TD></TR><TR><TD>&nbsp;</TD><TD>
<A HREF="cvsblame.cgi?file=ns/cmd/xfe/mozilla.c&rev=Dogbert4xEscalation_BRANCH">
cvsblame.cgi?file=ns/cmd/xfe/mozilla.c&amp;rev=Dogbert4xEscalation_BRANCH</A>
</TD></TR><TR><TD>&nbsp;</TD><TD>
<A HREF="cvsblame.cgi?file=projects/bonsai/cvsblame.cgi&root=/warp/webroot">
cvsblame.cgi?file=projects/bonsai/cvsblame.cgi&root=/warp/webroot</A>
</TD></TR><TR><TD>&nbsp;</TD><TD>
<A HREF="cvsblame.cgi?file=ns/config/config.mk&line_nums=on">
cvsblame.cgi?file=ns/config/config.mk&amp;line_nums=on</A>
</TD></TR><TR><TD>&nbsp;</TD><TD>
<A HREF="cvsblame.cgi?file=ns/cmd/xfe/dialogs.c#2384">
cvsblame.cgi?file=ns/cmd/xfe/dialogs.c#2384</A>
</TD></TR></TABLE>
<P>
You may also begin a query with the <A HREF="cvsqueryform.cgi">CVS Query Form</A>.
<FORM METHOD='POST' ACTION='cvsblame.cgi'>
<TABLE CELLPADDING=0 CELLSPACING=0>
<TR>
<TD>*<SPACER TYPE=HORIZONTAL SIZE=6></TD>
<TD>Instead of the <i>line_nums</i> parameter, you can
<INPUT TYPE=submit value='set a cookie to turn $new_linenum'>
line numbers.</TD>
</TR><TR>
<TD></TD>
<TD>$linenum_message</TD>
</TR></TABLE>
<INPUT TYPE=hidden NAME='set_line' value='$new_linenum'>
</FORM>
__USAGE__
&print_bottom;
} # sub print_usage
sub print_bottom {
my $maintainer = Param('maintainer');
print <<__BOTTOM__;
<HR WIDTH="100%">
<FONT SIZE=-1>
<A HREF="cvsblame.cgi">Page configuration and help</A>.
Mail feedback to <A HREF="mailto:$maintainer?subject=About the cvsblame script">&lt;$maintainer&gt;</A>.
</FONT></BODY>
</HTML>
__BOTTOM__
} # print_bottom
sub link_includes {
my ($text) = $_[0];
if ($text =~ /\#(\s*)include(\s*)"(.*?)"/) {
foreach my $trial_root (($rcs_path, 'ns/include',
"$rcs_path/Attic", "$rcs_path/..")) {
if (-r "$root/$trial_root/$3,v") {
$text = "$`#$1include$2\"<A HREF='cvsblame.cgi"
."?root=$root&file=$trial_root/$3&rev=".$browse_revtag
."&use_html=$use_html'>$3</A>\";$'";
last;
}
}
}
return $text;
}
my $in_comments = 0;
my $open_delim;
my $close_delim;
my $expected_delim;
sub html_comments_init {
return 0 unless $use_html;
# Initialization for C comment context switching
$in_comments = 0;
$open_delim = '\/\*';
$close_delim = '\*\/';
# Initialize the next expected delim
$expected_delim = $open_delim;
return 1;
}
sub leave_html_comments {
my ($text) = $_[0];
# Allow HTML in the comments.
#
my $newtext = "";
my $oldtext = $text;
while ($oldtext =~ /(.*$expected_delim)(.*\n)/) {
$a = $1;
$b = $2;
# pay no attention to C++ comments within C comment context
if ($in_comments == 0) {
$a =~ s/</&lt;/g;
$a =~ s/>/&gt;/g;
$expected_delim = $close_delim;
$in_comments = 1;
}
else {
$expected_delim = $open_delim;
$in_comments = 0;
}
$newtext = $newtext . $a;
$oldtext = $b;
}
# Handle thre remainder
if ($in_comments == 0){
$oldtext =~ s/</&lt;/g;
$oldtext =~ s/>/&gt;/g;
}
$text = $newtext . $oldtext;
# Now fix the breakage of <username> stuff on xfe. -byrd
if ($text =~ /(.*)<(.*@.*)>(.*\n)/) {
$text = $1 . "<A HREF=mailto:$2?subject=$filename>$2</A>" . $3;
}
return $text;
}

View File

@@ -1,879 +0,0 @@
#!/usr/bonsaitools/bin/perl --
# -*- Mode: perl; indent-tabs-mode: nil -*-
#
# 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 the Bonsai CVS tool.
#
# 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.
##############################################################################
#
# cvsblame.pl - Shamelessly adapted from Scott Furman's cvsblame script
# by Steve Lamm (slamm@netscape.com)
# - Annotate each line of a CVS file with its author,
# revision #, date, etc.
#
# Report problems to Steve Lamm (slamm@netscape.com)
#
##############################################################################
use diagnostics;
use strict;
# Shut up misguided -w warnings about "used only once". "use vars" just
# doesn't work for me.
sub cvsblame_pl_sillyness {
my $zz;
$zz = $::file_description;
$zz = $::opt_A;
$zz = $::opt_d;
$zz = $::principal_branch;
$zz = %::lines_added;
$zz = %::lines_removed;
};
use Time::Local qw(timegm); # timestamps
use Date::Format; # human-readable dates
my $debug = 0;
$::opt_m = 0 unless (defined($::opt_m));
# Extract base part of this script's name
($::progname = $0) =~ /([^\/]+)$/;
&cvsblame_init;
my $SECS_PER_DAY;
my $time;
sub cvsblame_init {
# Use default formatting options if none supplied
if (!$::opt_A && !$::opt_a && !$::opt_d && !$::opt_v) {
$::opt_a = 1;
$::opt_v = 1;
}
$time = time;
$SECS_PER_DAY = 60 * 60 * 24;
# Timestamp threshold at which annotations begin to occur, if -m option present.
$::opt_m_timestamp = $time;
if (defined $::opt_m) {
$::opt_m_timestamp -= $::opt_m * $SECS_PER_DAY;
}
}
# Generic traversal of a CVS tree. Invoke callback function for
# individual directories that contain CVS files.
sub traverse_cvs_tree {
my ($dir, $nlink);
local *callback;
($dir, *callback, $nlink) = @_;
my ($dev, $ino, $mode, $subcount);
# Get $nlink for top-level directory
($dev, $ino, $mode, $nlink) = stat($dir) unless $nlink;
# Read directory
opendir(DIR, $dir) || die "Can't open $dir\n";
my (@filenames) = readdir(DIR);
closedir(DIR);
return if ! -d "$dir/CVS";
&callback($dir);
# This dir has subdirs
if ($nlink != 2) {
$subcount = $nlink - 2; # Number of subdirectories
for (@filenames) {
last if $subcount == 0;
next if $_ eq '.';
next if $_ eq '..';
next if $_ eq 'CVS';
my $name = "$dir/$_";
($dev, $ino, $mode, $nlink) = lstat($name);
next unless -d _;
if (-x _ && -r _) {
print STDERR "$::progname: Entering $name\n";
&traverse_cvs_tree($name, *callback, $nlink);
} else {
warn("Couldn't chdir to $name");
}
--$subcount;
}
}
}
# Consume one token from the already opened RCSFILE filehandle.
# Unescape string tokens, if necessary.
my $line_buffer;
sub get_token {
# Erase all-whitespace lines.
$line_buffer = '' unless (defined($line_buffer));
while ($line_buffer =~ /^$/) {
die ("Unexpected EOF") if eof(RCSFILE);
$line_buffer = <RCSFILE>;
$line_buffer =~ s/^\s+//; # Erase leading whitespace
}
# A string of non-whitespace characters is a token ...
return $1 if ($line_buffer =~ s/^([^;@][^;\s]*)\s*//o);
# ...and so is a single semicolon ...
return ';' if ($line_buffer =~ s/^;\s*//o);
# ...or an RCS-encoded string that starts with an @ character.
$line_buffer =~ s/^@([^@]*)//o;
my $token = $1;
# Detect single @ character used to close RCS-encoded string.
while ($line_buffer !~ /@/o || # Short-circuit optimization
$line_buffer !~ /([^@]|^)@([^@]|$)/o) {
$token .= $line_buffer;
die ("Unexpected EOF") if eof(RCSFILE);
$line_buffer = <RCSFILE>;
}
# Retain the remainder of the line after the terminating @ character.
my $i = rindex($line_buffer, '@');
$token .= substr($line_buffer, 0, $i);
$line_buffer = substr($line_buffer, $i + 1);
# Undo escape-coding of @ characters.
$token =~ s/@@/@/og;
# Digest any extra blank lines.
while (($line_buffer =~ /^$/) && !eof(RCSFILE)) {
$line_buffer = <RCSFILE>;
}
return $token;
}
my $rcs_pathname;
# Consume a token from RCS filehandle and ensure that it matches
# the given string constant.
sub match_token {
my ($match) = @_;
my ($token) = &get_token;
die "Unexpected parsing error in RCS file $rcs_pathname.\n",
"Expected token: $match, but saw: $token\n"
if ($token ne $match);
}
# Push RCS token back into the input buffer.
sub unget_token {
my ($token) = @_;
$line_buffer = $token . " " . $line_buffer;
}
# Parses "administrative" header of RCS files, setting these globals:
#
# $::head_revision -- Revision for which cleartext is stored
# $::principal_branch
# $::file_description
# %::revision_symbolic_name -- maps from numerical revision # to symbolic tag
# %::tag_revision -- maps from symbolic tag to numerical revision #
#
sub parse_rcs_admin {
my ($token, $tag, $tag_name, $tag_revision);
# Undefine variables, because we may have already read another RCS file
undef %::tag_revision;
undef %::revision_symbolic_name;
while (1) {
# Read initial token at beginning of line
$token = &get_token();
# We're done once we reach the description of the RCS tree
if ($token =~ /^\d/o) {
&unget_token($token);
return;
}
# print "token: $token\n";
if ($token eq "head") {
$::head_revision = &get_token;
&get_token; # Eat semicolon
} elsif ($token eq "branch") {
$::principal_branch = &get_token;
&get_token; # Eat semicolon
} elsif ($token eq "symbols") {
# Create an associate array that maps from tag name to
# revision number and vice-versa.
while (($tag = &get_token) ne ';') {
($tag_name, $tag_revision) = split(':', $tag);
$::tag_revision{$tag_name} = $tag_revision;
$::revision_symbolic_name{$tag_revision} = $tag_name;
}
} elsif ($token eq "comment") {
$::file_description = &get_token;
&get_token; # Eat semicolon
# Ignore all these other fields - We don't care about them.
} elsif (($token eq "locks") ||
($token eq "strict") ||
($token eq "expand") ||
($token eq "access")) {
(1) while (&get_token ne ';');
} else {
warn ("Unexpected RCS token: $token\n");
}
}
die "Unexpected EOF";
}
# Construct associative arrays that represent the topology of the RCS tree
# and other arrays that contain info about individual revisions.
#
# The following associative arrays are created, keyed by revision number:
# %::revision_date -- e.g. "96.02.23.00.21.52"
# %::timestamp -- seconds since 12:00 AM, Jan 1, 1970 GMT
# %::revision_author -- e.g. "tom"
# %::revision_branches -- descendant branch revisions, separated by spaces,
# e.g. "1.21.4.1 1.21.2.6.1"
# %::prev_revision -- revision number of previous *ancestor* in RCS tree.
# Traversal of this array occurs in the direction
# of the primordial (1.1) revision.
# %::prev_delta -- revision number of previous revision which forms
# the basis for the edit commands in this revision.
# This causes the tree to be traversed towards the
# trunk when on a branch, and towards the latest trunk
# revision when on the trunk.
# %::next_delta -- revision number of next "delta". Inverts %::prev_delta.
#
# Also creates %::last_revision, keyed by a branch revision number, which
# indicates the latest revision on a given branch,
# e.g. $::last_revision{"1.2.8"} == 1.2.8.5
#
my %revision_age;
sub parse_rcs_tree {
my ($revision, $date, $author, $branches, $next);
my ($branch, $is_trunk_revision);
# Undefine variables, because we may have already read another RCS file
undef %::timestamp;
undef %revision_age;
undef %::revision_author;
undef %::revision_branches;
undef %::revision_ctime;
undef %::revision_date;
undef %::prev_revision;
undef %::prev_delta;
undef %::next_delta;
undef %::last_revision;
while (1) {
$revision = &get_token;
# End of RCS tree description ?
if ($revision eq 'desc') {
&unget_token($revision);
return;
}
$is_trunk_revision = ($revision =~ /^[0-9]+\.[0-9]+$/);
$::tag_revision{$revision} = $revision;
($branch) = $revision =~ /(.*)\.[0-9]+/o;
$::last_revision{$branch} = $revision;
# Parse date
&match_token('date');
$date = &get_token;
$::revision_date{$revision} = $date;
&match_token(';');
# Convert date into timestamp
my @date_fields = reverse(split(/\./, $date));
$date_fields[4]--; # Month ranges from 0-11, not 1-12
$::timestamp{$revision} = timegm(@date_fields);
# Pretty print the date string
my @ltime = localtime($::timestamp{$revision});
my $formated_date = strftime("%d %b %Y %H:%M", @ltime);
$::revision_ctime{$revision} = $formated_date;
# Save age
$revision_age{$revision} =
($time - $::timestamp{$revision}) / $SECS_PER_DAY;
# Parse author
&match_token('author');
$author = &get_token;
$::revision_author{$revision} = $author;
&match_token(';');
# Parse state;
&match_token('state');
while (&get_token ne ';') { }
# Parse branches
&match_token('branches');
$branches = '';
my $token;
while (($token = &get_token) ne ';') {
$::prev_revision{$token} = $revision;
$::prev_delta{$token} = $revision;
$branches .= "$token ";
}
$::revision_branches{$revision} = $branches;
# Parse revision of next delta in chain
&match_token('next');
$next = '';
if (($token = &get_token) ne ';') {
$next = $token;
&get_token; # Eat semicolon
$::next_delta{$revision} = $next;
$::prev_delta{$next} = $revision;
if ($is_trunk_revision) {
$::prev_revision{$revision} = $next;
} else {
$::prev_revision{$next} = $revision;
}
}
if ($debug >= 3) {
print "<pre>revision = $revision\n";
print "date = $date\n";
print "author = $author\n";
print "branches = $branches\n";
print "next = $next</pre>\n\n";
}
}
}
sub parse_rcs_description {
&match_token('desc');
my $rcs_file_description = &get_token;
}
# Construct associative arrays containing info about individual revisions.
#
# The following associative arrays are created, keyed by revision number:
# %::revision_log -- log message
# %::revision_deltatext -- Either the complete text of the revision,
# in the case of the head revision, or the
# encoded delta between this revision and another.
# The delta is either with respect to the successor
# revision if this revision is on the trunk or
# relative to its immediate predecessor if this
# revision is on a branch.
sub parse_rcs_deltatext {
undef %::revision_log;
undef %::revision_deltatext;
while (!eof(RCSFILE)) {
my $revision = &get_token;
print "Reading delta for revision: $revision\n" if ($debug >= 3);
&match_token('log');
$::revision_log{$revision} = &get_token;
&match_token('text');
$::revision_deltatext{$revision} = &get_token;
}
}
# Reads and parses complete RCS file from already-opened RCSFILE descriptor.
sub parse_rcs_file {
print "Reading RCS admin...\n" if ($debug >= 2);
&parse_rcs_admin();
print "Reading RCS revision tree topology...\n" if ($debug >= 2);
&parse_rcs_tree();
if( $debug >= 3 ){
print "<pre>Keys:\n\n";
for my $i (keys %::tag_revision ){
my $k = $::tag_revision{$i};
print "yoyuo $i: $k\n";
}
print "</pre>\n";
}
&parse_rcs_description();
print "Reading RCS revision deltas...\n" if ($debug >= 2);
&parse_rcs_deltatext();
print "Done reading RCS file...\n" if ($debug >= 2);
}
# Map a tag to a numerical revision number. The tag can be a symbolic
# branch tag, a symbolic revision tag, or an ordinary numerical
# revision number.
sub map_tag_to_revision {
my ($tag_or_revision) = @_;
my ($revision) = $::tag_revision{$tag_or_revision};
# Is this a branch tag, e.g. xxx.yyy.0.zzz
if ($revision =~ /(.*)\.0\.([0-9]+)/o) {
my $branch = $1 . '.' . $2;
# Return latest revision on the branch, if any.
return $::last_revision{$branch} if (defined($::last_revision{$branch}));
return $1; # No revisions on branch - return branch point
} else {
return $revision;
}
}
# Construct an ordered list of ancestor revisions to the given
# revision, starting with the immediate ancestor and going back
# to the primordial revision (1.1).
#
# Note: The generated path does not traverse the tree the same way
# that the individual revision deltas do. In particular,
# the path traverses the tree "backwards" on branches.
sub ancestor_revisions {
my ($revision) = @_;
my (@ancestors);
$revision = $::prev_revision{$revision};
while ($revision) {
push(@ancestors, $revision);
$revision = $::prev_revision{$revision};
}
return @ancestors;
}
# Extract the given revision from the digested RCS file.
# (Essentially the equivalent of cvs up -rXXX)
sub extract_revision {
my ($revision) = @_;
my (@path);
my $add_lines_remaining = 0;
my ($start_line, $count);
# Compute path through tree of revision deltas to most recent trunk revision
while ($revision) {
push(@path, $revision);
$revision = $::prev_delta{$revision};
}
@path = reverse(@path);
shift @path; # Get rid of head revision
# Get complete contents of head revision
my (@text) = split(/^/, $::revision_deltatext{$::head_revision});
# Iterate, applying deltas to previous revision
foreach $revision (@path) {
my $adjust = 0;
my @diffs = split(/^/, $::revision_deltatext{$revision});
my ($lines_added) = 0;
my ($lines_removed) = 0;
foreach my $command (@diffs) {
if ($add_lines_remaining > 0) {
# Insertion lines from a prior "a" command.
splice(@text, $start_line + $adjust,
0, $command);
$add_lines_remaining--;
$adjust++;
} elsif ($command =~ /^d(\d+)\s(\d+)/) {
# "d" - Delete command
($start_line, $count) = ($1, $2);
splice(@text, $start_line + $adjust - 1, $count);
$adjust -= $count;
$lines_removed += $count;
} elsif ($command =~ /^a(\d+)\s(\d+)/) {
# "a" - Add command
($start_line, $count) = ($1, $2);
$add_lines_remaining = $count;
$lines_added += $lines_added;
} else {
die "Error parsing diff commands";
}
}
$::lines_removed{$revision} += $lines_removed;
$::lines_added{$revision} += $lines_added;
}
return @text;
}
sub parse_cvs_file {
($rcs_pathname) = @_;
# Args in: $::opt_rev - requested revision
# $::opt_m - time since modified
# Args out: @::revision_map
# %::timestamp
# (%::revision_deltatext)
my @diffs;
my $revision;
my $skip;
my ($start_line, $count);
my @temp;
@::revision_map = ();
CheckHidden($rcs_pathname);
die "$::progname: error: This file appeared to be under CVS control, " .
"but the RCS file is inaccessible.\n(Couldn't open '$rcs_pathname')\n"
if !open (RCSFILE, "< $rcs_pathname");
&parse_rcs_file();
close(RCSFILE);
if (!defined($::opt_rev) || $::opt_rev eq '' || $::opt_rev eq 'HEAD') {
# Explicitly specified topmost revision in tree
$revision = $::head_revision;
} else {
# Symbolic tag or specific revision number specified.
$revision = &map_tag_to_revision($::opt_rev);
die "$::progname: error: -r: No such revision: $::opt_rev\n"
if ($revision eq '');
}
# The primordial revision is not always 1.1! Go find it.
my $primordial = $revision;
while (exists($::prev_revision{$primordial}) &&
$::prev_revision{$primordial} ne "") {
$primordial = $::prev_revision{$primordial};
}
# Don't display file at all, if -m option is specified and no
# changes have been made in the specified file.
if ($::opt_m && $::timestamp{$revision} < $::opt_m_timestamp) {
return '';
}
# Figure out how many lines were in the primordial, i.e. version 1.1,
# check-in by moving backward in time from the head revision to the
# first revision.
my $line_count = 0;
if (exists ($::revision_deltatext{$::head_revision}) &&
$::revision_deltatext{$::head_revision}) {
my @tmp_array = split(/^/, $::revision_deltatext{$::head_revision});
$line_count = @tmp_array;
}
$skip = 0 unless (defined($skip));
my $rev;
for ($rev = $::prev_revision{$::head_revision}; $rev;
$rev = $::prev_revision{$rev}) {
@diffs = split(/^/, $::revision_deltatext{$rev});
foreach my $command (@diffs) {
if ($skip > 0) {
# Skip insertion lines from a prior "a" command.
$skip--;
} elsif ($command =~ /^d(\d+)\s(\d+)/) {
# "d" - Delete command
($start_line, $count) = ($1, $2);
$line_count -= $count;
} elsif ($command =~ /^a(\d+)\s(\d+)/) {
# "a" - Add command
($start_line, $count) = ($1, $2);
$skip = $count;
$line_count += $count;
} else {
die "$::progname: error: illegal RCS file $rcs_pathname\n",
" error appears in revision $rev\n";
}
}
}
# Now, play the delta edit commands *backwards* from the primordial
# revision forward, but rather than applying the deltas to the text of
# each revision, apply the changes to an array of revision numbers.
# This creates a "revision map" -- an array where each element
# represents a line of text in the given revision but contains only
# the revision number in which the line was introduced rather than
# the line text itself.
#
# Note: These are backward deltas for revisions on the trunk and
# forward deltas for branch revisions.
# Create initial revision map for primordial version.
while ($line_count--) {
push(@::revision_map, $primordial);
}
my @ancestors = &ancestor_revisions($revision);
unshift (@ancestors, $revision); #
pop @ancestors; # Remove "1.1"
$::last_revision = $primordial;
foreach $revision (reverse @ancestors) {
my $is_trunk_revision = ($revision =~ /^[0-9]+\.[0-9]+$/);
if ($is_trunk_revision) {
@diffs = split(/^/, $::revision_deltatext{$::last_revision});
# Revisions on the trunk specify deltas that transform a
# revision into an earlier revision, so invert the translation
# of the 'diff' commands.
foreach my $command (@diffs) {
if ($skip > 0) {
$skip--;
} else {
if ($command =~ /^d(\d+)\s(\d+)$/) { # Delete command
($start_line, $count) = ($1, $2);
$#temp = -1;
while ($count--) {
push(@temp, $revision);
}
splice(@::revision_map, $start_line - 1, 0, @temp);
} elsif ($command =~ /^a(\d+)\s(\d+)$/) { # Add command
($start_line, $count) = ($1, $2);
splice(@::revision_map, $start_line, $count);
$skip = $count;
} else {
die "Error parsing diff commands";
}
}
}
} else {
# Revisions on a branch are arranged backwards from those on
# the trunk. They specify deltas that transform a revision
# into a later revision.
my $adjust = 0;
@diffs = split(/^/, $::revision_deltatext{$revision});
foreach my $command (@diffs) {
if ($skip > 0) {
$skip--;
} else {
if ($command =~ /^d(\d+)\s(\d+)$/) { # Delete command
($start_line, $count) = ($1, $2);
splice(@::revision_map, $start_line + $adjust - 1, $count);
$adjust -= $count;
} elsif ($command =~ /^a(\d+)\s(\d+)$/) { # Add command
($start_line, $count) = ($1, $2);
$skip = $count;
$#temp = -1;
while ($count--) {
push(@temp, $revision);
}
splice(@::revision_map, $start_line + $adjust, 0, @temp);
$adjust += $skip;
} else {
die "Error parsing diff commands";
}
}
}
}
$::last_revision = $revision;
}
return $revision;
}
1;
__END__
#
# The following are parts of the original cvsblame script that are not
# used for cvsblame.pl
#
# Read CVS/Entries and CVS/Repository files.
#
# Creates these associative arrays, keyed by the CVS file pathname
#
# %cvs_revision -- Revision # present in working directory
# %cvs_date
# %cvs_sticky_revision -- Sticky tag, if any
#
# Also, creates %cvs_files, keyed by the directory path, which contains
# a space-separated list of the files under CVS control in the directory
sub read_cvs_entries
{
my ($directory) = @_;
my ($filename, $rev, $date, $idunno, $sticky, $pathname);
$cvsdir = $directory . '/CVS';
CheckHidden($cvsdir);
return if (! -d $cvsdir);
return if !open(ENTRIES, "< $cvsdir/Entries");
while(<ENTRIES>) {
chop;
($filename, $rev, $date, $idunno, $sticky) = split("/", substr($_, 1));
($pathname) = $directory . "/" . $filename;
$cvs_revision{$pathname} = $rev;
$cvs_date{$pathname} = $date;
$cvs_sticky_revision{$pathname} = $sticky;
$cvs_files{$directory} .= "$filename\\";
}
close(ENTRIES);
return if !open(REPOSITORY, "< $cvsdir/Repository");
$repository = <REPOSITORY>;
chop($repository);
close(REPOSITORY);
$repository{$directory} = $repository;
}
# Given path to file in CVS working directory, compute path to RCS
# repository file. Cache that info for future use.
sub rcs_pathname {
($pathname) = @_;
if ($pathname =~ m@/@) {
($directory,$filename) = $pathname =~ m@(.*)/([^/]+)$@;
} else {
($directory,$filename) = ('.',$pathname);
$pathname = "./" . $pathname;
}
if (!defined($repository{$directory})) {
&read_cvs_entries($directory);
}
if (!defined($cvs_revision{$pathname})) {
die "$::progname: error: File '$pathname' does not appear to be under" .
" CVS control.\n"
}
print STDERR "file: $filename\n" if $debug;
my ($rcs_path) = $repository{$directory} . '/' . $filename . ',v';
return $rcs_path if (-r $rcs_path);
# A file that exists only on the branch, not on the trunk, is found
# in the Attic subdir.
return $repository{$directory} . '/Attic/' . $filename . ',v';
}
sub show_annotated_cvs_file {
my ($pathname) = @_;
my (@output) = ();
my $revision = &parse_cvs_file($pathname);
@text = &extract_revision($revision);
die "$::progname: Internal consistency error" if ($#text != $#::revision_map);
# Set total width of line annotation.
# Warning: field widths here must match format strings below.
$annotation_width = 0;
$annotation_width += 8 if $::opt_a; # author
$annotation_width += 7 if $::opt_v; # revision
$annotation_width += 6 if $::opt_A; # age
$annotation_width += 12 if $::opt_d; # date
$blank_annotation = ' ' x $annotation_width;
if ($multiple_files_on_command_line) {
print "\n", "=" x (83 + $annotation_width);
print "\n$::progname: Listing file: $pathname\n"
}
# Print each line of the revision, preceded by its annotation.
$line = 0;
foreach $revision (@::revision_map) {
$text = $text[$line++];
$annotation = '';
# Annotate with revision author
$annotation .= sprintf("%-8s", $::revision_author{$revision}) if $::opt_a;
# Annotate with revision number
$annotation .= sprintf(" %-6s", $revision) if $::opt_v;
# Date annotation
$annotation .= " $::revision_ctime{$revision}" if $::opt_d;
# Age annotation ?
$annotation .= sprintf(" (%3s)",
int($revision_age{$revision})) if $::opt_A;
# -m (if-modified-since) annotion ?
if ($::opt_m && ($::timestamp{$revision} < $::opt_m_timestamp)) {
$annotation = $blank_annotation;
}
# Suppress annotation of whitespace lines, if requested;
$annotation = $blank_annotation if $::opt_w && ($text =~ /^\s*$/);
# printf "%4d ", $line if $::opt_l;
# print "$annotation - $text";
push(@output, sprintf("%4d ", $line)) if $::opt_l;
push(@output, "$annotation - $text");
}
@output;
}
sub usage {
die
"$::progname: usage: [options] [file|dir]...\n",
" Options:\n",
" -r <revision> Specify CVS revision of file to display\n",
" <revision> can be any of:\n",
" + numeric tag, e.g. 1.23,\n",
" + symbolic branch or revision tag, e.g. CHEDDAR,\n",
" + HEAD keyword (most recent revision on trunk)\n",
" -a Annotate lines with author (username)\n",
" -A Annotate lines with age, in days\n",
" -v Annotate lines with revision number\n",
" -d Annotate lines with date, in local time zone\n",
" -l Annotate lines with line number\n",
" -w Don't annotate all-whitespace lines\n",
" -m <# days> Only annotate lines modified within last <# days>\n",
" -h Print help (this message)\n\n",
" (-a -v assumed, if none of -a, -v, -A, -d supplied)\n"
;
}
&usage if (!&Getopts('r:m:Aadhlvw'));
&usage if ($::opt_h); # help option
$multiple_files_on_command_line = 1 if ($#ARGV != 0);
&cvsblame_init;
sub annotate_cvs_directory
{
my ($dir) = @_;
&read_cvs_entries($dir);
foreach $file (split(/\\/, $cvs_files{$dir})) {
&show_annotated_cvs_file("$dir/$file");
}
}
# No files on command-line ? Use current directory.
push(@ARGV, '.') if ($#ARGV == -1);
# Iterate over files/directories on command-line
while ($#ARGV >= 0) {
$pathname = shift @ARGV;
# Is it a directory ?
if (-d $pathname) {
&traverse_cvs_tree($pathname, *annotate_cvs_directory);
# No, it must be a file.
} else {
&show_annotated_cvs_file($pathname);
}
}
1;

View File

@@ -1,75 +0,0 @@
#!/usr/bonsaitools/bin/perl -w
# -*- Mode: perl; indent-tabs-mode: nil -*-
#
# 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 the Bonsai CVS tool.
#
# 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.
use diagnostics;
use strict;
require 'CGI.pl';
my $file= $::FORM{'file'};
my $mark= $::FORM{'mark'};
my $ln = ($mark > 10 ? $mark-10 : 1 );
my $rev = $::FORM{'rev'};
my $debug = $::FORM{'debug'};
print "Content-Type: text/html\n\n";
my $CVS_ROOT = $::FORM{'root'};
if( $CVS_ROOT eq '' ){
$CVS_ROOT = pickDefaultRepository();
}
validateRepository($CVS_ROOT);
my $CVS_REPOS_SUFIX = $CVS_ROOT;
$CVS_REPOS_SUFIX =~ s/\//_/g;
ConnectToDatabase();
my $f = SqlQuote($file);
my $qstring = "select distinct dirs.dir from checkins,dirs,files,repositories where dirs.id=dirid and files.id=fileid and repositories.id=repositoryid and repositories.repository='$CVS_ROOT' and files.file=$f order by dirs.dir";
if ($debug) {
print "<pre wrap>$qstring</pre>\n";
}
my (@row, $d, @fl, $s);
SendSQL($qstring);
while(@row = FetchSQLData()){
$d = $row[0];
push @fl, "$d/$file";
}
if( @fl == 0 ){
print "<h3>No files matched this file name. It may have been added recently.</h3>";
}
elsif( @fl == 1 ){
$s = $fl[0];
print "<head>
<meta http-equiv=Refresh
content=\"0; URL=cvsblame.cgi?file=$s&rev=$rev&root=$CVS_ROOT&mark=$mark#$ln\">
</head>
";
}
else {
print "<h3>Pick the file that best matches the one you are looking for:</h3>\n";
for $s (@fl) {
print "<dt><a href=cvsblame.cgi?file=$s&rev=$rev&mark=$mark#$ln>$s</a>";
}
}

View File

@@ -1,91 +0,0 @@
#!/usr/bonsaitools/bin/perl --
# -*- Mode: perl; indent-tabs-mode: nil -*-
#
# 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 the Bonsai CVS tool.
#
# 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.
# Figure out which directory bonsai is in by looking at argv[0]
$bonsaidir = $0;
$bonsaidir =~ s:/[^/]*$::; # Remove last word, and slash before it.
if ($bonsaidir eq "") {
$bonsaidir = ".";
}
chdir $bonsaidir || die "Couldn't chdir to $bonsaidir";
require "utils.pl";
if( $ARGV[0] eq '' ){
$::CVS_ROOT = pickDefaultRepository();
}
else {
$::CVS_ROOT = $ARGV[0];
}
$CVS_REPOS_SUFIX = $::CVS_ROOT;
$CVS_REPOS_SUFIX =~ s:/:_:g;
$CHECKIN_DATA_FILE = "$bonsaidir/data/checkinlog${CVS_REPOS_SUFIX}";
$CHECKIN_INDEX_FILE = "$bonsaidir/data/index${CVS_REPOS_SUFIX}";
&build_index;
&print_keys;
sub build_index {
open(CI, "<$CHECKIN_DATA_FILE") || die "could not open checkin data file\n";
$file_pos = 0;
$lastlog = 0;
$last_date = 0;
$index = {};
$now = time;
while( <CI> ){
if( /^LOGCOMMENT/ ){
$done = 0;
$file_pos += length;
while( !$done && ($line = <CI>) ){
if( $line =~ /^:ENDLOGCOMMENT/ ){
$done = 1;
}
$file_pos += length($line);
}
}
else {
#print $_ . "\n";
$ci = [split(/\|/)];
$d = $ci->[1];
if( $d < $now && $d > ($last_date + 60*60*4) ){
$index->{$d} = $file_pos;
$last_date = $d;
}
$file_pos += length;
}
}
close( CI );
}
sub print_keys {
Lock();
open(INDEX , ">$CHECKIN_INDEX_FILE");
for $i (sort {$b <=> $a} keys %{$index}) {
print INDEX "$index->{$i}|$i\n";
}
close(INDEX);
Unlock();
}

View File

@@ -1,527 +0,0 @@
#!/usr/bonsaitools/bin/perl -w
# -*- Mode: perl; indent-tabs-mode: nil -*-
#
# 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 the Bonsai CVS tool.
#
# 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.
# cvslog.cgi -- cvslog with logs as popups and allowing html in comments.
#
# Created: Steve Lamm <slamm@netscape.com>, 31-Mar-98.
#
# Arguments (passed via GET or POST):
# file - path to file name (e.g. ns/cmd/xfe/Makefile)
# root - cvs root (e.g. /warp/webroot)
# rev - revision (default is the latest version)
# mark - highlight a revision
# author - filter based on author
#
use diagnostics;
use strict;
# Shut up misguided -w warnings about "used only once". "use vars" just
# doesn't work for me.
sub sillyness {
my $zz;
$zz = $::CVS_ROOT;
$zz = $::head_revision;
$zz = $::revision_ctime;
$zz = $::revision_log;
}
require 'CGI.pl';
require 'cvsblame.pl';
use SourceChecker;
# Some Globals
#
$| = 1;
print "Content-Type:text/html\n\n";
my @src_roots = getRepositoryList();
# Handle the "file" argument
#
my $filename = '';
$filename = $::FORM{'file'} if defined($::FORM{'file'});
if ($filename eq '')
{
&print_usage;
exit;
}
my ($file_head, $file_tail) = $filename =~ m@(.*/)?(.+)@;
# Handle the "rev" argument
#
$::opt_rev = "";
$::opt_rev = $::FORM{'rev'} if defined($::FORM{'rev'} && $::FORM{'rev'} ne 'HEAD');
my $browse_revtag = 'HEAD';
$browse_revtag = $::opt_rev if ($::opt_rev =~ /[A-Za-z]/);
my $revision = '';
# Handle the "root" argument
#
my $root = $::FORM{'root'};
if (defined $root && $root ne '') {
$root =~ s|/$||;
validateRepository($root);
if (-d $root) {
unshift(@src_roots, $root);
} else {
&print_top;
print "Error: Root, $root, is not a directory.<BR><BR>\n";
print "</BODY></HTML>\n";
&print_bottom;
exit;
}
}
# Find the rcs file
#
my $rcs_filename;
foreach (@src_roots) {
$root = $_;
$rcs_filename = "$root/$filename,v";
$rcs_filename = Fix_BonsaiLink($rcs_filename);
goto found_file if -r $rcs_filename;
$rcs_filename = "$root/${file_head}Attic/$file_tail,v";
goto found_file if -r $rcs_filename;
}
# File not found
&print_top;
print "Rcs file, $filename, does not exist.<BR><BR>\n";
print "</BODY></HTML>\n";
&print_bottom;
exit;
found_file:
my $rcs_path;
($rcs_path) = $rcs_filename =~ m@$root/(.*)/.+?,v@;
# Parse the rcs file ($::opt_rev is passed as a global)
#
$revision = &parse_cvs_file($rcs_filename);
my $file_rev = $revision;
# Handle the "mark" argument
#
my %mark;
my $mark_arg = '';
$mark_arg = $::FORM{'mark'} if defined($::FORM{'mark'});
foreach my $rev (split(',',$mark_arg)) {
$mark{$rev} = 1;
}
# Handle the "author" argument
#
my %use_author;
my $author_arg = '';
$author_arg = $::FORM{'author'} if defined($::FORM{'author'});
foreach my $author (split(',',$author_arg)) {
$use_author{$author} = 1;
}
# Handle the "sort" argument
my $opt_sort = '';
$opt_sort = $::FORM{'sort'} if defined $::FORM{'sort'};
# Start printing out the page
#
&print_top;
print Param('bannerhtml', 1);
# Print link at top for directory browsing
#
print q(
<TABLE BORDER=0 CELLPADDING=5 CELLSPACING=0 WIDTH="100%">
<TR>
<TD ALIGN=LEFT VALIGN=CENTER>
<NOBR><FONT SIZE="+2"><B>
CVS Log
</B></FONT></NOBR>
<BR><B>
);
my $link_path;
my $lxr_path;
foreach my $path (split('/',$rcs_path)) {
$link_path .= url_encode2($path).'/';
$lxr_path = Fix_LxrLink($link_path);
print "<A HREF='$lxr_path'>$path</a>/ ";
}
$lxr_path = Fix_LxrLink("$link_path$file_tail");
print "<A HREF='$lxr_path'>$file_tail</a> ";
print " (";
print "$browse_revtag:" unless $browse_revtag eq 'HEAD';
print $revision if $revision;
print ")";
print qq(
</B>
</TD>
<TD ALIGN=RIGHT VALIGN=TOP WIDTH="1%">
<TABLE BORDER CELLPADDING=10 CELLSPACING=0>
<TR>
<TD NOWRAP BGCOLOR="#FAFAFA">
<TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0>
<TR>
<TD>
<A HREF="$lxr_path">lxr</A>
</TD><TD NOWRAP>
Browse the source code as hypertext.
</TD>
</TR><TR>
<TD>
<A HREF="cvsview2.cgi?command=DIRECTORY&subdir=$rcs_path&files=$file_tail">diff</A>
</TD><TD NOWRAP>
Compare any two version.
</TD>
</TR><TR>
<TD>
<A HREF="cvsblame.cgi?file=$filename">blame</A>&nbsp;
</TD><TD NOWRAP>
Annotate the author of each line.
</TD>
</TR>
</TABLE>
</TD>
</TR>
</TABLE>
</TD>
</TR>
</TABLE>
);
#&print_useful_links($filename);
# Create a table with header links to sort by column.
#
my $table_tag = "<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=3 WIDTH='100%'>";
my $table_header_tag = "";
if ($opt_sort eq 'author') {
$table_header_tag .= "<TH ALIGN=LEFT><A HREF='cvslog.cgi?file=$filename&root=$root&rev=$browse_revtag&sort=revision&author=$author_arg'>Rev</A><TH ALIGN=LEFT>Author<TH ALIGN=LEFT><A HREF='cvslog.cgi?file=$filename&root=$root&rev=$browse_revtag&sort=date&author=$author_arg'>Date</A><TH><TH ALIGN=LEFT>Log";
} else {
$table_header_tag .= "<TH ALIGN=LEFT>Rev<TH ALIGN=LEFT><A HREF='cvslog.cgi?file=$filename&root=$root&rev=$browse_revtag&sort=author&author=$author_arg'>Author</A><TH ALIGN=LEFT>Date<TH><TH ALIGN=LEFT>Log";
}
$table_header_tag = &url_encode3($table_header_tag);
print "$table_tag$table_header_tag";
# Print each line of the revision, preceded by its annotation.
#
my $start_rev;
if ($browse_revtag eq 'HEAD') {
$start_rev = $::head_revision; # $::head_revision is a global from cvsblame.pl
} else {
$start_rev = map_tag_to_revision($browse_revtag);
}
my $row_count = 0;
my $max_rev_length = length($start_rev);
my $max_author_length = 8;
my @revisions = ($start_rev, ancestor_revisions($start_rev));
@revisions = sort by_author @revisions if $opt_sort eq 'author';
#@revisions = sort by_author @revisions if $opt_sort eq 'date' && $rev eq 'all';
my $bgcolor;
foreach $revision (@revisions)
{
my $author = $::revision_author{$revision};
next unless $author_arg eq '' || $use_author{$author};
my $log = $::revision_log{$revision};
$log =~ s/&/&amp;/g;
$log =~ s/</&lt;/g;
$log =~ s/>/&gt;/g;
$log = MarkUpText($log);
$log =~ s/\n|\r|\r\n/<BR>/g;
if (!defined $bgcolor || $bgcolor eq '') {
#$bgcolor = ' BGCOLOR="#EEEEEE"';# My browser translates this to white.
$bgcolor = ' BGCOLOR="#E7E7E7"'; # Pick a grey that shows up on 8-bit.
} else {
$bgcolor = '';
}
my $output = '';
$row_count++;
if ($row_count > 20) {
$output .= "</TABLE>\n$table_tag";
$row_count = 0;
}
$output .= "<TR$bgcolor VALIGN=TOP><TD>"
."<A NAME=$revision>";
my $anchor = "<A HREF=cvsview2.cgi";
if (defined($::prev_revision{$revision})) {
$anchor .= "?diff_mode=context&whitespace_mode=show&file=$file_tail"
."&root=$root&subdir=$rcs_path&command=DIFF_FRAMESET"
."&rev1=$::prev_revision{$revision}&rev2=$revision";
} else {
$anchor .= "?files=$file_tail"
."&root=$root&subdir=$rcs_path\&command=DIRECTORY\&rev2=$revision";
$anchor .= "&branch=$browse_revtag" unless $browse_revtag eq 'HEAD';
}
$anchor = &url_encode3($anchor);
$output .= $anchor;
$output .= ">$revision</A>"
.'&nbsp' x ($max_rev_length - length($revision)).'</TD>';
$output .= "<TD>".$author
.'&nbsp' x ($max_author_length - length($author)).'</TD>';
my $rev_time = $::revision_ctime{$revision};
# $rev_time =~ s/(19\d\d) (.\d:\d\d)/$1<BR><FONT SIZE=-2>$2<\/FONT>/;
# jwz: print the date the way "ls" does.
#
# What ls does is actually: print "Mmm DD HH:MM" unless the file is
# more than six months old, or more than 1 hour in the future, in
# which case, print "Mmm DD YYYY".
#
# What the following does is: "Mmm DD HH:MM" unless the year is not
# the current year; else print "Mmm DD YYYY".
#
# If we had $rev_time as an actual time_t instead of as a string,
# it would be easy to do the "ls" thing (see the code I wrote for
# this in "lxr/source"). -jwz, 15-Jun-98.
#
{
my $current_time = time;
my @t = gmtime($current_time);
my ($csec, $cmin, $chour, $cmday, $cmon, $cyear) = @t;
$cyear += 1900;
$_ = $rev_time;
my ($rday, $rmon, $ryear, $rhour, $rmin) =
m/([0-9]+) ([A-Z][a-z]+) ([0-9][0-9]+) +([0-9]+):([0-9]+)/;
$rmon =~ s/^(...).*$/$1/;
if (!$rday) {
# parse error -- be annoying so somebody complains.
$rev_time = "<BLINK>\"$rev_time\"</BLINK>";
} elsif ($cyear ne $ryear) {
$rev_time = sprintf("%s %2d %04d", $rmon, $rday, $ryear);
} else {
$rev_time = sprintf("%s %2d %02d:%02d",
$rmon, $rday, $rhour, $rmin);
}
$rev_time = "<FONT SIZE=\"-1\">$rev_time</FONT>";
}
$output .= "<TD NOWRAP ALIGN=RIGHT>$rev_time</TD>";
$output .= "<TD>&nbsp;</TD><TD WIDTH=99%>$log</TD>";
$output .= "</TR>\n";
print $output;
}
print "</TABLE>";
&print_bottom;
## END of main script
sub by_revision {
my (@a_parts) = split(/\./,$a);
my (@b_parts) = split(/\./,$b);
while(1) {
my ($aa) = shift @a_parts;
my ($bb) = shift @b_parts;
return 1 if $aa eq '';
return -1 if $bb eq '';
return $bb <=> $aa if $aa ne $bb;
}
}
sub by_author {
my ($a_author) = $::revision_author{$a};
my ($b_author) = $::revision_author{$b};
return $a_author cmp $b_author if $a_author ne $b_author;
return by_revision;
}
sub revision_pad {
my ($revision) = @_;
return '&nbsp' x ($max_rev_length - length($revision));
}
sub sprint_author {
my ($revision) = @_;
my ($author) = $::revision_author{$revision};
return
}
sub print_top {
my ($title_text) = "for $file_tail (";
$title_text .= "$browse_revtag:" unless $browse_revtag eq 'HEAD';
$title_text .= $revision if $revision;
$title_text .= ")";
$title_text =~ s/\(\)//;
print <<__TOP__;
<HTML>
<HEAD>
<TITLE>CVS Log $title_text</TITLE>
</HEAD>
<BODY BGCOLOR=WHITE TEXT=BLACK>
__TOP__
} # print_top
sub print_usage {
my ($linenum_message) = '';
my ($new_linenum, $src_roots_list);
my ($title_text) = "Usage";
$src_roots_list = join('<BR>', @src_roots);
print <<__USAGE__;
<HTML>
<HEAD>
<TITLE>CVS Log $title_text</TITLE>
</HEAD><BODY>
<H2>CVS Log Usage</H2>
Add parameters to the query string to view a file.
<P>
<TABLE BORDER CELLPADDING=3>
<TR ALIGN=LEFT>
<TH>Param</TH>
<TH>Default</TH>
<TH>Example</TH>
<TH>Description</TH>
</TR><TR>
<TD>file</TD>
<TD>--</TD>
<TD>ns/cmd/Makefile</TD>
<TD>Path to file name</TD>
</TR><TR>
<TD>root</TD>
<TD>$src_roots_list</TD>
<TD>/warp/webroot</TD>
<TD>CVS root</TD>
</TR><TR>
<TD>rev</TD>
<TD>HEAD</TD>
<TD>1.3
<BR>ACTRA_branch</TD>
<TD>Revision</TD>
</TR><TR>
<TD>author</TD>
<TD>--</TD>
<TD>slamm,mtoy</TD>
<TD>Filter out these authors</TD>
</TR>
</TR><TR>
<TD>#&lt;rev_number&gt;</TD>
<TD>--</TD>
<TD>#1.2</TD>
<TD>Jump to a revision</TD>
</TR>
</TABLE>
<P>Examples:
<TABLE><TR><TD>&nbsp;</TD><TD>
<A HREF="cvslog.cgi?file=ns/cmd/Makefile">
cvslog.cgi?file=ns/cmd/Makefile</A>
</TD></TR><TR><TD>&nbsp;</TD><TD>
<A HREF="cvslog.cgi?file=ns/cmd/xfe/mozilla.c&rev=Dogbert4xEscalation_BRANCH">
cvslog.cgi?file=ns/cmd/xfe/mozilla.c&amp;rev=Dogbert4xEscalation_BRANCH</A>
</TD></TR><TR><TD>&nbsp;</TD><TD>
<A HREF="cvslog.cgi?file=projects/bonsai/cvslog.cgi&root=/warp/webroot">
cvslog.cgi?file=projects/bonsai/cvslog.cgi&root=/warp/webroot</A>
</TD></TR><TR><TD>&nbsp;</TD><TD>
<A HREF="cvslog.cgi?file=ns/cmd/xfe/dialogs.c#1.19">
cvslog.cgi?file=ns/cmd/xfe/dialogs.c#1.19</A>
</TD></TR></TABLE>
<P>
You may also begin a query with the <A HREF="cvsqueryform.cgi">CVS Query Form</A>.
</P>
__USAGE__
&print_bottom;
} # sub print_usage
sub print_bottom {
my $maintainer = Param('maintainer');
print <<__BOTTOM__;
<HR WIDTH="100%">
<FONT SIZE=-1>
<A HREF="cvslog.cgi">Page configuration and help</A>.
Mail feedback to <A HREF="mailto:$maintainer?subject=About the cvslog script">&lt;$maintainer&gt;</A>.
</FONT></BODY>
</HTML>
__BOTTOM__
} # print_bottom
sub print_useful_links {
my ($path) = @_;
my ($dir, $file) = $path =~ m@(.*/)?(.+)@;
$dir =~ s@/$@@;
my $diff_base = "cvsview2.cgi";
my $blame_base = "cvsblame.cgi";
my $lxr_path = $path;
my $lxr_link = Fix_LxrLink($lxr_path);
my $diff_link = "$diff_base?command=DIRECTORY\&subdir=$dir\&files=$file";
my $blame_link = "$blame_base?root=$::CVS_ROOT\&file=$path";
print "<DIV ALIGN=RIGHT>
<TABLE BORDER CELLPADDING=10 CELLSPACING=0>
<TR>
<TD>
<TABLE BORDER=0 CELLPADDING=1 CELLSPACING=0>
<TR>
<TD VALIGN=TOP ALIGN=RIGHT><A HREF=\"$lxr_link\"><B>lxr:</B></A> </TD>
<TD>browse the source code as hypertext.</TD>
</TR>
<TR>
<TD VALIGN=TOP ALIGN=RIGHT><A HREF=\"$diff_link\"><B>diff:</B></A> </TD>
<TD>compare any two versions.</TD>
</TR>
<TR>
<TD VALIGN=TOP ALIGN=RIGHT><A HREF=\"$blame_link\"><B>blame:</B></A> </TD>
<TD>annotate the author of each line.</TD>
</TR>
</TABLE>
</TD>
</TR>
</TABLE>
</DIV>
";
}

View File

@@ -1,64 +0,0 @@
# -*- Mode: perl; indent-tabs-mode: nil -*-
#
# 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 the Bonsai CVS tool.
#
# 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.
1;
require 'utils.pl';
sub cvsmenu {
my($extra) = @_;
loadConfigData();
print "
<table border=1 bgcolor=#ffffcc $extra><tr><th>Menu</tr><tr><td>
<p><dl>";
my $pass;
my $i;
foreach $pass ("cvsqueryform|Query",
"rview|Browse",
"moduleanalyse|Examine Modules") {
($page, $title) = split(/\|/, $pass);
print "<b>$title</b><br><ul>\n";
foreach $i (@treelist) {
my $branch = $treeinfo{$i}->{'branch'};
if ($branch ne "") {
$branch = "&branch=" . $branch;
}
$desc = $treeinfo{$i}->{'shortdesc'};
if ($desc eq "") {
$desc = $treeinfo{$i}->{'description'};
}
print "<li><a href=$page.cgi?cvsroot=$treeinfo{$i}->{'repository'}&module=$treeinfo{$i}->{'module'}$branch>$desc</a>\n";
};
print "</ul>\n";
};
if (open(EXTRA, "<data/cvsmenuextra")) {
while (<EXTRA>) {
print $_;
}
close EXTRA;
}
print "</dl>
<p></tr><tr><td><font size=-1> Questions, Comments, Feature requests? mail <a href=mailto:terry\@netscape.com>terry</a>
</tr></table>
";
}

View File

@@ -1,652 +0,0 @@
#!/usr/bonsaitools/bin/perl -w
# -*- Mode: perl; indent-tabs-mode: nil -*-
#
# 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 the Bonsai CVS tool.
#
# 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.
use diagnostics;
use strict;
# Shut up misguided -w warnings about "used only once". "use vars" just
# doesn't work for me.
sub sillyness {
my $zz;
$zz = $::CI_BRANCH;
$zz = $::CI_REPOSITORY;
$zz = $::lines_added;
$zz = $::lines_removed;
$zz = $::query_begin_tag;
$zz = $::query_branchtype;
$zz = $::query_date_max;
$zz = $::query_debug;
$zz = $::query_end_tag;
$zz = $::query_filetype;
$zz = $::query_logexpr;
$zz = $::query_whotype;
}
require 'CGI.pl';
$::CVS_ROOT = $::FORM{'cvsroot'};
$::CVS_ROOT = pickDefaultRepository() unless $::CVS_ROOT;
$::TreeID = $::FORM{'module'}
if (!exists($::FORM{'treeid'}) &&
exists($::FORM{'module'}) &&
exists($::TreeInfo{$::FORM{'module'}}{'repository'}));
$::TreeID = 'default'
if (!exists($::TreeInfo{$::TreeID}{'repository'}) ||
exists($::TreeInfo{$::TreeID}{'nobonsai'}));
LoadTreeConfig();
require 'cvsquery.pl';
my $userdomain = Param('userdomain');
$| = 1;
my $sm_font_tag = "<font face='Arial,Helvetica' size=-2>";
my $generateBackoutCVSCommands = 0;
if (defined $::FORM{'generateBackoutCVSCommands'}) {
$generateBackoutCVSCommands = 1;
}
if (!$generateBackoutCVSCommands) {
print "Content-type: text/html
";
print setup_script();
}
#print "<pre>";
my $CVS_REPOS_SUFIX = $::CVS_ROOT;
$CVS_REPOS_SUFIX =~ s/\//_/g;
my $CHECKIN_DATA_FILE = "data/checkinlog${CVS_REPOS_SUFIX}";
my $CHECKIN_INDEX_FILE = "data/index${CVS_REPOS_SUFIX}";
my $SORT_HEAD="bgcolor=\"#DDDDDD\"";
#
# Log the query
Log("Query [$ENV{'REMOTE_ADDR'}]: $ENV{'QUERY_STRING'}");
#
# build a module map
#
$::query_module = $::FORM{'module'};
#
# allow ?file=/a/b/c/foo.c to be synonymous with ?dir=/a/b/c&file=foo.c
#
$::FORM{'file'} = "" unless defined $::FORM{'file'};
unless ($::FORM{'dir'}) {
$::FORM{'file'} = Fix_BonsaiLink($::FORM{'file'});
if ($::FORM{'file'} =~ m@(.*?/)([^/]*)$@) {
$::FORM{'dir'} = $1;
$::FORM{'file'} = $2;
} else {
$::FORM{'dir'} = "";
}
}
#
# build a directory map
#
@::query_dirs = split(/[;, \t]+/, $::FORM{'dir'});
$::query_file = $::FORM{'file'};
$::query_filetype = $::FORM{'filetype'};
$::query_logexpr = $::FORM{'logexpr'};
#
# date
#
$::query_date_type = $::FORM{'date'};
if( $::query_date_type eq 'hours' ){
$::query_date_min = time - $::FORM{'hours'}*60*60;
}
elsif( $::query_date_type eq 'day' ){
$::query_date_min = time - 24*60*60;
}
elsif( $::query_date_type eq 'week' ){
$::query_date_min = time - 7*24*60*60;
}
elsif( $::query_date_type eq 'month' ){
$::query_date_min = time - 30*24*60*60;
}
elsif( $::query_date_type eq 'all' ){
$::query_date_min = 0;
}
elsif( $::query_date_type eq 'explicit' ){
if ($::FORM{'mindate'}) {
$::query_date_min = parse_date($::FORM{'mindate'});
}
if ($::FORM{'maxdate'}) {
$::query_date_max = parse_date($::FORM{'maxdate'});
}
}
else {
$::query_date_min = time-60*60*2;
}
#
# who
#
$::query_who = $::FORM{'who'};
$::query_whotype = $::FORM{'whotype'};
my $show_raw = 0;
if ($::FORM{'raw'}) {
$show_raw = 1;
}
#
# branch
#
$::query_branch = $::FORM{'branch'};
if (!defined $::query_branch) {
$::query_branch = 'HEAD';
}
$::query_branchtype = $::FORM{'branchtype'};
#
# tags
#
$::query_begin_tag = $::FORM{'begin_tag'};
$::query_end_tag = $::FORM{'end_tag'};
#
# Get the query in english and print it.
#
my ($t, $e);
$t = $e = &query_to_english;
$t =~ s/<[^>]*>//g;
$::query_debug = $::FORM{'debug'};
my %mod_map = ();
my $result= &query_checkins( %mod_map );
my %w;
for my $i (@{$result}) {
$w{"$i->[$::CI_WHO]\@$userdomain"} = 1;
}
my @p = sort keys %w;
my $pCount = @p;
my $s = join(",%20", @p);
$e =~ s/Checkins in/In/;
my $menu = "
<p align=center>$e
<p align=left>
<a href=cvsqueryform.cgi?$ENV{QUERY_STRING}>Modify Query</a>
<br><a href=mailto:$s>Mail everyone on this page</a>
<NOBR>($pCount people)</NOBR>
<br><a href=cvsquery.cgi?$ENV{QUERY_STRING}&generateBackoutCVSCommands=1>Show commands which could be used to back out these changes</a>
";
if (defined $::FORM{'generateBackoutCVSCommands'}) {
print "Content-type: text/plain
# This page can be saved as a shell script and executed. It should be
# run at the top of your CVS work area. It will update your workarea to
# backout the changes selected by your query.
";
foreach my $ci (@{$result}) {
if ($ci->[$::CI_REV] eq "") {
print "echo 'Changes made to $ci->[$::CI_DIR]/$ci->[$::CI_FILE] need to be backed out by hand'\n";
next;
}
my $prev_revision = PrevRev($ci->[$::CI_REV]);
print "cvs update -j$ci->[$::CI_REV] -j$prev_revision $ci->[$::CI_DIR]/$ci->[$::CI_FILE]\n";
}
exit;
}
PutsHeader($t, "CVS Checkins", "$menu");
#
# Test code to print the results
#
$|=1;
my $head_who = '';
my $head_file = '';
my $head_directory = '';
my $head_delta = '';
my $head_date = '';
if( !$show_raw ) {
$::FORM{"sortby"} ||= "";
if( $::FORM{"sortby"} eq "Who" ){
$result = [sort {
$a->[$::CI_WHO] cmp $b->[$::CI_WHO]
|| $b->[$::CI_DATE] <=> $a->[$::CI_DATE]
} @{$result}] ;
$head_who = $SORT_HEAD;
}
elsif( $::FORM{"sortby"} eq "File" ){
$result = [sort {
$a->[$::CI_FILE] cmp $b->[$::CI_FILE]
|| $b->[$::CI_DATE] <=> $a->[$::CI_DATE]
|| $a->[$::CI_DIRECTORY] cmp $b->[$::CI_DIRECTORY]
} @{$result}] ;
$head_file = $SORT_HEAD;
}
elsif( $::FORM{"sortby"} eq "Directory" ){
$result = [sort {
$a->[$::CI_DIRECTORY] cmp $b->[$::CI_DIRECTORY]
|| $a->[$::CI_FILE] cmp $b->[$::CI_FILE]
|| $b->[$::CI_DATE] <=> $a->[$::CI_DATE]
} @{$result}] ;
$head_directory = $SORT_HEAD;
}
elsif( $::FORM{"sortby"} eq "Change Size" ){
$result = [sort {
($b->[$::CI_LINES_ADDED]- $b->[$::CI_LINES_REMOVED])
<=> ($a->[$::CI_LINES_ADDED]- $a->[$::CI_LINES_REMOVED])
#|| $b->[$::CI_DATE] <=> $a->[$::CI_DATE]
} @{$result}] ;
$head_delta = $SORT_HEAD;
}
else{
$result = [sort {$b->[$::CI_DATE] <=> $a->[$::CI_DATE]} @{$result}] ;
$head_date = $SORT_HEAD;
}
&print_result($result);
}
else {
print "<pre>";
for my $ci (@$result) {
$ci->[$::CI_LOG] = '';
$s = join("|",@$ci);
print "$s\n";
}
}
#
#
#
sub print_result {
my ($result) = @_;
my ($ci,$i,$k,$j,$max, $l, $span);
&print_head;
$i = 20;
$k = 0;
$max = @{$result};
while( $k < $max ){
$ci = $result->[$k];
$span = 1;
if( ($l = $ci->[$::CI_LOG]) ne '' ){
#
# Calculate the number of consequitive logs that are
# the same and nuke them
#
$j = $k+1;
while( $j < $max && $result->[$j]->[$::CI_LOG] eq $l ){
$result->[$j]->[$::CI_LOG] = '';
$j++;
}
#
# Make sure we don't break over a description block
#
$span = $j-$k;
if( $span-1 > $i ){
$i = $j-$k;
}
}
&print_ci( $ci, $span );
if( $i <= 0 ){
$i = 20;
print "</TABLE><TABLE border cellspacing=2>\n";
}
else {
$i--;
}
$k++;
}
&print_foot;
}
my $descwidth;
sub print_ci {
my ($ci, $span) = @_;
my ($sec,$minute,$hour,$mday,$mon,$year) = localtime( $ci->[$::CI_DATE] );
my $t = sprintf("%02d/%02d/%04d&nbsp;%02d:%02d",$mon+1,$mday,$year+1900,$hour,$minute);
my $log = &html_log($ci->[$::CI_LOG]);
my $rev = $ci->[$::CI_REV];
print "<tr>\n";
print "<TD width=2%>${sm_font_tag}$t</font>";
print "<TD width=2%><a href='../registry/who.cgi?email=$ci->[$::CI_WHO]' "
. "onClick=\"return js_who_menu('$ci->[$::CI_WHO]','',event);\" >"
. "$ci->[$::CI_WHO]</a>\n";
print "<TD width=45%><a href='cvsview2.cgi?subdir=$ci->[$::CI_DIR]&files=$ci->[$::CI_FILE]\&command=DIRECTORY&branch=$::query_branch&root=$::CVS_ROOT'\n"
. " onclick=\"return js_file_menu('$::CVS_ROOT', '$ci->[$::CI_DIR]','$ci->[$::CI_FILE]','$ci->[$::CI_REV]','$::query_branch',event)\">\n";
# if( (length $ci->[$::CI_FILE]) + (length $ci->[$::CI_DIR]) > 30 ){
# $d = $ci->[$::CI_DIR];
# if( (length $ci->[$::CI_DIR]) > 30 ){
# $d =~ s/([^\n]*\/)(classes\/)/$1classes\/<br>&nbsp;&nbsp/;
# # Insert a <BR> before any directory named
# # 'classes.'
# }
# print " $d/<br>&nbsp;&nbsp;$ci->[$::CI_FILE]<a>\n";
# }
# else{
# print " $ci->[$::CI_DIR]/$ci->[$::CI_FILE]<a>\n";
# }
my $d = "$ci->[$::CI_DIR]/$ci->[$::CI_FILE]";
if (defined $::query_module && $::query_module eq 'allrepositories') {
$d = "$ci->[$::CI_REPOSITORY]/$d";
}
$d =~ s:/:/ :g; # Insert a whitespace after any slash, so that
# we'll break long names at a reasonable place.
print "$d\n";
if( $rev ne '' ){
my $prevrev = &PrevRev( $rev );
print "<TD width=2%>${sm_font_tag}<a href='cvsview2.cgi?diff_mode=".
"context\&whitespace_mode=show\&subdir=".
$ci->[$::CI_DIR] . "\&command=DIFF_FRAMESET\&file=" .
$ci->[$::CI_FILE] . "\&rev1=$prevrev&rev2=$rev&root=$::CVS_ROOT'>$rev</a></font>\n";
}
else {
print "<TD width=2%>\&nbsp;\n";
}
if( !$::query_branch_head ){
print "<TD width=2%><TT><FONT SIZE=-1>$ci->[$::CI_BRANCH]&nbsp</FONT></TT>\n";
}
print "<TD width=2%>${sm_font_tag}$ci->[$::CI_LINES_ADDED]/$ci->[$::CI_LINES_REMOVED]</font>&nbsp\n";
if( $log ne '' ){
$log = MarkUpText($log);
# Makes numbers into links to bugsplat.
$log =~ s/\n/<BR>/g;
# Makes newlines into <BR>'s
if( $span > 1 ){
print "<TD WIDTH=$descwidth% VALIGN=TOP ROWSPAN=$span>$log\n";
}
else {
print "<TD WIDTH=$descwidth% VALIGN=TOP>$log\n";
}
}
print "</tr>\n";
}
sub print_head {
if ($::versioninfo) {
print "<FORM action='multidiff.cgi' method=post>";
print "<INPUT TYPE='HIDDEN' name='allchanges' value = '$::versioninfo'>";
print "<INPUT TYPE='HIDDEN' name='cvsroot' value = '$::CVS_ROOT'>";
print "<INPUT TYPE=SUBMIT VALUE='Show me ALL the Diffs'>";
print "</FORM>";
print "<tt>(+$::lines_added/$::lines_removed)</tt> Lines changed.";
}
my $anchor = $ENV{QUERY_STRING};
$anchor =~ s/\&sortby\=[A-Za-z\ \+]*//g;
$anchor = "<a href=cvsquery.cgi?$anchor";
print "<TABLE border cellspacing=2>\n";
print "<b><TR ALIGN=LEFT>\n";
print "<TH width=2% $head_date>$anchor>When</a>\n";
print "<TH width=2% $head_who>${anchor}&sortby=Who>Who</a>\n";
print "<TH width=45% $head_file>${anchor}&sortby=File>File</a>\n";
print "<TH width=2%>Rev\n";
$descwidth = 47;
if( !$::query_branch_head ){
print "<TH width=2%>Branch\n";
$descwidth -= 2;
}
print "<TH width=2% $head_delta>${anchor}&sortby=Change+Size>+/-</a>\n";
print "<TH WIDTH=$descwidth%>Description\n";
print "</TR></b>\n";
}
sub print_foot {
print "</TABLE>";
print "<br><br>";
}
sub html_log {
my ( $log ) = @_;
$log =~ s/&/&amp;/g;
$log =~ s/</&lt;/g;
return $log;
}
sub PrevRev {
my( $rev ) = @_;
my( $i, $j, $ret, @r );
@r = split( /\./, $rev );
$i = @r-1;
$r[$i]--;
if( $r[$i] == 0 ){
$i -= 2;
}
$j = 0;
while( $j < $i ){
$ret .= "$r[$j]\.";
$j++
}
$ret .= $r[$i];
}
sub parse_date {
my($d) = @_;
my($result) = str2time($d);
if (defined $result) {
return $result;
} elsif ($d > 7000000) {
return $d;
}
return 0;
}
sub setup_script {
my $script_str =<<'ENDJS';
<script>
var event = 0; // Nav3.0 compatibility
function js_who_menu(n,extra,d) {
if( parseInt(navigator.appVersion) < 4 ||
navigator.userAgent.toLowerCase().indexOf("msie") != -1 ){
return true;
}
l = document.layers['popup'];
l.src="../registry/who.cgi?email="+n+extra;
if(d.target.y > window.innerHeight + window.pageYOffset - l.clip.height) {
l.top = (window.innerHeight + window.pageYOffset - l.clip.height);
} else {
l.top = d.target.y - 6;
}
l.left = d.target.x - 6;
l.visibility="show";
return false;
}
function js_file_menu(repos,dir,file,rev,branch,d) {
var fileName="";
if( parseInt(navigator.appVersion) < 4 ||
navigator.userAgent.toLowerCase().indexOf("msie") != -1 ){
return true;
}
for (var i=0;i<d.target.text.length;i++)
{
if (d.target.text.charAt(i)!=" ") {
fileName+=d.target.text.charAt(i);
}
}
l = document.layers['popup'];
l.src="../registry/file.cgi?cvsroot="+repos+"&file="+file+"&dir="+dir+"&rev="+rev+"&branch="+branch+"&linked_text="+fileName;
l.top = d.target.y - 6;
l.left = d.target.x - 6;
if( l.left + l.clipWidth > window.width ){
l.left = window.width - l.clipWidth;
}
l.visibility="show";
return false;
}
</script>
<layer name="popup" onMouseOut="this.visibility='hide';" left=0 top=0 bgcolor="#ffffff" visibility="hide">
</layer>
ENDJS
return $script_str;
}
#
# Actually do the query
#
sub query_to_english {
my $english = 'Checkins ';
$::query_module = 'all' unless defined $::query_module;
if( $::query_module eq 'allrepositories' ){
$english .= "to <i>All Repositories</i> ";
}
elsif( $::query_module ne 'all' && @::query_dirs == 0 ){
$english .= "to module <i>$::query_module</i> ";
}
elsif( $::FORM{dir} ne "" ) {
my $word = "directory";
if (@::query_dirs > 1) {
$word = "directories";
}
$english .= "to $word <i>$::FORM{dir}</i> ";
}
if ($::query_file ne "") {
if ($english ne 'Checkins ') {
$english .= "and ";
}
$english .= "to file $::query_file ";
}
if( ! ($::query_branch =~ /^[ ]*HEAD[ ]*$/i) ){
if($::query_branch eq '' ){
$english .= "on all branches ";
}
else {
$english .= "on branch <i>$::query_branch</i> ";
}
}
if( $::query_who) {
$english .= "by $::query_who ";
}
$::query_date_type = $::FORM{'date'};
if( $::query_date_type eq 'hours' ){
$english .="in the last $::FORM{hours} hours";
}
elsif( $::query_date_type eq 'day' ){
$english .="in the last day";
}
elsif( $::query_date_type eq 'week' ){
$english .="in the last week";
}
elsif( $::query_date_type eq 'month' ){
$english .="in the last month";
}
elsif( $::query_date_type eq 'all' ){
$english .="since the beginning of time";
}
elsif( $::query_date_type eq 'explicit' ){
my ($w1, $w2);
if ( $::FORM{mindate} && $::FORM{maxdate}) {
$w1 = "between";
$w2 = "and" ;
}
else {
$w1 = "since";
$w2 = "before";
}
if( $::FORM{'mindate'}){
my $dd = &parse_date($::FORM{'mindate'});
my ($sec,$minute,$hour,$mday,$mon,$year) = localtime( $dd );
my $t = sprintf("%02d/%02d/%04d&nbsp;%02d:%02d",$mon+1,$mday,$year+1900,$hour,$minute);
$english .= "$w1 <i>$t</i> ";
}
if( $::FORM{'maxdate'}){
my $dd = &parse_date($::FORM{'maxdate'});
my ($sec,$minute,$hour,$mday,$mon,$year) = localtime( $dd );
my $t = sprintf("%02d/%02d/%04d&nbsp;%02d:%02d",$mon+1,$mday,$year+1900,$hour,$minute);
$english .= "$w2 <i>$t</i> ";
}
}
return $english . ":";
}
PutsTrailer();

View File

@@ -1,432 +0,0 @@
# -*- Mode: perl; indent-tabs-mode: nil -*-
#
# 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 the Bonsai CVS tool.
#
# 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.
require 'globals.pl';
require 'get_line.pl';
use diagnostics;
use strict;
# Shut up misguided -w warnings about "used only once". "use vars" just
# doesn't work for me.
sub cvsquery_pl_sillyness {
my $zz;
$zz = $::CI_BRANCH;
$zz = $::CI_CHANGE;
$zz = $::CI_DATE;
$zz = $::CI_STICKY;
$zz = $::TreeID;
$zz = $::query_debug;
$zz = $::query_filetype;
$zz = $::versioninfo;
};
#
# Constants
#
$::CI_CHANGE=0;
$::CI_DATE=1;
$::CI_WHO=2;
$::CI_REPOSITORY=3;
$::CI_DIR=4;
$::CI_FILE=5;
$::CI_REV=6;
$::CI_STICKY=7;
$::CI_BRANCH=8;
$::CI_LINES_ADDED=9;
$::CI_LINES_REMOVED=10;
$::CI_LOG=11;
my $NOT_LOCAL = 1;
my $IS_LOCAL = 2;
chomp($::CVS_ROOT) if defined($::CVS_ROOT);
if (!defined($::CVS_ROOT) || $::CVS_ROOT eq "" ){
$::CVS_ROOT = pickDefaultRepository();
}
#global variables
$::lines_added = 0;
$::lines_removed = 0;
$::modules = {};
my $CVS_MODULES="$::CVS_ROOT/CVSROOT/modules";
open( MOD, "<$CVS_MODULES") || die "can't open ${CVS_MODULES}";
&parse_modules;
close( MOD );
1;
#
# Actually do the query
#
sub query_checkins {
my (%mod_map) = @_;
my ($ci,$result,$lastlog,$rev,$begin_tag,$end_tag);
my $have_mod_map;
$::query_module = 'all' unless defined $::query_module;
if( $::query_module ne 'all' && $::query_module ne 'allrepositories' && @::query_dirs == 0 ){
$have_mod_map = 1;
%mod_map = &get_module_map( $::query_module );
}
else {
$have_mod_map = 0;
%mod_map = ();
}
for my $i (@::query_dirs ){
$i =~ s:^/::; # Strip leading slash.
$i =~ s:/$::; # Strip trailing slash.
if( !$have_mod_map ){
%mod_map = ();
$have_mod_map = 1;
}
$mod_map{$i} = $NOT_LOCAL;
}
if( $::query_branch =~ /^[ ]*HEAD[ ]*$/i ){
$::query_branch_head = 1;
}
$begin_tag = "";
$end_tag = "";
if (defined($::query_begin_tag) && $::query_begin_tag ne '') {
$begin_tag = load_tag($::query_begin_tag);
}
if (defined($::query_end_tag) && $::query_end_tag ne '') {
$end_tag = load_tag($::query_end_tag);
}
$result = [];
ConnectToDatabase();
my $qstring = "select type, UNIX_TIMESTAMP(ci_when), people.who, repositories.repository, dirs.dir, files.file, revision, stickytag, branches.branch, addedlines, removedlines, descs.description from checkins,people,repositories,dirs,files,branches,descs where people.id=whoid and repositories.id=repositoryid and dirs.id=dirid and files.id=fileid and branches.id=branchid and descs.id=descid";
if( $::query_module ne 'allrepositories' ){
$qstring .= " and repositories.repository = '$::CVS_ROOT'";
}
if ($::query_date_min) {
my $t = formatSqlTime($::query_date_min);
$qstring .= " and ci_when >= '$t'";
}
if ($::query_date_max) {
my $t = formatSqlTime($::query_date_max);
$qstring .= " and ci_when <= '$t'";
}
if ($::query_branch_head) {
$qstring .= " and branches.branch = ''";
} elsif ($::query_branch ne '') {
my $q = SqlQuote($::query_branch);
if ($::query_branchtype eq 'regexp') {
$qstring .=
" and branches.branch regexp $q";
} elsif ($::query_branchtype eq 'notregexp') {
$qstring .=
" and not (branches.branch regexp $q) ";
} else {
$qstring .=
" and (branches.branch = $q or branches.branch = ";
$qstring .= SqlQuote("T$::query_branch") . ")";
}
}
if (defined $::query_file && $::query_file ne '') {
my $q = SqlQuote($::query_file);
if ($::query_filetype eq 'regexp') {
$qstring .= " and files.file regexp $q";
} else {
$qstring .= " and files.file = $q";
}
}
if (defined $::query_who && $::query_who ne '') {
my $q = SqlQuote($::query_who);
$::query_whotype ||= "exact";
if ($::query_whotype eq 'regexp') {
$qstring .= " and people.who regexp $q";
}
elsif ($::query_whotype eq 'notregexp') {
$qstring .= " and not (people.who regexp $q)";
} else {
$qstring .= " and people.who = $q";
}
}
if (defined($::query_logexpr) && $::query_logexpr ne '') {
my $q = SqlQuote($::query_logexpr);
$qstring .= " and descs.description regexp $q";
}
if ($::query_debug) {
print "<pre wrap> Query: $qstring\nTreeID is $::TreeID\n";
if ($have_mod_map) {
print "Dump of module map:\n";
foreach my $k (sort(keys %mod_map)) {
print value_quote("$k => $mod_map{$k}") . "\n";
}
print "\n\nDump of parsed module file:\n";
foreach my $k(sort(keys %$::modules)) {
print value_quote("$k => " .
join(",", @{$::modules->{$k}})) . "\n";
}
}
print "</pre>\n";
}
SendSQL($qstring);
$lastlog = 0;
my @row;
while (@row = FetchSQLData()) {
#print "<pre>";
$ci = [];
for (my $i=0 ; $i<=$::CI_LOG ; $i++) {
$ci->[$i] = $row[$i];
#print "$row[$i] ";
}
#print "</pre>";
my $key = "$ci->[$::CI_DIR]/$ci->[$::CI_FILE]";
if (IsHidden("$ci->[$::CI_REPOSITORY]/$key")) {
next;
}
if( $have_mod_map &&
!&in_module(\%mod_map, $ci->[$::CI_DIR], $ci->[$::CI_FILE] ) ){
next;
}
if( $begin_tag) {
$rev = $begin_tag->{$key};
print "<BR>$key begintag is $rev<BR>\n";
if ($rev == "" || rev_is_after($ci->[$::CI_REV], $rev)) {
next;
}
}
if( $end_tag) {
$rev = $end_tag->{$key};
print "<BR>$key endtag is $rev<BR>\n";
if ($rev == "" || rev_is_after($rev, $ci->[$::CI_REV])) {
next;
}
}
if (defined($::query_logexpr) &&
$::query_logexpr ne '' &&
!($ci->[$::CI_LOG] =~ /$::query_logexpr/i) ){
next;
}
push( @$result, $ci );
}
for $ci (@{$result}) {
$::lines_added += $ci->[$::CI_LINES_ADDED];
$::lines_removed += $ci->[$::CI_LINES_REMOVED];
$::versioninfo .= "$ci->[$::CI_WHO]|$ci->[$::CI_DIR]|$ci->[$::CI_FILE]|$ci->[$::CI_REV],";
}
return $result;
}
sub load_tag {
my ($tagname) = @_;
my $tagfile;
my $cvssuffix;
my $s;
my @line;
my $time;
my $cmd;
my $dir;
$cvssuffix = $::CVS_ROOT;
$cvssuffix =~ s/\//_/g;
$s = $tagname;
$s =~ s/ /\%20/g;
$s =~ s/\%/\%25/g;
$s =~ s/\//\%2f/g;
$s =~ s/\?/\%3f/g;
$s =~ s/\*/\%2a/g;
$tagfile = "data/taginfo/$cvssuffix/$s";
open(TAG, "<$tagfile") || die "Unknown tag $tagname";
my $result = {};
print "<br>parsing tag $tagname</br>\n";
while ( <TAG> ) {
chop;
@line = split(/\|/);
$time = shift @line;
$cmd = shift @line;
if ($cmd != "add") {
# We ought to be able to cope with these... XXX
next;
}
$dir = shift @line;
$dir =~ s@^$::CVS_ROOT/@@;
$dir =~ s:^\./::;
while (@line) {
my $file = shift @line;
$file = "$dir/$file";
my $version = shift @line;
$result->{$file} = $version;
print "<br>Added ($file,$version) for tag $tagname<br>\n";
}
}
return $result;
}
sub rev_is_after {
my $r1 = shift @_;
my $r2 = shift @_;
my @a = split /:/, $r1;
my @b = split /:/, $r2;
if (@b > @a) {
return 1;
}
if (@b < @a) {
return 0;
}
for (my $i=0 ; $i<@a ; $i++) {
if ($a[$i] > $b[$i]) {return 1;}
if ($a[$i] < $b[$i]) {return 0;}
}
return 0;
}
sub in_module {
my ($mod_map, $dirname, $filename ) = @_;
my ( @path );
my ( $i, $fp, $local );
#
#quick check if it is already in there.
#
if( $$mod_map{$dirname} ){
return 1;
}
@path = split(/\//, $dirname);
$fp = '';
for( $i = 0; $i < @path; $i++){
$fp .= ($fp ne '' ? '/' : '') . $path[$i];
if( $local = $$mod_map{$fp} ){
if( $local == $IS_LOCAL ){
if( $i == (@path-1) ){
return 1;
}
}
else {
# Add directories to the map as we encounter them so we go
# faster
if (!exists($$mod_map{$dirname}) ||
$$mod_map{$dirname} == 0) {
$$mod_map{$dirname} = $IS_LOCAL;
}
return 1;
}
}
}
if( $$mod_map{ $fp . '/' . $filename} ) {
return 1;
}
else {
return 0;
}
}
sub get_module_map {
my($name) = @_;
my(%mod_map);
&build_map( $name, \%mod_map );
return %mod_map;
}
sub parse_modules {
my $l;
while( $l = &get_line ){
my ($mod_name, $flag, @params) = split(/[ \t]+/,$l);
if ( $#params eq -1 ) {
@params = $flag;
$flag = "";
}
elsif( $flag eq '-d' ){
my $dummy;
($mod_name, $dummy, $dummy, @params) = split(/[ \t]+/,$l);
}
elsif( $flag ne '-a' ){
next;
}
$::modules->{$mod_name} = [@params];
}
}
sub build_map {
my ($name,$mod_map) = @_;
my ($bFound, $local);
$local = $NOT_LOCAL;
$bFound = 0;
for my $i ( @{$::modules->{$name}} ){
$bFound = 1;
if( $i eq '-l' ){
$local = $IS_LOCAL;
}
elsif( !build_map($i, $mod_map )){
$mod_map->{$i} = $local;
}
}
return $bFound;
}

View File

@@ -1,362 +0,0 @@
#!/usr/bonsaitools/bin/perl -w
# -*- Mode: perl; indent-tabs-mode: nil -*-
#
# 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 the Bonsai CVS tool.
#
# 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.
# Query the CVS database.
#
use diagnostics;
use strict;
require 'CGI.pl';
$|=1;
print "Content-type: text/html\n\n";
LoadTreeConfig();
$::CVS_ROOT = $::FORM{'cvsroot'};
$::CVS_ROOT = pickDefaultRepository() unless $::CVS_ROOT;
if (exists $::FORM{'module'}) {
if (exists($::TreeInfo{$::FORM{'module'}}{'repository'})) {
$::TreeID = $::FORM{'module'}
}
}
$::modules = {};
require 'modules.pl';
PutsHeader("Bonsai - CVS Query Form", "CVS Query Form",
"$::CVS_ROOT - $::TreeInfo{$::TreeID}{shortdesc}");
print "
<p>
<FORM METHOD=GET ACTION='cvsquery.cgi'>
<INPUT TYPE=HIDDEN NAME=treeid VALUE=$::TreeID>
<p>
<TABLE BORDER CELLPADDING=8 CELLSPACING=0>
";
#
# module selector
#
print "
<TR><TH ALIGN=RIGHT>Module:</TH>
<TD>
<SELECT name='module' size=5>
";
#
# check to see if there are multple repositories
#
my @reposList = &getRepositoryList();
my $bMultiRepos = (@reposList > 1);
#
# This code sucks, I should rewrite it to be shorter
#
my $Module = 'default';
if (!exists $::FORM{module} || $::FORM{module} eq 'all' ||
$::FORM{module} eq '') {
print "<OPTION SELECTED VALUE='all'>All Files in the Repository\n";
if( $bMultiRepos ){
print "<OPTION VALUE='allrepositories'>All Files in all Repositories\n";
}
}
elsif( $::FORM{module} eq 'allrepositories' ){
print "<OPTION VALUE='all'>All Files in the Repository\n";
if( $bMultiRepos ){
print "<OPTION SELECTED VALUE='allrepositories'>All Files in all Repositories\n";
}
}
else {
$Module = $::FORM{module};
print "<OPTION VALUE='all'>All Files in the Repository\n";
if( $bMultiRepos ){
print "<OPTION VALUE='allrepositories'>All Files in all Repositories\n";
}
print "<OPTION SELECTED VALUE='$::FORM{module}'>$::FORM{module}\n";
}
#
# Print out all the Different Modules
#
for my $k (sort( keys( %$::modules ) ) ){
print "<OPTION value='$k'>$k\n";
}
print "</SELECT></td>\n";
print "<td rowspan=2>";
cvsmenu();
print "</td></tr>";
#
# Branch
#
if( defined $::FORM{branch} ){
$b = $::FORM{branch};
}
else {
$b = "HEAD";
}
print "<tr>
<th align=right>Branch:</th>
<td> <input type=text name=branch value='$b' size=25><br>\n" .
regexpradio('branchtype') .
"<br>(leaving this field empty will show you checkins on both
<tt>HEAD</tt> and branches)
</td></tr>";
#
# Query by directory
#
$::FORM{dir} ||= "";
print "
<tr>
<th align=right>Directory:</th>
<td colspan=2>
<input type=text name=dir value='$::FORM{dir}' size=45><br>
(you can list multiple directories)
</td>
</tr>
";
$::FORM{file} ||= "";
print "
<tr>
<th align=right>File:</th>
<td colspan=2>
<input type=text name=file value='$::FORM{file}' size=45><br>" .
regexpradio('filetype') . "
</td>
</tr>
";
#
# Who
#
$::FORM{who} ||= "";
print "
<tr>
<th align=right>Who:</th>
<td colspan=2> <input type=text name=who value='$::FORM{who}' size=45><br>" .
regexpradio('whotype') . "
</td>
</tr>";
#
# Log contains
#
#print "
#<br>
#<nobr><b>Log contains:</b>
#<input type=text name=logexpr size=45></nobr>(you can use <a href=cvsregexp.html>regular expressions</a>)\n";
#
# Sort order
#
print "
<tr>
<th align=right>Sort By:</th>
<td colspan=2>
<SELECT name='sortby'>
<OPTION" . &sortTest("Date") . ">Date
<OPTION" . &sortTest("Who") . ">Who
<OPTION" . &sortTest("File") . ">File
<OPTION" . &sortTest("Change Size") . ">Change Size
</SELECT>
</td>
</tr>
";
#
# Print the date selector
#
my $startdate = fetchCachedStartDate($::CVS_ROOT);
if (!defined($::FORM{date}) || $::FORM{date} eq "") {
$::FORM{date} = "hours";
}
$::FORM{mindate} = '' unless defined($::FORM{mindate});
$::FORM{maxdate} = '' unless defined($::FORM{maxdate});
print "
<tr>
<th align=right valign=top><br>Date:</th>
<td colspan=2>
<table BORDER=0 CELLSPACING=0 CELLPADDING=0>
<tr>
<td><input type=radio name=date " . &dateTest("hours") . "></td>
<td>In the last <input type=text name=hours value=2 size=4> hours</td>
</tr><tr>
<td><input type=radio name=date " . &dateTest("day") . "></td>
<td>In the last day</td>
</tr><tr>
<td><input type=radio name=date " . &dateTest("week") . "></td>
<td>In the last week</td>
</tr><tr>
<td><input type=radio name=date " . &dateTest("month") . "></td>
<td>In the last month</td>
</tr><tr>
<td><input type=radio name=date " . &dateTest("all") . "></td>
<td>Since the beginning of time (which happens to be <TT><NOBR>$startdate</NOBR></TT> currently)</td>
</tr><tr>
<td><input type=radio name=date " . &dateTest("explicit") . "></td>
<td><table BORDER=0 CELLPADDING=0 CELLPSPACING=0>
<tr>
<TD VALIGN=TOP ALIGN=RIGHT NOWRAP>
Between <input type=text name=mindate value='$::FORM{mindate}' size=25></td>
<td valign=top rowspan=2>You can use the form
<B><TT><NOBR>mm/dd/yyyy hh:mm:ss</NOBR></TT></B> or a Unix <TT>time_t</TT>
(seconds since the Epoch.)
</td>
</tr>
<tr>
<td VALIGN=TOP ALIGN=RIGHT NOWRAP>
and <input type=text name=maxdate '$::FORM{maxdate}' size=25></td>
</tr>
</table>
</td>
</tr>
</table>
</tr>
";
print "
<tr>
<th><BR></th>
<td colspan=2>
<INPUT TYPE=HIDDEN NAME=cvsroot VALUE='$::CVS_ROOT'>
<INPUT TYPE=SUBMIT VALUE='Run Query'>
</td>
</tr>
</table>
</FORM>";
PutsTrailer();
sub sortTest {
return ""
unless (exists($::FORM{sortby}) && defined($_[0]) &&
($_[0] ne $::FORM{sortby}));
return " SELECTED";
}
refigureStartDateIfNecessary($::CVS_ROOT);
sub dateTest {
if( $_[0] eq $::FORM{date} ){
return " CHECKED value=$_[0]";
}
else {
return "value=$_[0]";
}
}
sub regexpradio {
my ($name) = @_;
my ($c1, $c2, $c3);
$c1 = $c2 = $c3 = "";
my $n = $::FORM{$name} || "";
if( $n eq 'regexp'){
$c2 = "checked";
}
elsif( $n eq 'notregexp'){
$c3 = "checked";
}
else {
$c1 = "checked";
}
return "
<input type=radio name=$name value=match $c1>Exact match
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input type=radio name=$name value=regexp $c2><a href=cvsregexp.html>Regular&nbsp;expression</a>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input type=radio name=$name value=notregexp $c3>Doesn't&nbsp;match&nbsp;<a href=cvsregexp.html>Reg&nbsp;Exp</a>";
}
my $rememberedcachedate;
sub fetchCachedStartDate {
my ($repository) = @_;
open(CACHE, "<data/cachedstartdates") || return "unknown";
while (<CACHE>) {
chop();
my($rep,$date,$cachedate) = split(/\|/);
if ($rep eq $repository) {
$rememberedcachedate = $cachedate;
return $date;
}
}
return "unknown";
}
sub refigureStartDateIfNecessary {
my ($repository) = @_;
my $now = time();
if ((defined $rememberedcachedate) &&
$now - $rememberedcachedate < 24*60*60 &&
$rememberedcachedate < $now) {
return;
}
ConnectToDatabase();
SendSQL("select min(ci_when)
from checkins,repositories
where repositories.id = repositoryid and
repository = '$::CVS_ROOT'");
my $startdate = FetchOneColumn();
if ($startdate eq "") {
$startdate = "nonexistant";
}
open(OUTCACHE, ">data/cachedstartdates.$$") || die "Can't open output date cache file";
if (open(INCACHE, "<data/cachedstartdates")) {
while (<INCACHE>) {
chop();
my($rep,$date,$cachedate) = split(/\|/);
if ($rep ne $repository) {
print OUTCACHE "$_\n";
}
}
close INCACHE;
}
print OUTCACHE "$repository|$startdate|$now\n";
close OUTCACHE;
rename "data/cachedstartdates.$$", "data/cachedstartdates";
}

View File

@@ -1,257 +0,0 @@
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Author" CONTENT="lloyd tabb">
<META NAME="GENERATOR" CONTENT="Mozilla/4.0 [en] (WinNT; I) [Netscape]">
<TITLE>Regular expressions in the cvs query tool</TITLE>
</HEAD>
<BODY>
<H1>
Description of MySQL regular expression syntax.</H1>
Regular expressions are a powerful way of specifying complex searches.
<P><B>MySQL</B> uses regular Henry Spencers inplementation of regular expressions.
And that is aimed to conform to POSIX 1003.2. <B>MySQL</B> uses the extended
version.
<P>To get more exact information see Henry Spencers regex.7 manual.
<P>This is a simplistic reference that skips the details. From here on
a regualr expressions is called a regexp.
<P>A regular expression describes a set of strings. The simplest case is
one that has no special characters in it. For example the regexp <TT>hello</TT>
matches <TT>hello</TT> and nothing else.
<P>Nontrivial regular expressions use certain special constructs so that
they can match more than one string. For example, the regexp <TT>hello|word</TT>
matches either the string <TT>hello</TT> or the string <TT>word</TT>.
<P>And a more comples example regexp <TT>B[an]*s</TT> matches any of the
strings <TT>Bananas</TT>, <TT>Baaaaas</TT>, <TT>Bs</TT> and all other string
starting with a <TT>B</TT> and continuing with any number of <TT>a</TT>
<TT>n</TT> and ending with a <TT>s</TT>.
<P>The following special characters/constructs are known.
<DL COMPACT>
<DT>
<TT>^</TT></DT>
<DD>
Start of whole string.</DD>
<PRE>mysql> select "fo\nfo" regexp "^fo$";&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -> 0
mysql> select "fofo" regexp "^fo";&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -> 1</PRE>
<DT>
<TT>$</TT></DT>
<DD>
End of whole string.</DD>
<PRE>mysql> select "fo\no" regexp "^fo\no$";&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -> 1
mysql> select "fo\no" regexp "^fo$";&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -> 0</PRE>
<DT>
<TT>.</TT></DT>
<DD>
Any character (including newline).</DD>
<PRE>mysql> select "fofo" regexp "^f.*";&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -> 1
mysql> select "fo\nfo" regexp "^f.*";&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -> 1</PRE>
<DT>
<TT>a*</TT></DT>
<DD>
Any sequence of zero or more a's.</DD>
<PRE>mysql> select "Ban" regexp "^Ba*n";&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -> 1
mysql> select "Baaan" regexp "^Ba*n";&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -> 1
mysql> select "Bn" regexp "^Ba*n";&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -> 1</PRE>
<DT>
<TT>a+</TT></DT>
<DD>
Any sequence of one or more a's.</DD>
<PRE>mysql> select "Ban" regexp "^Ba+n";&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -> 1
mysql> select "Bn" regexp "^Ba+n";&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -> 0</PRE>
<DT>
<TT>a?</TT></DT>
<DD>
Either zero or one a.</DD>
<PRE>mysql> select "Bn" regexp "^Ba?n";&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -> 1
mysql> select "Ban" regexp "^Ba?n";&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -> 1
mysql> select "Baan" regexp "^Ba?n";&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -> 0</PRE>
<DT>
<TT>de|abc</TT></DT>
<DD>
Either the sequence <TT>de</TT> or <TT>abc</TT>.</DD>
<PRE>mysql> select "pi" regexp "pi|apa";&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -> 1
mysql> select "axe" regexp "pi|apa";&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -> 0
mysql> select "apa" regexp "pi|apa";&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -> 1
mysql> select "apa" regexp "^(pi|apa)$";&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -> 1
mysql> select "pi" regexp "^(pi|apa)$";&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -> 1
mysql> select "pix" regexp "^(pi|apa)$";&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -> 0</PRE>
<DT>
<TT>(abc)*</TT></DT>
<DD>
Zero or more times the sequence <TT>abc</TT>.</DD>
<PRE>mysql> select "pi" regexp "^(pi)+$";&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -> 1
mysql> select "pip" regexp "^(pi)+$";&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -> 0
mysql> select "pipi" regexp "^(pi)+$";&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -> 1</PRE>
<DT>
<TT>{1}</TT></DT>
<DT>
<TT>{2,3}</TT></DT>
<DD>
The is a more general way of writing regexps that match many occurences.</DD>
<DL COMPACT>
<DT>
<TT>a*</TT></DT>
<DD>
Can be written as <TT>a{0,}</TT>.</DD>
<DT>
<TT>+</TT></DT>
<DD>
Can be written as <TT>a{1,}</TT>.</DD>
<DT>
<TT>?</TT></DT>
<DD>
Can be written as <TT>a{0,1}</TT>.</DD>
</DL>
To be more precice an atom followed by a bound containing one integer <TT>i</TT>
and no comma matches a sequence of exactly <TT>i</TT> matches of the atom.
An atom followed by a bound containing one integer <TT>i</TT> and a comma
matches a sequence of <TT>i</TT> or more matches of the atom. An atom followed
by a bound containing two integers <TT>i</TT> and <TT>j</TT> matches a
sequence of <TT>i</TT> through <TT>j</TT> (inclusive) matches of the atom.
Both arguments must <TT>0 >= value &lt;= RE_DUP_MAX (default 255)</TT>,
and if there are two of them, the second must be bigger or equal to the
first.
<DT>
<TT>[a-dX]</TT></DT>
<DT>
<TT>[^a-dX]</TT></DT>
<DD>
Any character which is (not if ^ is used) either <TT>a</TT>, <TT>b</TT>,
<TT>c</TT>, <TT>d</TT> or <TT>X</TT>. To include <TT>]</TT> it has to be
written first. To include <TT>-</TT> it has to be written first or last.
So <TT>[0-9]</TT> matches any decimal digit. All character that does not
have a defined mening inside a <TT>[]</TT> pair has no special meaning
and matches only itself.</DD>
<PRE>mysql> select "aXbc" regexp "[a-dXYZ]";&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -> 1
mysql> select "aXbc" regexp "^[a-dXYZ]$";&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -> 0
mysql> select "aXbc" regexp "^[a-dXYZ]+$";&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -> 1
mysql> select "aXbc" regexp "^[^a-dXYZ]+$";&nbsp;&nbsp;&nbsp;&nbsp; -> 0
mysql> select "gheis" regexp "^[^a-dXYZ]+$";&nbsp;&nbsp;&nbsp; -> 1
mysql> select "gheisa" regexp "^[^a-dXYZ]+$";&nbsp;&nbsp; -> 0</PRE>
<DT>
<TT>[[.characters.]]</TT></DT>
<DD>
The sequence of characters of that collating element. The sequence is a
single element of the bracket expression's list. A bracket expression containing
a multi-character collating element can thus match more than one character,
e.g. if the collating sequence includes a <TT>ch</TT> collating element,
then the RE <TT>[[.ch.]]*c</TT> matches the first five characters of <TT>chchcc</TT>.</DD>
<DT>
<TT>[=character-class=]</TT></DT>
<DD>
An equivalence class, standing for the sequences of characters of all collating
elements equivalent to that one, including itself. For example, if <TT>o</TT>
and <TT>(+)</TT> are the members of an equivalence class, then <TT>[[=o=]]</TT>,
<TT>[[=(+)=]]</TT>, and <TT>[o(+)]</TT> are all synonymous. An equivalence
class may not be an endpoint of a range.</DD>
<DT>
<TT>[:character_class:]</TT></DT>
<DD>
Within a bracket expression, the name of a character class enclosed in
<TT>[:</TT> and <TT>:]</TT> stands for the list of all characters belonging
to that class. Standard character class names are:</DD>
<TABLE BORDER WIDTH="100%" NOSAVE >
<TR>
<TD>alnum&nbsp;</TD>
<TD>digit&nbsp;</TD>
<TD>punct&nbsp;</TD>
</TR>
<TR>
<TD>alpha&nbsp;</TD>
<TD>graph&nbsp;</TD>
<TD>space&nbsp;</TD>
</TR>
<TR>
<TD>blank&nbsp;</TD>
<TD>lower&nbsp;</TD>
<TD>upper&nbsp;</TD>
</TR>
<TR>
<TD>cntrl&nbsp;</TD>
<TD>print&nbsp;</TD>
<TD>xdigit&nbsp;</TD>
</TR>
</TABLE>
These stand for the character classes defined in ctype(3). A locale may
provide others. A character class may not be used as an endpoint of a range.
<PRE>mysql> select "justalnums" regexp "[[:alnum:]]+";&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -> 1
mysql> select "!!" regexp "[[:alnum:]]+";&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -> 0</PRE>
<LI>
[[:&lt;:]]</LI>
<LI>
[[:>:]] These match the null string at the beginning and end of a word
respectively. A word is defined as a sequence of word characters which
is neither preceded nor followed by word characters. A word character is
an alnum character (as defined by ctype(3)) or an underscore.</LI>
<PRE>mysql> select "a word a" regexp "[[:&lt;:]]word[[:>:]]";&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -> 1
mysql> select "a xword a" regexp "[[:&lt;:]]word[[:>:]]";&nbsp;&nbsp;&nbsp;&nbsp; -> 0</PRE>
</DL>
<PRE>mysql> select "weeknights" regexp "^(wee|week)(knights|nights)$"; -> 1</PRE>
&nbsp;
</BODY>
</HTML>

File diff suppressed because it is too large Load Diff

View File

@@ -1,315 +0,0 @@
# -*- Mode: perl; indent-tabs-mode: nil -*-
#
# The contents of this file are subject to the Mozilla 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/MPL/
#
# 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 the Bonsai Bug Tracking System.
#
# 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.
#
# Contributor(s): Terry Weissman <terry@mozilla.org>
# This file defines all the parameters that we have a GUI to edit within
# Bonsai.
use diagnostics;
use strict;
sub WriteParams {
foreach my $i (@::param_list) {
if (!defined $::param{$i}) {
$::param{$i} = $::param_default{$i};
if (!defined $::param{$i}) {
die "No default parameter ever specified for $i";
}
}
}
mkdir("data", 0777);
chmod 0777, "data";
my $tmpname = "data/params.$$";
open(PARAM_FID, ">$tmpname") || die "Can't create $tmpname";
my $v = $::param{'version'};
delete $::param{'version'}; # Don't write the version number out to
# the params file.
print PARAM_FID GenerateCode('%::param');
$::param{'version'} = $v;
print PARAM_FID "1;\n";
close PARAM_FID;
rename $tmpname, "data/params" || die "Can't rename $tmpname to data/params";
chmod 0666, "data/params";
}
sub DefParam {
my ($id, $desc, $type, $default, $checker) = (@_);
push @::param_list, $id;
$::param_desc{$id} = $desc;
$::param_type{$id} = $type;
$::param_default{$id} = $default;
if (defined $checker) {
$::param_checker{$id} = $checker;
}
}
sub check_numeric {
my ($value) = (@_);
if ($value !~ /^[0-9]+$/) {
return "must be a numeric value";
}
return "";
}
sub check_urlbase {
my ($url) = (@_);
if ($url !~ m:^(http|/).*/$:) {
return "must be a legal URL, that starts with either 'http' or a slash, and ends with a slash.";
}
return "";
}
@::param_list = ();
# OK, here are the definitions themselves.
#
# The type of parameters (the third parameter to DefParam) can be one
# of the following:
#
# t -- A short text entry field (suitable for a single line)
# l -- A long text field (suitable for many lines)
# b -- A boolean value (either 1 or 0)
# i -- An integer.
# defenum -- This param defines an enum that defines a column in one of
# the database tables. The name of the parameter is of the form
# "tablename.columnname".
DefParam("maintainer",
"The email address of the person who maintains this installation of Bonsai.",
"t",
'THE MAINTAINER HAS NOT YET BEEN SET');
DefParam("userdomain",
"The default domain of the people who don't have an \@ in their email address.",
"t",
"");
DefParam("urlbase",
"The URL that is the common initial leading part of all Bonsai URLs.",
"t",
"http://www.mozilla.org/webtools/bonsai/",
\&check_urlbase);
DefParam("toplevel",
"What is the top level of bonsai called. Links to
the toplevel.cgi script will be named this.",
"t",
"hooklist");
DefParam("cvsadmin",
"The email address of the person responsible for cvs.",
"t",
'%maintainer%');
DefParam("mysqluser",
"The username of the bonsai database user.",
"t",
"nobody");
DefParam("mysqlpassword",
"The password of the bonsai database user.",
"t",
"");
DefParam("dbiparam",
"The first parameter to pass to the DBI->connect() method. This may need to be changed to be simply 'bonsai' for older versions of the perl MySQL libraries.",
"t",
"DBI:mysql:database=bonsai;");
DefParam("readonly",
"Are the hook files readonly. (This value gets changed on the fly,
so it is ok to leave the way it is.)",
"b",
0);
##
## Page configuration (look and feel)
##
DefParam("headerhtml",
"Additional HTML to add to the HEAD area of documents, eg. links to stylesheets.",
"l",
'');
DefParam("bannerhtml",
"The html that gets emitted at the head of every Bonsai page.
Anything of the form %<i>word</i>% gets replaced by the defintion of that
word (as defined on this page).",
"l",
q{<TABLE BGCOLOR="#FFFFFF" WIDTH="100%" BORDER=0 CELLPADDING=0 CELLSPACING=0>
<TR><TD><!-- insert imagery here --></TD></TR></TABLE>
<CENTER><FONT SIZE=-1>Bonsai version %version%
</FONT></CENTER>});
DefParam("blurbhtml",
"A blurb that appears as part of the header of every Bonsai page. This is a place to put brief warnings, pointers to one or two related pages, etc.",
"l",
"This is <B>Bonsai</B>: a query interface to the CVS source repository");
##
## Command addresses/locations
##
DefParam("mailrelay",
"This is the default mail relay (SMTP Server) that we use to transmit email messages.",
"t",
'localhost');
DefParam("cvscommand",
"This is the location of the CVS command.",
"t",
'/usr/bin/cvs');
DefParam("rlogcommand",
"This is the location of the rlog command.",
"t",
'/usr/bin/rlog');
DefParam("rcsdiffcommand",
"This is the location of the rcsdiff command.",
"t",
'/usr/bin/rcsdiff');
DefParam("cocommand",
"This is the location of the RCS co command.",
"t",
'/usr/bin/co');
##
## Things that we link to on the fly
##
DefParam("lxr_base",
"The URL that is the common initial leading part of all LXR URLs.",
"t",
"http://lxr.mozilla.org/",
\&check_urlbase);
DefParam("lxr_mungeregexp",
'A regexp to use to munge a pathname from the $CVSROOT into a valid LXR pathname. So, for example, if we tend to have a lot of pathnames that start with "mozilla/", and the LXR URLs should not contain that leading mozilla/, then you would use something like: s@^mozilla/@@',
"t",
"");
DefParam("bugs_base",
"The URL that is the common initial leading part of all Bugzilla URLs.",
"t",
"http://bugzilla.mozilla.org/",
\&check_urlbase);
DefParam("bugsmatch",
'Bugsmatch defines the number of consecutive digits that identify a bug to link to.',
't',
2);
DefParam("bugsystemexpr",
'Bugsystemexpr defines what to replace a number found in log
messages with. It is used to generate an HTML reference to
the bug database in the displayed text. The number of the
bug found can be inserted using the %bug_id% substition.',
"t",
'<A HREF="%bugs_base%show_bug.cgi?id=%bug_id%">%bug_id%</A>');
##
## Email Addresses that get sent messages automatically when certain
## events happen
##
DefParam("bonsai-hookinterest",
"The email address of the build team interested in the status of the hook.",
"t",
"bonsai-hookinterest");
DefParam("bonsai-daemon",
"The email address of the sender of Bonsai related mail.",
"t",
"bonsai-daemon");
DefParam("bonsai-messageinterest",
"The email address of those interested in the status of Bonsai itself.",
"t",
"bonsai-messageinterest");
DefParam("bonsai-treeinterest",
"The email address of those interested in the status of development trees.",
"t",
"bonsai-treeinterest");
DefParam("software",
"The email address list of those doing development on the trees.",
"t",
"software");
##
## LDAP configuration
##
DefParam("ldapserver",
"The address ofthe LDAP server containing name information,
leave blank if you don't have an LDAP server.",
"t",
'');
DefParam("ldapport",
"The port of the LDAP server.",
"t",
389);
##
## Other URLs
##
DefParam("tinderboxbase",
"The base URL of the tinderbox build pages. Leave blank if
you don't want to use tinderbox.",
"t",
"");
DefParam("other_ref_urls",
"A list of pointers to other documentation, displayed on main bonsai menu",
"l",
'<a href=http://www.mozilla.org/hacking/bonsai.html>Mozilla\'s Introduction to Bonsai.</a><br>');
DefParam("phonebookurl",
'A URL used to generate lookups for usernames. The following
parameters are substituted: %user_name% for the user\'s name
in bonsai; %email_name% for the user\'s email address; and
%account_name% for the user\'s account name on their email
system (ie account_name@some.domain).',
"t",
# '<a href="http://phonebook/ds/dosearch/phonebook/uid=%account_name%,ou=People,o= Netscape Communications Corp.,c=US">%user_name%</a>'
'<a href="mailto:%email_name%">%user_name%</a>'
);
1;

View File

@@ -1,166 +0,0 @@
#!/usr/bonsaitools/bin/perl -w
# -*- Mode: perl; indent-tabs-mode: nil -*-
#
# 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 the Bonsai CVS tool.
#
# 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.
use strict;
use diagnostics;
require 'CGI.pl';
require 'adminfuncs.pl';
print "Content-type: text/html\n\n";
CheckPassword(FormData('password'));
Lock();
LoadCheckins();
my $cmd = FormData('command');
if ($cmd eq 'close') {
close_tree();
} elsif ($cmd eq 'open') {
open_tree();
} elsif ($cmd eq 'tweaktimes') {
edit_tree();
} elsif ($cmd eq 'editmotd') {
edit_motd();
} elsif ($cmd eq 'changepassword') {
change_passwd();
} else {
error_screen('Invalid Command',
"<b>Invalid Command '<tt>$cmd</tt>'</b>");
}
PutsTrailer();
WriteCheckins();
Unlock();
exit 0;
sub error_screen {
my ($title, $err_str) = @_;
PutsHeader($title);
print "\n<hr>\n$err_str\n\n";
PutsTrailer();
exit 0;
}
sub close_tree {
my $sw = Param("software", 1);
my $ti = Param("bonsai-treeinterest", 1);
my $href = ConstructMailTo(EmailFromUsername($sw),
"The tree is now closed.");
AdminCloseTree(ParseTimeAndCheck(FormData('closetimestamp')));
PutsHeader("Clang!", "Clang!", "The tree is now closed.");
print "
Mail has been sent notifying \"the hook\" and anyone subscribed to $ti.<p>
$href about the closure.<p>
";
}
sub open_tree {
my $sw = Param("software", 1);
my $ti = Param("bonsai-treeinterest", 1);
my $href = ConstructMailTo(EmailFromUsername($sw),
"The tree is now open.");
AdminOpenTree(ParseTimeAndCheck(FormData('lastgood')),
exists($::FORM{'doclear'}));
PutsHeader("The floodgates are open.", "The floodgates are open.");
print "
Mail has been sent notifying \"the hook\" and anyone subscribed to $ti.<p>
$href about the new status of the tree.<p>
";
}
sub edit_tree {
$::LastGoodTimeStamp = ParseTimeAndCheck(FormData('lastgood'));
$::CloseTimeStamp = ParseTimeAndCheck(FormData('lastclose'));
PutsHeader("Let's do the time warp again...",
"Times have been tweaked.");
Log("Times tweaked: \$::LastGoodTimeStamp is " .
MyFmtClock($::LastGoodTimeStamp) .
", closetime is " .
MyFmtClock($::CloseTimeStamp));
}
sub edit_motd {
LoadMOTD();
unless (FormData('origmotd') eq $::MOTD) {
error_screen("Oops!",
"<H1>Someone else has been here!</H1>
It looks like somebody else has changed the message-of-the-day.
Terry was too lazy to implement anything beyond detecting this
condition. You'd best go start over -- go back to the top of Bonsai,
look at the current message-of-the-day, and decide if you still
want to make your edits.");
}
MailDiffs("message-of-the-day", $::MOTD, FormData('motd'));
$::MOTD = FormData('motd');
PutsHeader("New MOTD", "New MOTD",
"The Message Of The Day has been changed.");
WriteMOTD();
Log("New motd: $::MOTD");
}
sub change_passwd {
my ($outfile, $encoded);
local *PASSWD;
unless (FormData('newpassword') eq FormData('newpassword2')) {
error_screen("Oops -- Mismatch!",
"The two passwords you typed didn't match. Click <b>Back</b> and try again.");
}
if ($::FORM{'doglobal'}) {
CheckGlobalPassword($::FORM{'password'});
$outfile = 'data/passwd';
} else {
$outfile = DataDir() . '/treepasswd';
}
$encoded = trim(`./data/trapdoor $::FORM{'newpassword'}`);
unless (open(PASSWD, ">$outfile")) {
error_screen("Oops -- Couldn't write password file!",
"Couldn't open `<tt>$outfile</tt>': $!.");
}
print PASSWD "$encoded\n";
close(PASSWD);
chmod(0777, $outfile);
PutsHeader('Locksmithing complete.', 'Password Changed.',
'The new password is now in effect.');
PutsTrailer();
exit 0;
}

View File

@@ -1,94 +0,0 @@
#!/usr/bonsaitools/bin/perl -w
# -*- Mode: perl; indent-tabs-mode: nil -*-
#
# 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 the Bonsai CVS tool.
#
# 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.
use diagnostics;
use strict;
require 'CGI.pl';
print "Content-type: text/html
<HTML>";
CheckPassword($::FORM{'password'});
Lock();
LoadCheckins();
my $busted = 0;
my $info;
if (!exists $::FORM{'id'}) {
set busted 1
} else {
$info = eval("\\%" . $::FORM{'id'});
if (!exists $info->{'notes'}) {
$info->{'notes'} = "";
}
foreach my $i (sort(keys(%$info))) {
if (FormData("orig$i") ne $info->{$i}) {
$busted = 1;
last;
}
}
}
if ($busted) {
Unlock();
print "
<TITLE>Oops!</TITLE>
<H1>Someone else has been here!</H1>
It looks like somebody else has changed or deleted this checkin.
Terry was too lazy to implement anything beyond detecting this
condition. You'd best go start over -- go back to the list of
checkins, look for this checkin again, and decide if you still want to
make your edits.";
PutsTrailer();
exit();
}
if (exists $::FORM{'nukeit'}) {
Log("A checkin for $info->{person} has been nuked.");
} else {
Log("A checkin for $info->{person} has been modified.");
}
$info->{date} = ParseTimeAndCheck(FormData('datestring'));
foreach my $i ('person', 'dir', 'files', 'notes', 'treeopen', 'log') {
$info->{$i} = FormData($i);
}
if (exists $::FORM{'nukeit'}) {
my $w = lsearch(\@::CheckInList, $::FORM{'id'});
if ($w >= 0) {
splice(@::CheckInList, $w, 1);
}
}
WriteCheckins();
print "OK, the checkin has been changed.";
PutsTrailer();

View File

@@ -1,70 +0,0 @@
#!/usr/bonsaitools/bin/perl -w
# -*- Mode: perl; indent-tabs-mode: nil -*-
#
# 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 the Bonsai CVS tool.
#
# 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.
use diagnostics;
use strict;
# Shut up misguided -w warnings about "used only once". "use vars" just
# doesn't work for me.
sub sillyness {
my $zz;
$zz = $::TreeID;
$zz = $::TreeInfo;
}
require 'CGI.pl';
print "Content-type: text/html\n\n";
CheckPassword(FormData('password'));
my $Filename = FormData('msgname');
my $RealFilename = DataDir() . "/$Filename";
Lock();
my $Text = '';
$Text = `cat $RealFilename` if -f $RealFilename;
unless (FormData('origtext') eq $Text) {
PutsHeader("Oops!", "Oops!", "Someone else has been here!");
print "
It looks like somebody else has changed this message while you were editing it.
Terry was too lazy to implement anything beyond detecting this
condition. You'd best go start over -- go back to the top of Bonsai,
work your way back to editing the message, and decide if you still
want to make your edits.";
PutsTrailer();
exit 0;
}
$Text = FormData('text');
open(FILE, "> $RealFilename")
or warn "Unable to open: $RealFilename: $!\n";
print FILE $Text;
chmod(0666, $RealFilename);
close(FILE);
Log("$RealFilename set to $Text");
Unlock();
LoadTreeConfig();
PutsHeader("New $Filename", "New $Filename",
"$Filename - $::TreeInfo{$::TreeID}{shortdesc}");
print "The file <b>$Filename</b> has been changed.";
PutsTrailer();

View File

@@ -1,67 +0,0 @@
#!/usr/bonsaitools/bin/perl -w
# -*- Mode: perl; indent-tabs-mode: nil -*-
#
# The contents of this file are subject to the Mozilla 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/MPL/
#
# 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 the Bugzilla Bug Tracking System.
#
# 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.
#
# Contributor(s): Terry Weissman <terry@mozilla.org>
use diagnostics;
use strict;
require "CGI.pl";
require "defparams.pl";
# Shut up misguided -w warnings about "used only once":
use vars %::param,
%::param_default,
@::param_list;
print "Content-type: text/html\n\n";
CheckPassword(FormData('password'));
PutsHeader("Saving new parameters");
foreach my $i (@::param_list) {
# print "Processing $i...<BR>\n";
if (exists $::FORM{"reset-$i"}) {
$::FORM{$i} = $::param_default{$i};
}
$::FORM{$i} =~ s/\r\n/\n/; # Get rid of windows-style line endings.
if ($::FORM{$i} ne Param($i)) {
if (defined $::param_checker{$i}) {
my $ref = $::param_checker{$i};
my $ok = &$ref($::FORM{$i});
if ($ok ne "") {
print "New value for $i is invalid: $ok<p>\n";
print "Please hit <b>Back</b> and try again.\n";
exit;
}
}
print "Changed $i.<br>\n";
$::param{$i} = $::FORM{$i}
}
}
WriteParams();
print "OK, done.<p>\n";
print "<a href=editparams.cgi>Edit the params some more.</a><p>\n";
print "<a href=index.html>Go back to the top.</a>\n";

View File

@@ -1,79 +0,0 @@
#!/usr/bonsaitools/bin/perl -w
# -*- Mode: perl; indent-tabs-mode: nil -*-
#
# 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 the Bonsai CVS tool.
#
# 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.
use diagnostics;
use strict;
require 'CGI.pl';
print "Content-type: text/html\n\n";
Lock();
LoadWhiteboard();
my $oldvalue = FormData('origwhite');
unless ($oldvalue eq $::WhiteBoard) {
Unlock();
print "
<TITLE>Error -- pen stolen.</TITLE>
<H1>Someone else just changed the whiteboard.</H1>
Somebody else has changed what's on the whiteboard. Your changes will
stomp over theirs.
<P>
The whiteboard now reads:
<hr>
<PRE VARIABLE>$::WhiteBoard</PRE>
<hr>
If you really want to change the whiteboard to your text, click the button
below. Or maybe you want to tweak your text first. Or you can forget it and
go back to the beginning.
<FORM method=get action=\"doeditwhiteboard.cgi\">
<INPUT TYPE=HIDDEN NAME=origwhite VALUE=\"" . value_quote($::WhiteBoard). "\">
Change the free-for-all whiteboard:<br>
<TEXTAREA NAME=whiteboard ROWS=10 COLS=70>" . FormData('whiteboard') .
"</TEXTAREA><BR>
<INPUT TYPE=SUBMIT VALUE=\"Change the Whiteboard\">
</FORM>
";
PutsTrailer();
exit;
}
my $newwhiteboard = trim(FormData('whiteboard'));
MailDiffs("whiteboard", $::WhiteBoard, $newwhiteboard);
$::WhiteBoard = $newwhiteboard;
WriteWhiteboard();
Unlock();
print "<TITLE>Where's my blue marker?</TITLE>
<H1>The whiteboard has been changed.</H1>
The whiteboard now reads:
<hr>
<PRE VARIABLE>$::WhiteBoard</PRE>
";
Log("Whiteboard changed to be: $::WhiteBoard");
PutsTrailer();
exit;

View File

@@ -1,303 +0,0 @@
#! /tools/ns/bin/perl5
# -*- Mode: perl; indent-tabs-mode: nil -*-
#
# 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 the Bonsai CVS tool.
#
# 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.
# You need to put this in your CVSROOT directory, and check it in. (Change the
# first line above to point to a real live perl5.) Add "dolog.pl" to
# CVSROOT/checkoutlist, and check it in. Then, add a line to your
# CVSROOT/loginfo file that says something like:
#
# ALL $CVSROOT/CVSROOT/dolog.pl -r /cvsroot bonsai-checkin-daemon@my.bonsai.machine
#
# Replace "/cvsroot" with the name of the CVS root directory, and
# "my.bonsai.machine" with the name of the machine Bonsai runs on.
# Now, on my.bonsai.machine, add a mail alias so that mail sent to
# "bonsai-checkin-daemon" will get piped to handleCheckinMail.tcl.
# The first argument to handleCheckinMail.tcl is the directory that
# bonsai is installed in.
use Socket;
$username = $ENV{"CVS_USER"} || getlogin || (getpwuid($<))[0] || "nobody";
$envcvsroot = $ENV{'CVSROOT'};
$cvsroot = $envcvsroot;
$flag_debug = 0;
$flag_tagcmd = 0;
$repository = '';
$repository_tag = '';
$mailhost = 'localhost';
$rlogcommand = '/usr/bin/rlog';
@mailto=();
@changed_files = ();
@added_files = ();
@removed_files = ();
@log_lines = ();
@outlist = ();
$STATE_NONE = 0;
$STATE_CHANGED = 1;
$STATE_ADDED = 2;
$STATE_REMOVED = 3;
$STATE_LOG = 4;
&process_args;
if ($flag_debug ){
print STDERR "----------------------------------------------\n";
print STDERR "LOGINFO:\n";
print STDERR " pwd:" . `pwd` . "\n";
print STDERR " Args @ARGV\n";
print STDERR " CVSROOT: $cvsroot\n";
print STDERR " who: $username\n";
print STDERR " Repository: $repository\n";
print STDERR " mailto: @mailto\n";
print STDERR "----------------------------------------------\n";
}
if ($flag_tagcmd) {
&process_tag_command;
} else {
&get_loginfo;
&process_cvs_info;
}
if( $flag_debug){
print STDERR "----------------------------------------------\n";
print STDERR @outlist;
print STDERR "----------------------------------------------\n";
}
&mail_notification;
0;
sub process_args {
while (@ARGV) {
$arg = shift @ARGV;
if ($arg eq '-d') {
$flag_debug = 1;
print STDERR "Debug turned on...\n";
} elsif ($arg eq '-r') {
$cvsroot = shift @ARGV;
} elsif ($arg eq '-t') {
$flag_tagcmd = 1;
last; # Keep the rest in ARGV; they're handled later.
} elsif ($arg eq '-h') {
$mailhost = shift @ARGV;
} else {
push(@mailto, $arg);
}
}
if( $repository eq '' ){
open( REP, "<CVS/Repository");
$repository = <REP>;
chop($repository);
close(REP);
}
$repository =~ s:^$cvsroot/::;
$repository =~ s:^$envcvsroot/::;
if (!$flag_tagcmd) {
if( open( REP, "<CVS/Tag") ) {
$repository_tag = <REP>;
chop($repository_tag);
close(REP);
}
}
}
sub get_loginfo {
if( $flag_debug){
print STDERR "----------------------------------------------\n";
}
# Iterate over the body of the message collecting information.
#
while (<STDIN>) {
chop; # Drop the newline
if( $flag_debug){
print STDERR "$_\n";
}
if (/^In directory/) {
next;
}
if (/^Modified Files/) { $state = $STATE_CHANGED; next; }
if (/^Added Files/) { $state = $STATE_ADDED; next; }
if (/^Removed Files/) { $state = $STATE_REMOVED; next; }
if (/^Log Message/) { $state = $STATE_LOG; next; }
s/^[ \t\n]+//; # delete leading whitespace
s/[ \t\n]+$//; # delete trailing whitespace
if ($state == $STATE_CHANGED) { push(@changed_files, split); }
if ($state == $STATE_ADDED) { push(@added_files, split); }
if ($state == $STATE_REMOVED) { push(@removed_files, split); }
if ($state == $STATE_LOG) { push(@log_lines, $_); }
}
if( $flag_debug){
print STDERR "----------------------------------------------\n"
. "changed files: @changed_files\n"
. "added files: @added_files\n"
. "removed files: @removed_files\n";
print STDERR "----------------------------------------------\n";
}
}
sub process_cvs_info {
local($d,$fn,$rev,$mod_time,$sticky,$tag,$stat,@d,$l,$rcsfile);
if (!open(ENT, "<CVS/Entries.Log" )) {
open(ENT, "<CVS/Entries");
}
$time = time;
while( <ENT> ){
chop;
($d,$fn,$rev,$mod_time,$sticky,$tag) = split(/\//);
$stat = 'C';
for $i (@changed_files, "BEATME.NOW", @added_files ) {
if( $i eq "BEATME.NOW" ){ $stat = 'A'; }
if($i eq $fn ){
$rcsfile = "$envcvsroot/$repository/$fn,v";
if( ! -r $rcsfile ){
$rcsfile = "$envcvsroot/$repository/Attic/$fn,v";
}
open(LOG, "$rlogcommand -N -r$rev $rcsfile |")
|| print STDERR "dolog.pl: Couldn't run rlog\n";
while(<LOG>){
if (/^date:.* author: ([^;]*);.*/) {
$username = $1;
if (/lines: \+([0-9]*) -([0-9]*)/) {
$lines_added = $1;
$lines_removed = $2;
}
}
}
close( LOG );
push(@outlist, ("$stat|$time|$username|$cvsroot|$repository|$fn|$rev|$sticky|$tag|$lines_added|$lines_removed\n"));
}
}
}
close(ENT);
for $i (@removed_files) {
push( @outlist, ("R|$time|$username|$cvsroot|$repository|$i|||$repository_tag\n"));
}
push (@outlist, "LOGCOMMENT\n");
push (@outlist, join("\n",@log_lines));
push (@outlist, "\n:ENDLOGCOMMENT\n");
}
sub process_tag_command {
local($str,$part,$time);
$time = time;
$str = "Tag|$cvsroot|$time";
while (@ARGV) {
$part = shift @ARGV;
$str .= "|" . $part;
}
push (@outlist, ("$str\n"));
}
sub do_commitinfo {
}
sub get_response_code {
my ($expecting) = @_;
# if ($flag_debug) {
# print STDERR "SMTP: Waiting for code $expecting\n";
# }
while (1) {
my $line = <S>;
# if ($flag_debug) {
# print STDERR "SMTP: $line";
# }
if ($line =~ /^[0-9]*-/) {
next;
}
if ($line =~ /(^[0-9]*) /) {
my $code = $1;
if ($code == $expecting) {
# if ($flag_debug) {
# print STDERR "SMTP: got it.\n";
# }
return;
}
die "Bad response from SMTP -- $line";
}
}
}
sub mail_notification {
chop(my $hostname = `hostname`);
my ($remote,$port, $iaddr, $paddr, $proto, $line);
$remote = $mailhost;
$port = 25;
if ($port =~ /\D/) { $port = getservbyname($port, 'tcp') }
die "No port" unless $port;
$iaddr = inet_aton($remote) || die "no host: $remote";
$paddr = sockaddr_in($port, $iaddr);
$proto = getprotobyname('tcp');
socket(S, PF_INET, SOCK_STREAM, $proto) || die "socket: $!";
connect(S, $paddr) || die "connect: $!";
select(S); $| = 1; select(STDOUT);
get_response_code(220);
print S "EHLO $hostname\n";
get_response_code(250);
print S "MAIL FROM: bonsai-daemon\@$hostname\n";
get_response_code(250);
foreach $i (@mailto) {
print S "RCPT TO: $i\n";
get_response_code(250);
}
print S "DATA\n";
get_response_code(354);
# Get one line starting with "354 ".
if ($flag_tagcmd) {
print S "Subject: cvs tag in $repository\n";
} else {
print S "Subject: cvs commit to $repository\n";
}
print S "\n";
print S @outlist, "\n";
print S ".\n";
get_response_code(250);
print S "QUIT\n";
close(S);
}

View File

@@ -1,137 +0,0 @@
#!/usr/bonsaitools/bin/perl -w
# -*- Mode: perl; indent-tabs-mode: nil -*-
#
# 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 the Bonsai CVS tool.
#
# 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.
use diagnostics;
use strict;
# Shut up misguided -w warnings about "used only once". "use vars" just
# doesn't work for me.
sub sillyness {
my $zz;
$zz = $::BatchID;
}
require 'CGI.pl';
print "Content-type: text/html
<HTML>";
CheckPassword($::FORM{'password'});
Lock();
LoadCheckins();
if (!exists $::FORM{'command'}) {
$::FORM{'command'} = 'nocommand';
}
my @list;
foreach my $i (keys %::FORM) {
my $j = url_decode($i);
if ($j =~ m/^\:\:checkin_/) {
if (lsearch(\@::CheckInList, $j) >= 0) {
push(@list, $j);
}
}
}
my $origtree = $::TreeID;
my $what = "";
my $i;
SWITCH: for ($::FORM{'command'}) {
/^nuke$/ && do {
foreach $i (@list) {
my $w = lsearch(\@::CheckInList, $i);
if ($w >= 0) {
splice(@::CheckInList, $w, 1);
}
}
$what = "deleted.";
last SWITCH;
};
/^setopen$/ && do {
foreach $i (@list) {
my $info = eval("\\%" . $i);
$info->{'treeopen'} = 1;
}
$what = "modified to be open.";
last SWITCH;
};
/^setclose$/ && do {
foreach $i (@list) {
my $info = eval("\\%" . $i);
$info->{'treeopen'} = 0;
}
$what = "modified to be closed.";
last SWITCH;
};
/^movetree$/ && do {
if ($::TreeID eq $::FORM{'desttree'}) {
print "<H1>Pick a different tree</H1>\n";
print "You attempted to move checkins into the tree that\n";
print "they're already in. Hit <b>Back</b> and try again.\n";
PutsTrailer();
exit();
}
foreach $i (@list) {
my $w = lsearch(\@::CheckInList, $i);
if ($w >= 0) {
splice(@::CheckInList, $w, 1);
}
}
WriteCheckins();
undef @::CheckInList;
$::TreeID = $::FORM{'desttree'};
undef $::BatchID;
LoadCheckins();
LoadTreeConfig();
foreach $i (@list) {
push(@::CheckInList, $i);
}
$what = "moved to the $::TreeInfo{$::TreeID}->{'description'} tree.";
last SWITCH;
};
# DEFAULT
print "<h1>No command selected</h1>\n";
print "You need to select one of the radio command buttons at the\n";
print "bottom. Hit <b>Back</b> and try again.\n";
PutsTrailer();
exit();
}
WriteCheckins();
Unlock();
print "
<H1>OK, done.</H1>
The selected checkins have been $what
";
$::TreeInfo = $origtree;
PutsTrailer();

View File

@@ -1,110 +0,0 @@
#!/usr/bonsaitools/bin/perl -w
# -*- Mode: perl; indent-tabs-mode: nil -*-
#
# 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 the Bonsai CVS tool.
#
# 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.
use diagnostics;
use strict;
# Shut up misguided -w warnings about "used only once". "use vars" just
# doesn't work for me.
sub sillyness {
my $zz;
$zz = $::TreeID;
}
require 'CGI.pl';
LoadCheckins();
my $info = eval("\\%" . $::FORM{'id'});
print "Content-type: text/html
<HTML>
<TITLE>Say the magic word.</TITLE>
<H1>Edit a checkin.</H1>
Congratulations, you have found the hidden edit-a-checkin feature. Of course,
you need to know the magic word to do anything from here.
<P>
<FORM method=get action=\"doeditcheckin.cgi\">
<TABLE>
<tr>
<td align=right><B>Password:</B></td>
<td><INPUT NAME=password TYPE=password></td>
</tr><tr>
<td align=right><B>When:</B></td>
<td><INPUT NAME=datestring VALUE=\"" .
value_quote(MyFmtClock($info->{'date'})) . "\">
</td></tr>
";
if (!exists $info->{'notes'}) {
$info->{'notes'} = "";
}
foreach my $i ('person', 'dir', 'files', 'notes') {
print "<tr><td align=right><B>$i:</B></td>";
print "<td><INPUT NAME=$i VALUE=\"" . value_quote($info->{$i}) .
"\"></td></tr>";
}
sub CheckString {
my ($value) = (@_);
if ($value) {
return "CHECKED";
} else {
return "";
}
}
my $isopen = CheckString($info->{'treeopen'});
my $isclosed = CheckString(!$info->{'treeopen'});
print qq{
<tr><td align=right><b>Tree state:</b></td>
<td><INPUT TYPE=radio NAME=treeopen VALUE=1 $isopen>Open
</td></tr><tr><td></td>
<td><INPUT TYPE=radio NAME=treeopen VALUE=0 $isclosed>Closed
</td></tr><tr>
<td align=right valign=top><B>Log message:</B></td>
<td><TEXTAREA NAME=log ROWS=10 COLS=80>$info->{'log'}</TEXTAREA></td></tr>
</table>
<INPUT TYPE=CHECKBOX NAME=nukeit>Check this box to blow away this checkin entirely.<br>
<INPUT TYPE=SUBMIT VALUE=Submit>
};
foreach my $i (sort(keys(%$info))) {
my $q = value_quote($info->{$i});
print qq{<INPUT TYPE=HIDDEN NAME=orig$i VALUE="$q">\n};
}
print "<INPUT TYPE=HIDDEN NAME=id VALUE=\"$::FORM{'id'}\">";
print "<INPUT TYPE=HIDDEN NAME=treeid VALUE=\"" . value_quote($::TreeID) . "\">";
print "</TABLE></FORM>";
PutsTrailer();

View File

@@ -1,95 +0,0 @@
#!/usr/bonsaitools/bin/perl -w
# -*- Mode: perl; indent-tabs-mode: nil -*-
#
# 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 the Bonsai CVS tool.
#
# 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.
use diagnostics;
use strict;
# Shut up misguided -w warnings about "used only once". "use vars" just
# doesn't work for me.
sub sillyness {
my $zz;
$zz = $::TreeInfo;
}
require 'CGI.pl';
print "Content-type: text/html\n\n";
my $Filename = FormData('msgname');
my $RealFilename = DataDir() . "/$Filename";
my $Text = '';
$Text = `cat $RealFilename` if -f $RealFilename;
LoadTreeConfig();
PutsHeader("Message Editor", "Message Editor",
"$Filename - $::TreeInfo{$::TreeID}{shortdesc}");
print "
Below is the template for the <b>$Filename</b> message. Type the
magic word and edit at will, but be careful to not break anything,
especially around the headers.
The following magic symbols exist:
<table>
";
sub PutDoc {
my ($name, $desc) = @_;
print "\n<tr>\n<td align=right><tt><b>%$name%</b></tt></td>
<td>Replaced by the $desc</td>\n</tr>\n";
}
if (($Filename eq 'openmessage') || ($Filename eq 'closemessage')) {
PutDoc('name', "username of the person getting mail");
PutDoc('dir', "directory for this checkin");
PutDoc('files', "list of files for this checkin");
PutDoc('log', "log message for this checkin");
PutDoc('profile', "profile for this user");
} elsif (($Filename eq 'treeopened') || ($Filename eq 'treeopenedsamehook') ||
($Filename eq 'treeclosed')) {
PutDoc('hooklist', "comma-separated list of e-mail address of people on the hook");
} else {
print "</table><P><font color=red>
Uh, hey, this isn't a legal file for you to be editing here!</font>\n";
PutsTrailer();
exit 0;
}
print "
</TABLE>
<FORM method=get action=\"doeditmessage.cgi\">
<INPUT TYPE=HIDDEN NAME=treeid VALUE=$::TreeID>
<B>Password:</B> <INPUT NAME=password TYPE=password> <BR>
<INPUT TYPE=HIDDEN NAME=msgname VALUE=$Filename>
<INPUT TYPE=HIDDEN NAME=origtext VALUE=\"" . value_quote($Text) . "\">
<TEXTAREA NAME=text ROWS=40 COLS=80>$Text</TEXTAREA><BR>
<INPUT TYPE=SUBMIT VALUE=\"Change this message\">
</FORM>
";
PutsTrailer();
exit 0;

View File

@@ -1,98 +0,0 @@
#!/usr/bonsaitools/bin/perl -w
# -*- Mode: perl; indent-tabs-mode: nil -*-
#
# The contents of this file are subject to the Mozilla 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/MPL/
#
# 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 the Bugzilla Bug Tracking System.
#
# 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.
#
# Contributor(s): Terry Weissman <terry@mozilla.org>
use diagnostics;
use strict;
require "CGI.pl";
require "defparams.pl";
# Shut up misguided -w warnings about "used only once":
use vars @::param_desc,
@::param_list;
print "Content-type: text/html\n\n";
PutsHeader("Edit parameters");
print "This lets you edit the basic operating parameters of bonsai.\n";
print "Be careful!\n";
print "<p>\n";
print "Any item you check Reset on will get reset to its default value.\n";
print "<form method=post action=doeditparams.cgi><table>\n";
my $rowbreak = "<tr><td colspan=2><hr></td></tr>";
print $rowbreak;
foreach my $i (@::param_list) {
print "<tr><th align=right valign=top>$i:</th><td>$::param_desc{$i}</td></tr>\n";
print "<tr><td valign=top><input type=checkbox name=reset-$i>Reset</td><td>\n";
my $value = Param($i);
SWITCH: for ($::param_type{$i}) {
/^t$/ && do {
print "<input size=80 name=$i value=\"" .
value_quote($value) . "\">\n";
last SWITCH;
};
/^l$/ && do {
print "<textarea wrap=hard name=$i rows=10 cols=80>" .
value_quote($value) . "</textarea>\n";
last SWITCH;
};
/^b$/ && do {
my $on;
my $off;
if ($value) {
$on = "checked";
$off = "";
} else {
$on = "";
$off = "checked";
}
print "<input type=radio name=$i value=1 $on>On\n";
print "<input type=radio name=$i value=0 $off>Off\n";
last SWITCH;
};
# DEFAULT
print "<font color=red><blink>Unknown param type $::param_type{$i}!!!</blink></font>\n";
}
print "</td></tr>\n";
print $rowbreak;
}
print "<tr><th align=right valign=top>version:</th><td>
What version of Bonsai this is. This can't be modified here, but
<tt>%version%</tt> can be used as a parameter in places that understand
such parameters</td></tr>
<tr><td></td><td>" . Param('version') . "</td></tr>";
print "</table>\n";
print "<hr><B>Enter password to change parameters:</B>
<INPUT NAME=password TYPE=password> <BR>";
print "<input type=reset value=\"Reset form\"><br>\n";
print "<input type=submit value=\"Submit changes\">\n";
print "</form>\n";
print "<p><a href=toplevel.cgi>Skip all this, and go back to the main bonsai page</a>\n";

View File

@@ -1,56 +0,0 @@
#!/usr/bonsaitools/bin/perl -w
# -*- Mode: perl; indent-tabs-mode: nil -*-
#
# 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 the Bonsai CVS tool.
#
# 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.
use diagnostics;
use strict;
# Shut up misguided -w warnings about "used only once". "use vars" just
# doesn't work for me.
sub sillyness {
my $zz;
$zz = $::TreeID;
}
require 'CGI.pl';
print "Content-type: text/html\n\n";
LoadWhiteboard();
PutsHeader("Scritch, scritch.", "Edit Whiteboard");
print "
<FORM method=post action=\"doeditwhiteboard.cgi\">
<INPUT TYPE=HIDDEN NAME=treeid VALUE=$::TreeID>
<INPUT TYPE=HIDDEN NAME=origwhite VALUE=\"" . value_quote($::WhiteBoard) . "\">
The free-for-all whiteboard is a fine place to put notes of general
and temporary interest about the tree. (Like, \"I'm checking in a bunch
of nasty stuff; stay out of the tree until 3:30pm\".)
<P>
Change the free-for-all whiteboard:<br>
<TEXTAREA NAME=whiteboard ROWS=10 COLS=70>$::WhiteBoard</TEXTAREA><BR>
<INPUT TYPE=SUBMIT VALUE=\"Change the Whiteboard\">
</FORM>
";
PutsTrailer();
exit;

View File

@@ -1,60 +0,0 @@
# -*- Mode: perl; indent-tabs-mode: nil -*-
#
# 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 the Bonsai CVS tool.
#
# 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.
# Get a line, dealing with '\'. Returns 'undef' when no more lines to return;
# removes blank lines as it goes.
# Allows spaces after a '\'. This is naughty but will probably not matter
# *too* much, and I'm not changing it now.
sub get_line {
my($l, $save);
$l='';
$save='';
my $bContinue = 1;
while( $bContinue && ($l = <MOD>) ){
chop($l);
if( $l =~ /^[ \t]*\#/
|| $l =~ /^[ \t]*$/ ){
$l=''; # Starts with a "#", or is only whitespace.
}
if( $l =~ /\\[ \t]*$/ ){
# Ends with a slash, so append it to the last line.
chop ($l);
$save .= $l . ' ';
$l='';
}
elsif( $l eq '' && $save eq ''){
# ignore blank lines
}
else {
$bContinue = 0;
}
}
if(!defined($l)) {
if($save ne '') {
return $save;
} else {
return $l;
}
} else {
return $save . $l;
}
}
1;

File diff suppressed because it is too large Load Diff

View File

@@ -1,49 +0,0 @@
#!/usr/bonsaitools/bin/perl -w
# -*- Mode: perl; indent-tabs-mode: nil -*-
#
# 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 the Bonsai CVS tool.
#
# 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.
use strict;
if (($#ARGV >= 0) && (-d $ARGV[0])) {
chdir($ARGV[0]);
} else {
my $bonsaidir = $0;
$bonsaidir =~ s:/[^/]*$::; # Remove last word, and slash before it.
if ($bonsaidir eq "") {
$bonsaidir = ".";
}
chdir($bonsaidir);
}
my $filename = "data/admin.$$";
unlink($filename);
die "Cannot Open data file: $!\n"
unless (open(FILE, "> $filename"));
while (<STDIN>) {
print FILE $_;
}
close(FILE);
chmod(0666, $filename);
system("./adminmail.pl $filename");
# unlink($filename);
exit;

View File

@@ -1,49 +0,0 @@
#!/usr/bonsaitools/bin/perl -w
# -*- Mode: perl; indent-tabs-mode: nil -*-
#
# 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 the Bonsai CVS tool.
#
# 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.
use strict;
if (($#ARGV >= 0) && (-d $ARGV[0])) {
chdir($ARGV[0]);
} else {
my $bonsaidir = $0;
$bonsaidir =~ s:/[^/]*$::; # Remove last word, and slash before it.
if ($bonsaidir eq "") {
$bonsaidir = ".";
}
chdir($bonsaidir);
}
my $filename = "data/temp.$$";
unlink($filename);
die "Cannot Open data file: $!\n"
unless (open(FILE, "> $filename"));
while (<STDIN>) {
print FILE $_;
}
close(FILE);
chmod(0666, $filename);
system("./addcheckin.pl $filename");
# unlink($filename);
exit;

View File

@@ -1,61 +0,0 @@
# -*- Mode: perl; indent-tabs-mode: nil -*-
#
# 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 the Bonsai CVS tool.
#
# 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.
sub EmitHtmlTitleAndHeader {
my($doctitle,$heading,$subheading) = @_;
print "<HTML><HEAD><TITLE>$doctitle</TITLE></HEAD>";
print "<BODY BGCOLOR=\"#FFFFFF\" TEXT=\"#000000\"";
print "LINK=\"#0000EE\" VLINK=\"#551A8B\" ALINK=\"#FF0000\">";
if (open(BANNER, "<data/banner.html")) {
while (<BANNER>) { print; }
close BANNER;
} elsif (open(BANNER, "<../bonsai/data/banner.html")) {
while (<BANNER>) { print; }
close BANNER;
}
print "<TABLE BORDER=0 CELLPADDING=12 CELLSPACING=0 WIDTH=\"100%\">";
print " <TR>\n";
print " <TD>\n";
print " <TABLE BORDER=0 CELLPADDING=0 CELLSPACING=2>\n";
print " <TR><TD VALIGN=TOP ALIGN=CENTER NOWRAP>\n";
print " <FONT SIZE=\"+3\"><B><NOBR>$heading</NOBR></B></FONT>\n";
print " </TD></TR><TR><TD VALIGN=TOP ALIGN=CENTER>\n";
print " <B>$subheading</B>\n";
print " </TD></TR>\n";
print " </TABLE>\n";
print " </TD>\n";
print " <TD>\n";
if (open(BLURB, "<data/blurb")) {
while (<BLURB>) { print; }
close BLURB;
}
print "</TD></TR></TABLE>\n";
}
sub EmitHtmlHeader {
my($heading,$subheading) = @_;
EmitHtmlTitleAndHeader($heading,$heading,$subheading);
}
1;

View File

@@ -1,12 +0,0 @@
<html>
<head>
<meta http-equiv="Refresh"
content="0; URL=cvsqueryform.cgi">
</head>
<body>
Going to<br>
<br>
<a href="cvsqueryform.cgi">cvsqueryform.cgi</a>
<br>
</body>
</html>

View File

@@ -1,47 +0,0 @@
# -*- Mode: perl; indent-tabs-mode: nil -*-
#
# 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 the Bonsai CVS tool.
#
# 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.
use diagnostics;
use strict;
if( $ARGV[0] eq '' ){
$::CVS_ROOT = '/m/src';
}
else {
$::CVS_ROOT = $ARGV[0];
}
$CVS_REPOS_SUFIX = $::CVS_ROOT;
$CVS_REPOS_SUFIX =~ s/\//_/g;
my $CHECKIN_DATA_FILE = "data/checkinlog${CVS_REPOS_SUFIX}";
my $CHECKIN_INDEX_FILE = "data/index${CVS_REPOS_SUFIX}";
open(INDEX , "<$CHECKIN_INDEX_FILE");
open(CI, "<$CHECKIN_DATA_FILE") || die "could not open checkin data file\n";
while( <INDEX> ){
chop;
($o,$d) = split(/\|/);
seek(CI, $o, 0);
$line = <CI>;
($j,$d1) = split(/\|/);
print "$d|$d1\n";
}

View File

@@ -1,100 +0,0 @@
# -*- Mode: perl; indent-tabs-mode: nil -*-
#
# 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 the Bonsai CVS tool.
#
# 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.
%form = ();
&split_cgi_args;
1;
sub split_cgi_args {
local (@args, $pair, $key, $value, $s);
if ($ENV{"REQUEST_METHOD"} eq 'POST') {
$s .= $_ while (<>);
}
else {
$s = $ENV{"QUERY_STRING"};
}
$s =~ tr/+/ /;
@args= split(/\&/, $s );
for $pair (@args) {
($key, $value) = split(/=/, $pair);
$key =~ s/%([a-fA-F0-9]{2})/pack("C", hex($1))/eg;
$value =~ s/%([a-fA-F0-9]{2})/pack("C", hex($1))/eg;
$form{$key} = $value;
}
# extract the cookies from the HTTP_COOKIE environment
%cookie_jar = split('[;=] *',$ENV{'HTTP_COOKIE'});
}
sub make_cgi_args {
local($k,$v,$ret);
for $k (sort keys %form){
$ret .= ($ret eq "" ? '?' : '&');
$v = $form{$k};
$ret .= &url_encode2($k);
$ret .= '=';
$ret .= &url_encode2($v);
}
return $ret;
}
sub url_encode2 {
local( $s ) = @_;
$s =~ s/\%/\%25/g;
$s =~ s/\=/\%3d/g;
$s =~ s/\?/\%3f/g;
$s =~ s/ /\%20/g;
$s =~ s/\n/\%0a/g;
$s =~ s/\r//g;
$s =~ s/\"/\%22/g;
$s =~ s/\'/\%27/g;
$s =~ s/\|/\%7c/g;
$s =~ s/\&/\%26/g;
$s =~ s/\+/\%2b/g;
return $s;
}
sub url_encode3 {
local( $s ) = @_;
$s =~ s/\n/\%0a/g;
$s =~ s/\r//g;
$s =~ s/\"/\%22/g;
$s =~ s/\+/\%2b/g;
return $s;
}
@weekdays = ('Sun','Mon','Tue','Wed','Thu','Fri','Sat');
@months = ('Jan','Feb','Mar','Apr','May','Jun',
'Jul','Aug','Sep','Oct','Nov','Dec');
sub toGMTString {
local ($seconds) = $_[0];
local ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)
= gmtime($seconds);
$year += 1900;
sprintf('%s, %02d-%s-%d %02d:%02d:%02d GMT',
$weekdays[$wday],$mday,$months[$mon],$year,$hour,$min,$sec);
}

View File

@@ -1,167 +0,0 @@
#!/bin/sh
#
# 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 the Bonsai CVS tool.
#
# 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.
USER=nobody
PASSWORD=
if test x$PASSWORD = x ; then
MYSQL="mysql -u $USER"
else
MYSQL="mysql -u $USER -p $PASSWORD"
fi
echo
echo "Will use user=\"$USER\" and password=\"$PASSWORD\" for bonsai database."
echo "If you have a previous bonsai install, this script will drop all"
echo "bonsai tables. Press ctrl-c to bail out now or return to continue."
read dummy
echo Dropping old tables
$MYSQL << OK_ALL_DONE
use bonsai;
drop table descs;
drop table checkins;
drop table people;
drop table repositories;
drop table dirs;
drop table files;
drop table branches;
drop table tags;
OK_ALL_DONE
echo creating new tables
$MYSQL << OK_ALL_DONE
use bonsai;
create table descs (
id mediumint not null auto_increment primary key,
description text,
hash bigint not null,
index(hash)
);
show columns from descs;
show index from descs;
create table people (
id mediumint not null auto_increment primary key,
who varchar(32) not null,
unique(who)
);
show columns from people;
show index from people;
create table repositories (
id mediumint not null auto_increment primary key,
repository varchar(64) not null,
unique(repository)
);
show columns from repositories;
show index from repositories;
create table dirs (
id mediumint not null auto_increment primary key,
dir varchar(128) not null,
unique(dir)
);
show columns from dirs;
show index from dirs;
create table files (
id mediumint not null auto_increment primary key,
file varchar(128) not null,
unique(file)
);
show columns from files;
show index from files;
create table branches (
id mediumint not null auto_increment primary key,
branch varchar(64) not null,
unique(branch)
);
show columns from branches;
show index from branches;
create table checkins (
type enum('Change', 'Add', 'Remove'),
ci_when datetime not null,
whoid mediumint not null,
repositoryid mediumint not null,
dirid mediumint not null,
fileid mediumint not null,
revision varchar(32) not null,
stickytag varchar(255) not null,
branchid mediumint not null,
addedlines int not null,
removedlines int not null,
descid mediumint,
unique (repositoryid,dirid,fileid,revision),
index(ci_when),
index(whoid),
index(repositoryid),
index(dirid),
index(fileid),
index(branchid)
);
show columns from checkins;
show index from checkins;
create table tags (
repositoryid mediumint not null,
branchid mediumint not null,
dirid mediumint not null,
fileid mediumint not null,
revision varchar(32) not null,
unique(repositoryid,dirid,fileid,branchid,revision),
index(repositoryid),
index(dirid),
index(fileid),
index(branchid)
);
OK_ALL_DONE

View File

@@ -1,142 +0,0 @@
#!/usr/bonsaitools/bin/perl -w
# -*- Mode: perl; indent-tabs-mode: nil -*-
#
# 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 the Bonsai CVS tool.
#
# 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.
#
# Unroll a module
#
use diagnostics;
use strict;
# Shut up misguided -w warnings about "used only once". "use vars" just
# doesn't work for me.
sub sillyness {
my $zz;
$zz = $::TreeID;
$zz = $::TreeInfo;
}
require 'CGI.pl';
$|=1;
print "Content-type: text/html\n\n";
my $CVS_ROOT = $::FORM{'cvsroot'};
$CVS_ROOT = pickDefaultRepository() unless $CVS_ROOT;
PutsHeader("CVS Module Analyzer", $CVS_ROOT);
cvsmenu("align=right width=20%");
print "
<p><b>This tool will show you the directories and files that make up a given
cvs module.</b>
";
print "
<p>
<FORM METHOD=GET ACTION='moduleanalyse.cgi'>
";
#
# module selector
#
print "
<nobr><b>Module:</b>
<SELECT name='module' size=5>
";
my $Module = 'default';
if( $::FORM{module} eq 'all' || $::FORM{module} eq '' ){
print "<OPTION SELECTED VALUE='all'>All Files in the Repository\n";
}
else {
print "<OPTION VALUE='all'>All Files in the Repository\n";
print "<OPTION SELECTED VALUE='$::FORM{module}'>$::FORM{module}\n";
$Module = $::FORM{module};
}
#
# Print out all the Different Modules
#
$::TreeID = $Module if (exists($::TreeInfo{$Module}{'repository'}));
LoadDirList();
for my $k (sort( grep(!/\*$/, @::LegalDirs) ) ){
print "<OPTION value='$k'>$k\n" if ($k ne $Module);
}
print "</SELECT></NOBR>\n";
print "
<br>
<br>
<INPUT TYPE=HIDDEN NAME=cvsroot VALUE='$CVS_ROOT'>
<INPUT TYPE=SUBMIT VALUE='Examine Module'>
</FORM>";
if( $::FORM{module} ne '' ){
my $mod = $::FORM{module};
print "<h1>Examining Module '$mod'</h1>\n\n";
for my $i (sort( grep(!/\*$/, @::LegalDirs) ) ){
if( -d "$CVS_ROOT/$i"){
print "<dt><tt>Dir:&nbsp;&nbsp;&nbsp;</tt>";
print "<a href=rview.cgi?dir=$i&cvsroot=$CVS_ROOT>$i</a>";
}
elsif ( -r "$CVS_ROOT/$i,v" ){
print "<dt><font color=blue><tt>File:&nbsp;&nbsp;</tt></font>";
print "<a href=cvsblame.cgi?file=$i&root=$CVS_ROOT>$i</a>";
}
else {
print "<dt><font color=red><tt>Error: </tt></font>";
print "$i : Not a file or a directory.";
}
# if( $mod_map->{$i} == $IS_LOCAL ){
# print "<font color=blue><tt> LOCAL</tt></font>";
# }
print "\n";
}
}
sub sortTest {
if( $_[0] eq $::FORM{sortby} ){
return " SELECTED";
}
else {
return "";
}
}
sub dateTest {
if( $_[0] eq $::FORM{date} ){
return " CHECKED value=$_[0]";
}
else {
return "value=$_[0]";
}
}

View File

@@ -1,149 +0,0 @@
# -*- Mode: perl; indent-tabs-mode: nil -*-
#
# 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 the Bonsai CVS tool.
#
# 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.
use diagnostics;
use strict;
require 'get_line.pl';
my $NOT_LOCAL = 1;
my $IS_LOCAL = 2;
$::modules = {};
if( $::CVS_ROOT eq "" ){
$::CVS_ROOT = pickDefaultRepository();
}
my $CVS_MODULES;
if( defined($ENV{"OS"}) && $ENV{"OS"} eq "Windows_NT" ){
$CVS_MODULES='modules';
}
else {
$CVS_MODULES="$::CVS_ROOT/CVSROOT/modules";
}
open( MOD, "<$CVS_MODULES") || die "can't open $CVS_MODULES";
&parse_modules;
close( MOD );
1;
sub in_module {
my($mod_map, $dirname, $filename ) = @_;
my( @path );
my( $i, $fp, $local );
#
#quick check if it is already in there.
#
if( $mod_map->{$dirname} ){
return 1;
}
@path = split(/\//, $dirname);
$fp = '';
for( $i = 0; $i < @path; $i++){
$fp .= ($fp ne '' ? '/' : '') . $path[$i];
if( $local = $mod_map->{$fp} ){
if( $local == $IS_LOCAL ){
if( $i == (@path-1) ){
return 1;
}
}
else {
# Add directories to the map as we encounter them so we go
# faster
if( $mod_map->{$dirname} == 0 ){
$mod_map->{$dirname} = $IS_LOCAL;
}
return 1;
}
}
}
if( $mod_map->{ $fp . '/' . $filename} ) {
return 1;
}
else {
return 0;
}
}
sub get_module_map {
my($name) = @_;
my($mod_map);
$mod_map = {};
&build_map( $name, $mod_map );
return $mod_map;
}
sub parse_modules {
my @finaloptions=();
my $l;
while( $l = &get_line ){
@finaloptions=();
my ($mod_name, $flag, @params) = split(/[ \t]+/,$l);
while ( $flag =~ /^-.$/){
if( $flag eq '-a' ){
$flag="";
last;
}
if ( $flag eq '-l' ){ # then keep it
push @finaloptions, ($flag, shift @params);
$flag= @params ? shift @params : "";
next;
}
if( $flag =~ /^-.$/ ){
shift @params; # skip parameter's argument
$flag= @params ? shift @params : "";
next;
}
last; # No options found...
}
unshift @params, $flag if ( $flag ne "" );
$::modules->{$mod_name} = [(@finaloptions,@params)];
}
}
sub build_map {
my ($name,$mod_map) = @_;
my ($bFound, $local);
$local = $NOT_LOCAL;
$bFound = 0;
# printf "looking for $name in %s<br>\n",join(",", @{$::modules->{$name}});
for my $i ( @{$::modules->{$name}} ){
$bFound = 1;
if( $i eq '-l' ){
$local = $IS_LOCAL;
}
elsif( ($i eq $name) || !build_map($i, $mod_map )){
$mod_map->{$i} = $local;
}
}
return $bFound;
}

View File

@@ -1,142 +0,0 @@
#!/usr/bonsaitools/bin/perl -w
# -*- Mode: perl; indent-tabs-mode: nil -*-
#
# 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 the Bonsai CVS tool.
#
# 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.
#
# Multi file diff cgi
#
use diagnostics;
use strict;
require 'globals.pl';
$|=1;
my %form;
print "Content-type: text/html
<PRE><FONT FACE='Lucida Console'>
";
my @revs = ();
#if( $ENV{"QUERY_STRING"} eq "" ){
# $ENV{"QUERY_STRING"}="brendan%2Cns%2Fjs%2Fsrc%2Cjsapi.c%2C-1=on&brendan%2Cns%2Fjs%2Fsrc%2Cjsapi.h%2C-1=on&brendan%2Cns%2Fjs%2Fsrc%2Cjsarray.c%2C-106=on&brendan%2Cns%2Fjs%2Fsrc%2Cjsarray.h%2C-0=on&brendan%2Cns%2Fjs%2Fsrc%2Cjsatom.c%2C-9=on";
#}
&split_cgi_args;
#while( ($k,$v) = each(%ENV) ){
# print "$k='$v'\n";
#}
my $cvsroot;
if( $form{"cvsroot"} ){
$cvsroot = $form{"cvsroot"};
}
else {
$cvsroot = pickDefaultRepository();
}
if( $form{"allchanges"} ){
@revs = split(/,/, $form{"allchanges"} );
}
else {
while( my ($k, $v) = each( %form ) ){
push( @revs, $k );
}
}
my $didone = 0;
my $rcsdiffcommand = Param('rcsdiffcommand');
for my $k (@revs) {
my ($who,$dir,$file,$rev) = split(/\|/, $k );
if ($rev eq "") {
next;
}
my $prevrev = &PrevRev($rev);
# this doesn't handle files in the attic
my $fullname = "$cvsroot/$dir/$file,v";
if (IsHidden($fullname)) {
next;
}
open( DIFF, "$rcsdiffcommand -c -r$prevrev -r$rev $fullname 2>&1|" );
while(<DIFF>){
$_ =~ s/&/&amp;/g;
$_ =~ s/</&lt;/g;
$_ =~ s/>/&gt;/g;
print "$who: $_";
}
$didone = 1;
}
if ($didone == 0) {
print "No changes were selected. Please press <b>Back</b> and try again.\n";
}
sub split_cgi_args {
my ($i,$var,$value, $s);
if( $ENV{"REQUEST_METHOD"} eq 'POST'){
while(<> ){
$s .= $_;
}
}
else {
$s = $ENV{"QUERY_STRING"};
}
my @args= split(/\&/, $s );
for my $i (@args) {
my ($var, $value) = split(/=/, $i);
$var =~ tr/+/ /;
$var =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$form{$var} = $value;
}
}
sub PrevRev {
my( $rev ) = @_;
my( $i, $j, $ret, @r );
@r = split( /\./, $rev );
$i = @r-1;
$r[$i]--;
if( $r[$i] == 0 ){
$i -= 2;
}
$j = 0;
while( $j < $i ){
$ret .= "$r[$j]\.";
$j++
}
$ret .= $r[$i];
}

View File

@@ -1,35 +0,0 @@
From: bonsai-daemon
To: %name%
Subject: [Bonsai] You're on the hook now!
Mime-Version: 1.0
Content-Type: text/html
<HTML>
<H1>You are responsible to make sure the build works.</H1>
You just checked into <tt>%dir%</tt> the files <tt>%files%</tt>. At
about <tt>%nextclose%</tt>, the tree will be frozen. From about
an hour later on, you are to be available for the build team to pester
in case of any problems.
<P>
Any further checkins you make before the tree closes will <i>not</i>
cause you to receive more copies of this mail, but you'll be held
responsible for them too.
<P>
For more info on the current state of the tree, see the
<a href=http://warp/bonsai/toplevel.cgi>Bonsai main page</a>.
<P>
Your contact info and other vital data is listed below. Please
<a href=http://warp/bonsai/profile.cgi?person=%name%>update</a>
this info <b>immediately</b> if it is at all inaccurate or incorrect.
<hr>
%profile%

View File

@@ -1,5 +0,0 @@
$::param{'cocommand'} = '_CO_';
$::param{'cvscommand'} = '_CVS_';
$::param{'rcsdiffcommand'} = '_RCSDIFF_';
$::param{'rlogcommand'} = '_RLOG_';
1;

View File

@@ -1,35 +0,0 @@
#!/usr/bonsaitools/bin/perl --
# -*- Mode: perl; indent-tabs-mode: nil -*-
#
# 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 the Bonsai CVS tool.
#
# 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.
# This takes a bunch of files that have been put into the 'bonsai
# queue' (the 'queue' subdirectory) and processes them as checkins.
# This is to work around worlds where we can't send mail from inside
# the CVS loginfo file.
#
# Each file is expected to have the CVSROOT in the first line, any args in the
# second line (currently unused), and the data fed to loginfo as the remaining
# lines.
$inprocess = "data/queue/processing-$$";
foreach $file (sort(glob("data/queue/*.q"))) {
rename $file, $inprocess || die "Couldn't rename queue file.";
system "./dolog.pl < $inprocess";
rename $inprocess, "$file.done";
}

View File

@@ -1,272 +0,0 @@
#!/usr/bonsaitools/bin/perl -w
#
# 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 the Bonsai CVS tool.
#
# 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.
use diagnostics;
use strict;
# Shut up misguided -w warnings about "used only once". "use vars" just
# doesn't work for me.
sub sillyness {
my $zz;
$zz = $::RepositoryID;
$zz = $::StartingDir;
}
use File::Basename;
require "CGI.pl";
sub ProcessOneFile {
my ($filename) = @_;
my $rlog = Param('rlogcommand') . " $filename |";
my $doingtags = 0;
my $filehead = dirname($filename);
my (%branchname, $filerealname, $filetail, $line, $trimmed);
my ($tag, $version, $branchid, $dirid, $fileid, $indesc, $desc);
my ($author, $revision, $datestr, $date, $pluscount, $minuscount);
my ($branch);
print "$filename\n";
die "Unable to run rlog command '$rlog': $!\n"
unless (open(RLOG_PROC, "$rlog"));
undef (%branchname);
($filerealname = $filename) =~ s/,v$//g;
$filehead =~ s!^$::Repository/*!!;
$filehead = '.'
unless ($filehead);
$filetail = basename($filerealname);
while (<RLOG_PROC>) {
chop;
$line = $_;
$trimmed = trim($line);
if ($doingtags) {
if ($line !~ /^\t/) {
$doingtags = 0;
} else {
$trimmed =~ /^([^:]*):([^:]*)/;
$tag = trim($1);
$version = trim($2);
next
unless (length($tag) && length($version));
$branchid = GetId('branches', 'branch', $tag);
$dirid = GetId('dirs', 'dir', $filehead);
$fileid = GetId('files', 'file', $filetail);
#
# Don't touch the tags database for now. Nothing uses it, and it just takes
# up too much damn space.
#
# SendSQL "replace into tags (branchid, repositoryid,
# dirid, fileid, revision) values ($branchid,
# $repositoryid, $dirid, $fileid, '$version')"
#
# Aha! Second-to-last being a zero is CVS's special way
# of remembering a branch tag.
$version =~ /(.*)\.(\d+)(\.\d+)$/;
$branchname{"$1$3"} = $tag
if ($2 eq '0');
next;
}
}
if ($line =~ /^symbolic names/) {
$doingtags = 1;
next;
} elsif ($line =~ /^revision ([0-9.]*)$/) {
$pluscount = ($minuscount = ($date = ($indesc = 0)));
$desc = ($branch = ($author = ($datestr = ($revision = ''))));
while (1) {
# Dealing with descriptions in rlog output for a
# revision...
if ($indesc) {
if (($line =~ /^-{27,30}$/) ||
($line =~ /^={75,80}$/)) {
# OK, we're done. Write it out.
if ($author && $datestr && $revision) {
$datestr =~ s!^(\d+)/(\d+/\d+)!$2/$1!;
$date = str2time($datestr, "GMT");
if ($date >= $::StartFrom) {
AddToDatabase("C|$date|$author|$::Repository|$filehead|$filetail|$revision||$branch|+$pluscount|-$minuscount", $desc);
}
}
$indesc = 0;
} else {
$desc .= $line . "\n";
}
}
# Dealing with revision information for a specific
# revision...
else {
if ($line =~ /^revision ([0-9.]*)$/) {
$pluscount = ($minuscount = 0);
$date = ($indesc = 0);
$datestr = ($desc = ($branch = ($author = "")));
$revision = $1;
$revision =~ /(.*)\.\d*$/;
$branch = $branchname{$1}
if (exists($branchname{$1}));
}
elsif ($line =~ /^date:/) {
$line =~ s!^date: ([0-9 /:]*);\s+!!;
$datestr = $1;
$line =~ s!^author: ([^;]*);\s+!!;
$author = $1;
if ($line =~ /lines: \+(\d+) -(\d+)/) {
$pluscount = $1;
$minuscount = $2;
}
}
elsif ($line =~ /^branches: [0-9 .;]*$/) {
# Ignore these lines; make sure they don't
# become part of the desciption.
}
else {
$indesc = 1;
$desc = "$line\n";
}
}
$line = <RLOG_PROC>;
if (!defined $line) {
last;
}
chop($line);
}
}
}
close(RLOG_PROC);
}
sub ProcessDirectory {
my ($dir) = @_;
my ($file, @files);
die "$dir: not a directory" unless (-d $dir);
die "$dir: Couldn't open for reading: $!"
unless (opendir(DIR, $dir));
@files = readdir(DIR);
closedir (DIR);
foreach $file (@files) {
next if $file eq '.';
next if $file eq '..';
$file = "$dir/$file";
if (-d $file) {
&ProcessDirectory($file);
} else {
next unless ($file =~ /,v$/);
if ($::FirstFile && ($::FirstFile ne $file)) {
print "Skipping $file...\n";
next;
}
$::FirstFile = 0;
ProcessOneFile($file);
}
}
}
$| = 1;
if ($#ARGV == 4) {
$::TreeID = $ARGV[0];
$::FORM{'startfrom'} = $ARGV[1];
$::FORM{'firstfile'} = $ARGV[2];
$::FORM{'subdir'} = $ARGV[3];
$::FORM{'modules'} = $ARGV[4];
} else {
print "Content-type: text/html
<HTML>";
CheckPassword(FormData('password'));
print "
<title>Rebuilding CVS history database... please be patient...</title>
<body>
<pre>\n";
}
$::StartFrom = ParseTimeAndCheck(FormData('startfrom'));
$::FirstFile = trim(FormData('firstfile'));
$::SubDir = trim(FormData('subdir'));
$::Modules = '';
if (defined($::FORM{'modules'})) {
$::Modules = trim(FormData('modules'));
}
Lock();
LoadTreeConfig();
Unlock();
ConnectToDatabase();
$::Repository = $::TreeInfo{$::TreeID}{'repository'};
$::Description = $::TreeInfo{$::TreeID}{'description'};
$::RepositoryID = GetId('repositories', 'repository', $::Repository);
$::StartingDir = 0;
print "
Rebuilding entire checkin history in $::Description, (`$::TreeID' tree) ...
";
Log("Rebuilding cvs history in $::Description, (`$::TreeID' tree)...");
LoadDirList();
my @Dirs = grep(!/\*$/, @::LegalDirs);
@Dirs = split(/,\s*/, $::Modules) if $::Modules;
my $StartingDir;
($StartingDir = "$::Repository/$::SubDir") =~ s!/.?$!! if $::SubDir;
print "Doing directories: @Dirs ...\n";
foreach my $Dir (@Dirs) {
my $dir = "$::Repository/$Dir";
unless (grep $Dir, @::LegalDirs) {
print "$Dir: is invalid, skipping...\n";
}
if (-f $dir) {
ProcessOneFile($dir);
} elsif (-d $dir) {
ProcessDirectory($dir);
} else {
print "$Dir: not a file or directory, skipping...\n";
}
}
exit 0;

View File

@@ -1,134 +0,0 @@
#!/usr/bonsaitools/bin/perl -w
# -*- Mode: perl; indent-tabs-mode: nil -*-
#
# 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 the Bonsai CVS tool.
#
# 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.
require 'CGI.pl';
use diagnostics;
use strict;
print "Content-type: text/html
<HTML>";
CheckPassword($::FORM{'password'});
my $startfrom = ParseTimeAndCheck(FormData('startfrom'));
Lock();
LoadTreeConfig();
LoadCheckins();
@::CheckInList = ();
WriteCheckins();
Unlock();
$| = 1;
print "<TITLE> Rebooting, please wait...</TITLE>
<H1>Recreating the hook</H1>
<h3>$::TreeInfo{$::TreeID}->{'description'}</h3>
<p>
Searching for first checkin after " . MyFmtClock($startfrom) . "...<p>\n";
my $mungedname = $::TreeInfo{$::TreeID}->{'repository'};
$mungedname =~ s@/@_@g;
$mungedname =~ s/^_//;
my $filename = "data/checkinlog/$mungedname";
open(FID, "<$filename") || die "Can't open $filename";
my $foundfirst = 0;
my $buffer = "";
my $tempfile = "data/repophook.$$";
my $count = 0;
my $lastdate = 0;
sub FlushBuffer {
if (!$foundfirst || $buffer eq "") {
return;
}
open(TMP, ">$tempfile") || die "Can't open $tempfile";
print TMP "junkline\n\n$buffer\n";
close(TMP);
system("./addcheckin.pl -treeid $::TreeID $tempfile");
# unlink($tempfile);
$buffer = "";
$count++;
if ($count % 100 == 0) {
print "$count scrutinized...<br>\n";
}
}
my $now = time();
while (<FID>) {
chomp();
my $line = $_;
if ($line =~ /^.\|/) {
my ($chtype, $date) = (split(/\|/, $line));
if ($date < $lastdate) {
print "Ick; dates out of order!<br>\n";
print "<pre>" . value_quote($line) . "</pre><p>\n";
}
$lastdate = $date;
if ($foundfirst) {
$buffer .= "$line\n";
} else {
if ($date >= $startfrom) {
if ($date >= $now) {
print "Found a future date! (ignoring):<br>\n";
print "<pre>" . value_quote($line) . "</pre><p>\n";
} else {
$foundfirst = 1;
print "Found first line: <br>\n";
print "<pre>" . value_quote($line) . "</pre><p>\n";
print "OK, now processing checkins...<p>";
$buffer = "$line\n";
$count = 0;
}
} else {
$count++;
if ($count % 2000 == 0) {
print "Skipped $count lines...<p>\n";
}
}
}
} elsif ($line =~ /^:ENDLOGCOMMENT$/) {
$buffer .= "$line\n";
FlushBuffer();
} else {
$buffer .= "$line\n";
}
}
FlushBuffer();
print "OK, done. \n";
PutsTrailer();

View File

@@ -1,61 +0,0 @@
#!/usr/bonsaitools/bin/perl --
# -*- Mode: perl; indent-tabs-mode: nil -*-
#
# 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 the Bonsai CVS tool.
#
# 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.
use diagnostics;
use strict;
if( $ARGV[0] eq '' ){
$::CVS_ROOT = '/m/src';
}
else {
$::CVS_ROOT = $ARGV[0];
}
$CVS_REPOS_SUFIX = $::CVS_ROOT;
$CVS_REPOS_SUFIX =~ s/\//_/g;
$FILE_LIST = "/d/webdocs/projects/bonsai/data/reposfiles${CVS_REPOS_SUFIX}";
open FL, ">$FILE_LIST";
GoDir($::CVS_ROOT);
sub GoDir {
local($dir) = @_;
local(@dirs, $i);
chdir "$dir";
while(<*> ){
if( $_ ne '.' && $_ ne '..' ){
if( -d $_ ) {
push @dirs, $_;
}
else {
print FL "$dir/$_\n";
}
}
}
for $i (@dirs) {
GoDir( "$dir/$i");
}
}

View File

@@ -1,274 +0,0 @@
#!/usr/bonsaitools/bin/perl -w
# -*- Mode: perl; indent-tabs-mode: nil -*-
#
# 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 the Bonsai CVS tool.
#
# 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.
#
# Query the CVS database.
#
use diagnostics;
use strict;
# Shut up misguided -w warnings about "used only once". "use vars" just
# doesn't work for me.
sub sillyness {
my $zz;
$zz = $::Setup_String;
}
require 'CGI.pl';
$|=1;
my $CVS_ROOT = $::FORM{"cvsroot"};
$CVS_ROOT = pickDefaultRepository() unless $CVS_ROOT;
LoadTreeConfig();
$::TreeID = $::FORM{'module'}
if (!exists($::FORM{'treeid'}) &&
exists($::FORM{'module'}) &&
exists($::TreeInfo{$::FORM{'module'}}{'repository'}));
$::TreeID = 'default'
if (!exists($::TreeInfo{$::TreeID}{'repository'}) ||
exists($::TreeInfo{$::TreeID}{'nobonsai'}));
# get dir, remove leading and trailing slashes
my $dir = $::FORM{"dir"};
$dir = "" unless defined $dir;
$dir =~ s/^\/([^:]*)/$1/;
$dir =~ s/([^:]*)\/$/$1/;
my $rev = $::FORM{"rev"};
if(!defined($rev)) {
$rev='';
}
print "Content-type: text/html\n\n";
my $script_str;
&setup_script;
$::Setup_String = $script_str;
if( $CVS_ROOT eq "" ){
$CVS_ROOT = pickDefaultRepository();
}
validateRepository($CVS_ROOT);
my $s = "";
if ($rev) {
$s = "for branch <i>$rev</i>";
}
CheckHidden("$CVS_ROOT/$dir");
my $revstr = '';
$revstr = "&rev=$rev" unless $rev eq '';
my $rootstr = '';
$rootstr .= "&cvsroot=$::FORM{'cvsroot'}" if defined $::FORM{'cvsroot'};
$rootstr .= "&module=$::TreeID";
my $module = $::TreeInfo{$::TreeID}{'module'};
my $toplevel = Param('toplevel');
my $output = "<DIV ALIGN=LEFT>";
$output .= "<A HREF='toplevel.cgi" . BatchIdPart('?') . "'>$toplevel</a>/ ";
my ($dir_head, $dir_tail) = $dir =~ m@(.*/)?(.+)@;
$dir_head = "" unless defined $dir_head;
$dir_tail = "" unless defined $dir_tail;
my $link_path = "";
foreach my $path (split('/',$dir_head)) {
$link_path .= $path;
$output .= "<A HREF='rview.cgi?dir=$link_path$rootstr$revstr'>$path</A>/ ";
$link_path .= '/';
}
chop ($output);
$output .= " $dir_tail/ $s ";
$output .= "</DIV>";
PutsHeader("Repository Directory $toplevel/$dir $s", $output);
cvsmenu("align=right width=30%");
my $other_dir;
($other_dir = $dir) =~ s!^$module/?!!;
my $other_dir_used = 1;
LoadDirList();
if (-d "$CVS_ROOT/$dir") {
chdir "$CVS_ROOT/$dir";
$other_dir_used = 0;
} elsif (-d "$CVS_ROOT/$other_dir") {
chdir "$CVS_ROOT/$other_dir";
} else {
chdir "$CVS_ROOT";
}
print "
<TABLE CELLPADDING=0 CELLSPACING=0>
<FORM action=rview.cgi method=get><TR><TD>
Goto Directory:
</TD><TD><INPUT name=dir value='$dir' size=30>
<INPUT name=rev value='$rev' type=hidden>
<INPUT name=module value='$::TreeID' type=hidden>
<INPUT name=cvsroot value='$CVS_ROOT' type=hidden>
<INPUT type=submit value='chdir'>
</TD></TR></FORM>
<FORM action=rview.cgi method=get><TR><TD>
Branch:
</TD><TD><INPUT name=rev value='$rev' size=30>
<INPUT name=dir value='$dir' type=hidden>
<INPUT name=module value='$::TreeID' type=hidden>
<INPUT name=cvsroot value='$CVS_ROOT' type=hidden>
<INPUT type=submit value='Set Branch'>
</TR></FORM>
</TABLE>
";
my @dirs = ();
DIR:
while( <*> ){
if( -d $_ ){
push @dirs, $_;
}
}
my $j;
my $split;
if( @dirs != 0 ){
$j = 1;
$split = int(@dirs/4)+1;
print "<P><FONT SIZE=+1><B>Directories:</B></FONT><table><TR VALIGN=TOP><td>";
for my $i (@dirs){
$::FORM{"dir"} = ($dir ne "" ? "$dir/$i" : $i);
my $anchor = &make_cgi_args;
print "<dt><a href=rview.cgi${anchor}>$i</a>\n";
if( $j % $split == 0 ){
print "\n<td>\n";
}
$j++;
}
$::FORM{"dir"} = $dir;
print "\n</tr></table>\n";
}
print "<P><FONT SIZE=+1><B>Files:</B></FONT>";
print "<table><TR VALIGN=TOP><td>";
my @files = <*,v>;
$j = 1;
$split = int(@files/4)+1;
for $_ (@files){
$_ =~ s/\,v//;
print "<a href=../registry/file.cgi?cvsroot=$CVS_ROOT&file=$_&dir=$dir"
. " onclick=\"return js_file_menu('$dir','$_','$rev','$CVS_ROOT',event)\">\n";
print "<dt>$_</a>\n";
if( $j % $split == 0 ){
print "\n<td>\n";
}
$j++;
}
print "\n</tr></table>\n";
PutsTrailer();
sub setup_script {
$script_str =<<'ENDJS';
<script>
var event = new Object;
function js_who_menu(n,extra,d) {
if( parseInt(navigator.appVersion) < 4 ||
navigator.userAgent.toLowerCase().indexOf("msie") != -1 ){
return true;
}
l = document.layers['popup'];
l.src="../registry/who.cgi?email="+n+extra;
if(d.target.y > window.innerHeight + window.pageYOffset - l.clip.height) {
l.top = (window.innerHeight + window.pageYOffset - l.clip.height);
} else {
l.top = d.target.y - 6;
}
l.left = d.target.x - 6;
if( l.left + l.clipWidth > window.width ){
l.left = window.width - l.clipWidth;
}
l.visibility="show";
return false;
}
function js_file_menu(dir,file,rev,root,d) {
if( parseInt(navigator.appVersion) < 4 ||
navigator.userAgent.toLowerCase().indexOf("msie") != -1 ){
return true;
}
l = document.layers['popup'];
l.src="../registry/file.cgi?file="+file+"&dir="+dir+"&rev="+rev+"&cvsroot="+root+"&linked_text="+d.target.text;
if(d.target.y > window.innerHeight + window.pageYOffset - l.clip.height) {
l.top = (window.innerHeight + window.pageYOffset - l.clip.height);
} else {
l.top = d.target.y - 6;
}
l.left = d.target.x - 6;
if( l.left + l.clipWidth > window.width ){
l.left = window.width - l.clipWidth;
}
l.visibility="show";
return false;
}
</script>
<layer name="popup" onMouseOut="this.visibility='hide';" left=0 top=0 bgcolor="#ffffff" visibility="hide">
</layer>
ENDJS
}

View File

@@ -1,306 +0,0 @@
#!/usr/bonsaitools/bin/perl -w
# -*- Mode: perl; indent-tabs-mode: nil -*-
#
# 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 the Bonsai CVS tool.
#
# 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.
use diagnostics;
use strict;
require 'CGI.pl';
use vars qw(@TreeList);
print "Content-type: text/html\n\n";
Lock();
LoadCheckins();
LoadTreeConfig();
Unlock();
my %peoplearray = ();
my @list = ();
my $versioninfo = '';
my $tweak = $::FORM{'tweak'};
my $delta_size = 1;
my ($title, $head, $subhead) = ('', '', '');
my ($checkin, $info);
sub BreakBig {
my ($str) = @_;
my $result = '';
while (length($str) > 20) {
my $head = substr($str, 0, 19);
my $w = rindex($head, "/");
$w = 19 if ($w < 0);
$result .= substr($str, 0, $w++) . "<br>";
$str = substr($str, $w);
}
return $result . $str;
}
if (exists($::FORM{'person'})) {
$title = $head = "Checkins for $::FORM{'person'}";
foreach $checkin (@::CheckInList) {
$info = eval("\\\%$checkin");
push @list, $checkin
if ($$info{'person'} eq $::FORM{'person'});
}
} elsif (exists($::FORM{'mindate'}) || exists($::FORM{'maxdate'})) {
my ($min, $max) = (0, 1<<30);
$title = "Checkins";
if (exists($::FORM{'mindate'})) {
$title .= " since " . MyFmtClock($min = $::FORM{'mindate'});
$title .= " and" if (exists($::FORM{'maxdate'}));
}
$title .= " before" . MyFmtClock($max = $::FORM{'maxdate'})
if (exists($::FORM{'maxdate'}));
$head = $title;
foreach $checkin (@::CheckInList) {
$info = eval("\\\%$checkin");
push @list, $checkin
if (($$info{'date'} >= $min) && ($$info{'date'} <= $max));
}
} else {
$title = $head = "All Checkins";
@list = @::CheckInList;
}
$subhead .= "<br><font color=red>
Be aware that you are looking at an old hook!</font>"
if (Param('readonly'));
PutsHeader($title, $head, $subhead);
$::FORM{'sort'} = 'date' unless $::FORM{'sort'};
print "
(Current sort is by <tt>$::FORM{'sort'}</tt>; click on a column header
to sort by that column.)";
my @fields = split(/,/, $::FORM{'sort'});
sub Compare {
my $rval = 0;
my $key;
my $aref = eval("\\\%$a");
my $bref = eval("\\\%$b");
foreach $key (@fields) {
if ($key eq 'date') {
$rval = $$bref{$key} cmp $$aref{$key};
} else {
$rval = $$aref{$key} cmp $$bref{$key};
}
return $rval unless ($rval == 0);
}
return $rval;
}
my $total_added = 0;
my $total_removed = 0;
#
# Calculate delta information
#
CHECKIN:
foreach my $infoname (@list) {
$info = eval("\\\%$infoname");
$$info{added} = 0;
$$info{removed} = 0;
if (exists($$info{'fullinfo'})) {
my @fullinfos = split(/!NeXt!/, $$info{'fullinfo'});
INFO:
foreach my $fullinfo (@fullinfos) {
my ($file, $version, $addlines, $removelines, $sticky)
= split(/\|/, $fullinfo);
# Skip binary files
next INFO if (($file =~ /\.gif$/) ||
($file =~ /\.bmp$/) ||
($sticky =~ /-kb/));
if ($addlines) {
$$info{added} += $addlines;
}
if ($removelines) {
$$info{removed} += $removelines;
}
}
}
$$info{'lines_changed'} =
sprintf("%7d", 1000000 - ($$info{added} - $$info{removed}));
$total_added += $$info{added};
$total_removed += $$info{removed};
}
# Sort that puppy...
@list = sort Compare @list;
# $::buffer contains the arguments that we were called with, it is
# initialized by CGI.pl
my $otherparams;
($otherparams = $::buffer) =~ s/[&?]sort=[^&]*//g;
sub NewSort {
my ($key) = @_;
my @sort_keys = grep(!/^$key$/, split(/,/, $::FORM{'sort'}));
unshift(@sort_keys, $key);
return $otherparams . "&sort=" . join(',', @sort_keys);
}
#
# Print the table...
#
print "<FORM method=get action=\"dotweak.cgi\">\n" if $tweak;
print "<TABLE border cellspacing=2>\n<TR ALIGN=LEFT>\n\n";
print "<TH></TH>\n" if $tweak;
print "
<TH><A HREF=\"showcheckins.cgi?${otherparams}&sort=date\">When</A>
<TH><A HREF=\"showcheckins.cgi?" . NewSort('treeopen') . "\">Tree state</A>
<TH><A HREF=\"showcheckins.cgi?" . NewSort('person') . "\">Who</A>
<TH><A HREF=\"showcheckins.cgi?" . NewSort('dir') . "\">Directory</A>
<TH><A HREF=\"showcheckins.cgi?" . NewSort('files') . "\">Files</A>
<TH><A HREF=\"showcheckins.cgi?" . NewSort('lines_changed') .
"\"><tt>+/-</tt></A>
<TH WIDTH=100%>Description
</TR>\n\n";
my $count = 0;
my $maxcount = 100;
my $branchpart = '';
$branchpart = "&branch=$::TreeInfo{$::TreeID}{branch}"
if ($::TreeInfo{$::TreeID}{branch});
foreach $checkin (@list) {
$info = eval("\\\%$checkin");
# Don't make tables too big, or toy computers will break.
if ($count++ > $maxcount) {
$count = 0;
print "</TABLE>\n\n<TABLE border cellspacing=2>\n";
}
print "<TR>\n";
print "<TD><INPUT TYPE=CHECKBOX NAME=\"$checkin\"></TD>\n" if $tweak;
print "<TD><a href=editcheckin.cgi?id=$checkin" . BatchIdPart(). ">\n";
print time2str("<font size=-1>%m/%d/%Y %H:%M</font>" , $$info{date}) .
"</a></TD>\n";
print "<TD>" . (($$info{treeopen})? "open": "CLOSED") . "\n";
print "<br>$$info{notes}\n" if $$info{notes};
$peoplearray{$$info{person}} = 1;
print "<TD>". GenerateUserLookUp($$info{person}) . "</TD>\n";
print "<TD><a href=\"cvsview2.cgi?" .
"root=$::TreeInfo{$::TreeID}{repository}&" .
"subdir=$$info{dir}&" .
"files=" . join('+', split(/!NeXt!/, $$info{files})) . "&" .
"command=DIRECTORY$branchpart\">" .
BreakBig($$info{dir}) .
"</a></TD>\n";
print "<TD>\n";
foreach my $file (split(/!NeXt!/, $$info{files})) {
print " <a href=\"cvsview2.cgi?" .
"root=$::TreeInfo{$::TreeID}{repository}&" .
"subdir=$$info{dir}&" .
"files=$file&" .
"command=DIRECTORY$branchpart\">" .
"$file</a>\n";
}
print "</td>\n";
print "<TD><tt>+$$info{added}/-". abs($$info{removed}). "</tt></td>\n";
foreach my $fullinfo (split(/!NeXt!/, $$info{'fullinfo'})) {
my ($file, $version) = split(/\|/, $fullinfo);
$versioninfo .= "$$info{person}|$$info{dir}|$file|$version,";
}
print "<TD WIDTH=100%>$$info{'log'}</td>\n";
print "</tr>\n\n";
}
print "</table>\n";
print scalar @list . " checkins listed.
&nbsp;&nbsp;&nbsp; Lines changed <tt>($total_added/$total_removed)</tt>.\n";
sub IsSelected {
my ($value) = @_;
return "SELECTED" if ($value eq $::TreeID);
return "";
}
if ($tweak) {
print "
<hr>
Check the checkins you wish to affect. Then select one of the below options.
And type the magic word. Then click on submit.
<P>
<INPUT TYPE=HIDDEN NAME=treeid VALUE=$::TreeID>
<INPUT TYPE=radio NAME=command VALUE=nuke>Delete these checkins.<BR>
<INPUT TYPE=radio NAME=command VALUE=setopen>Set the tree state on these checkins to be <B>Open</B>.<BR>
<INPUT TYPE=radio NAME=command VALUE=setclose>Set the tree state on these checkins to be <B>Closed</B>.<BR>
<INPUT TYPE=radio NAME=command VALUE=movetree>Move these checkins over to this tree:
<SELECT NAME=desttree SIZE=1>\n";
foreach my $tree (@::TreeList) {
print "<OPTION ". IsSelected($tree).
" VALUE=$tree>$::TreeInfo{$tree}{description}\n"
unless $::TreeInfo{$tree}{nobonsai};
}
print "
</SELECT><P>
<B>Password:</B><INPUT NAME=password TYPE=password></td>
<BR>
<INPUT TYPE=SUBMIT VALUE=Submit>
</FORM>\n";
} else {
print "
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<a href=showcheckins.cgi?$::buffer&tweak=1>Tweak some of these checkins.</a>
<br><br>
<FORM action='multidiff.cgi' method=post>
<INPUT TYPE='HIDDEN' name='allchanges' value = '$versioninfo'>
<INPUT TYPE=SUBMIT VALUE='Show me ALL the Diffs'>
</FORM>\n";
}
if (exists $::FORM{ltabbhack}) {
print "<!-- StupidLloydHack " . join(',', sort(keys(%peoplearray))) .
" -->\n";
print "<!-- LloydHack2 $versioninfo -->\n";
}
PutsTrailer();

View File

@@ -1,60 +0,0 @@
#!/usr/bonsaitools/bin/perl -w
# -*- Mode: perl; indent-tabs-mode: nil -*-
#
# 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 the Bonsai CVS tool.
#
# 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.
use diagnostics;
use strict;
# Shut up misguided -w warnings about "used only once". "use vars" just
# doesn't work for me.
sub sillyness {
my $zz;
$zz = $::TreeID;
$zz = $::TreeList;
}
require 'CGI.pl';
print "Content-type: text/html\n\n";
LoadTreeConfig();
sub IsChecked {
my ($value) = @_;
my $rval = '';
$rval = "CHECKED" if ($value eq $::TreeID);
return $rval;
}
my $title = "George, George, George of the jungle...";
PutsHeader($title, "Switch-o-Matic");
print "
<b>Which tree would you like to see?</b>
<FORM method=get action=\"toplevel.cgi\">\n";
foreach my $i (@::TreeList) {
next if (exists($::TreeInfo{$i}{nobosai}));
print "<INPUT TYPE=radio NAME=treeid VALUE=$i " . IsChecked($i) . ">\n";
print "$::TreeInfo{$i}{description}<BR>\n";
}
print "<INPUT TYPE=SUBMIT Value=\"Submit\"></FORM>\n";
PutsTrailer();
exit;

View File

@@ -1,12 +0,0 @@
#!/usr/bonsaitools/bin/perl --
# -*- Mode: perl; indent-tabs-mode: nil -*-
require 'utils.pl';
Lock();
print "Got lock.\n";
sleep 10;
Unlock();

View File

@@ -1,284 +0,0 @@
#!/usr/bonsaitools/bin/perl -w
# -*- Mode: perl; indent-tabs-mode: nil -*-
#
# 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 the Bonsai CVS tool.
#
# 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.
require 'CGI.pl';
use diagnostics;
use strict;
sub StupidFuncToShutUpWarningsByUsingVarsAgain {
my $z;
$z = $::CloseTimeStamp;
$z = $::LastGoodTimeStamp;
$z = $::MOTD;
$z = $::WhiteBoard;
$z = $::TreeList;
}
print "Content-type: text/html\nRefresh: 300\n\n";
PutsHeader("Bonsai -- the art of effectively controlling trees",
"Bonsai", "CVS Tree Control");
print "<IMG ALIGN=right SRC=bonsai.gif>";
Lock();
LoadCheckins();
LoadMOTD();
LoadWhiteboard();
LoadTreeConfig();
Unlock();
my $openword;
if ($::TreeOpen) {
$openword = '<b><FONT SIZE=+2>OPEN</FONT></B>';
} else {
$openword = '<b><FONT SIZE=+3 COLOR=RED>CLOSED</FONT></B>';
}
print "
<FORM name=treeform>
<H3>
<SELECT name=treeid size=1 onchange='submit();'>
";
foreach my $tree (@::TreeList) {
unless (exists $::TreeInfo{$tree}{nobonsai}) {
my $c = ($tree eq $::TreeID) ? 'Selected' : '';
print "<OPTION VALUE=\"$tree\" $c>$::TreeInfo{$tree}{description}\n";
}
}
print "</SELECT></H3></FORM>\n";
if (Param('readonly')) {
print "<h2><font color=red>
Be aware that you are looking at an old hook!</font></h2>\n";
}
print "<tt>" . time2str("%m/%d/%Y %T %Z", time()) .
"</tt>: The tree is currently $openword<br>\n";
unless ($::TreeOpen) {
print "The tree has been closed since <tt>" .
MyFmtClock($::CloseTimeStamp) . "</tt>.<BR>\n";
}
print "The last known good tree had a timestamp of <tt>";
print time2str("%m/%d/%Y %T %Z", $::LastGoodTimeStamp) . "</tt>.<br>";
print "<hr><pre variable>$::MOTD</pre><hr>";
print "<br clear=all>";
my $bid_part = BatchIdPart('?');
print "<b><a href=editwhiteboard.cgi$bid_part>
Free-for-all whiteboard:</a></b>
<pre>" . html_quote($::WhiteBoard) . "</pre><hr>\n";
my %username;
my %checkincount;
my %closedcheckin;
my %fullname;
my %curcontact;
foreach my $checkin (@::CheckInList) {
my $info = eval("\\\%$checkin");
my $addr = EmailFromUsername($info->{'person'});
$username{$addr} = $info->{'person'};
if (!exists $checkincount{$addr}) {
$checkincount{$addr} = 1;
} else {
$checkincount{$addr}++;
}
if (!$info->{'treeopen'}) {
if (!defined $closedcheckin{$addr}) {
$closedcheckin{$addr} = 1;
} else {
$closedcheckin{$addr}++;
}
}
}
my $ldaperror = 0;
if (%checkincount) {
my (@peoplelist, @list, $p, $i, $end, $checkins);
my $ldapserver = Param('ldapserver');
my $ldapport = Param('ldapport');
print "
The following people are on \"the hook\", since they have made
checkins to the tree since it last opened: <p>\n";
@peoplelist = sort(keys %checkincount);
@list = @peoplelist;
while (1) {
last if ($#list < 0);
$end = 19;
$end = $#list if ($end >= $#list);
GetInfoForPeople(splice(@list, 0, $end + 1));
}
if ($ldaperror) {
print "<font color=red>
Can't contact the directory server at $ldapserver:$ldapport</font>\n";
}
print "
<table border cellspacing=2>
<th colspan=2>Who</th><th>What</th>\n";
print "<th>How to contact</th>\n" if $ldapserver;
foreach $p (@peoplelist) {
my ($uname, $namepart, $extra) = ('', '', '');
if (exists($closedcheckin{$p})) {
$extra = " <font color=red>($closedcheckin{$p} while tree closed!)</font>";
}
$uname = $username{$p};
($namepart = $p) =~ s/\@.*//;
$checkins = $checkincount{$p};
print "<tr>\n";
print "<td>$fullname{$p}</td>\n";
print "<td>" . GenerateUserLookUp($uname, $namepart, $p) . "</td>\n";
print "<td><a href=\"showcheckins.cgi?person=" . url_quote($uname);
print BatchIdPart() . "\"> $checkins ";
print Pluralize('change', $checkins) . "</a>$extra</td>\n";
print "<td>$curcontact{$p}\n" if $ldapserver;
print "</tr>\n\n";
}
print "</table>\n\n";
$checkins = @::CheckInList;
print Pluralize("$checkins checkin", $checkins) . ".<p>\n";
my $mailaddr =
join(',', @peoplelist) . "?subject=Hook%3a%20Build%20Problem";
$mailaddr .= "&cc=$::TreeInfo{$::TreeID}{cchookmail}"
if (exists($::TreeInfo{$::TreeID}{cchookmail}));
print "
<a href=showcheckins.cgi" . BatchIdPart('?') . ">Show all checkins.</a><br>
<a href=\"mailto:$mailaddr\">Send mail to \"the hook\".</a><br>\n";
} else {
print "Nobody seems to have made any changes since the tree opened.";
}
my $cvsqueryurl = "cvsqueryform.cgi?" .
"cvsroot=$::TreeInfo{$::TreeID}{repository}" .
"&module=$::TreeInfo{$::TreeID}{module}";
$cvsqueryurl.= "&branch=$::TreeInfo{$::TreeID}{branch}"
if ($::TreeInfo{$::TreeID}{branch});
my $bip = BatchIdPart('?');
my $tinderboxbase = Param('tinderboxbase');
my $tinderboxlink = '';
$tinderboxlink = "<a href=\"$tinderboxbase/showbuilds.cgi\">Tinderbox
continuous builds</a><br>" if ($tinderboxbase);
my $otherrefs = Param('other_ref_urls');
print "
<hr>
<table>
<tr>
<th>Useful links </th><th width=10%></th><th>Help and Documentation</th>
</tr>
<tr>
<td valign=top>
<a href=\"$cvsqueryurl\"><b>CVS Query Tool</b></a><br>
<a href=\"switchtree.cgi$bip\">Switch to look at a different tree or branch</a><br>
$tinderboxlink
<a href=\"viewold.cgi$bip\">Time warp -- view a different day's hook.</a><br>
<a href=\"countcheckins.cgi$bip\">See some stupid statistics about recent checkins.</a><br>
<a href=\"admin.cgi$bip\">Administration menu.</a><br>
</td><td>
</td><td valign=top>
$otherrefs
</td>
</tr></table>
" ;
exit 0;
sub GetInfoForPeople {
my (@peoplelist) = @_;
my ($p, $query, $isempty);
my $ldapserver = Param('ldapserver');
my $ldapport = Param('ldapport');
my $ldapcmd;
$query = "(| ";
$isempty = 1;
foreach $p (@peoplelist) {
$query .= "(mail=$p) ";
$fullname{$p} = "";
$curcontact{$p} = "";
}
$query .= ")";
return if ($ldaperror || ($ldapserver eq ''));
$ldapcmd = "./data/ldapsearch -b \"dc=netscape,dc=com\" " .
"-h $ldapserver -p $ldapport -s sub " .
"-S mail \"$query\" mail cn nscpcurcontactinfo";
unless (open(LDAP, "$ldapcmd |")) {
$ldaperror = 1;
} else {
my $doingcontactinfo = 0;
my $curperson;
while (<LDAP>) {
chop;
if ($doingcontactinfo) {
if (/^ (.*)$/) {
$curcontact{$curperson} .= "$1\n";
next;
}
$doingcontactinfo = 0;
}
if (/^mail: (.*\@.*)$/) {
$curperson = $1;
} elsif (/^cn: (.*)$/) {
$fullname{$curperson} = $1;
} elsif (/^nscpcurcontactinfo: (.*)$/) {
$curcontact{$curperson} = "$1\n";
$doingcontactinfo = 1;
}
}
close(LDAP);
}
}

View File

@@ -1,9 +0,0 @@
#include <stdio.h>
#ifndef __bsdi__
#include <crypt.h>
#endif
main(int argc, char** argv) {
printf("%s\n", crypt(argv[1], "aa"));
return 0;
}

View File

@@ -1,23 +0,0 @@
# Example configuration file for Bonsai
# The Bonsai modules and their relation to cvs
# @::TreeList is a list of all configured Bonsai modules
# to add a module, add its name to @::TreeList
# then duplicate the "default" entry in @::TreeInfo and
# change the values appropriately
@::TreeList = ('default');
%::TreeInfo = (
default => {
branch => '',
description => 'My CVS repository',
module => 'All',
repository => '/cvsroot',
shortdesc => 'Mine',
},
,
);
1;

View File

@@ -1,173 +0,0 @@
# -*- Mode: perl; indent-tabs-mode: nil -*-
#
# 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 the Bonsai CVS tool.
#
# 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.
use DBD::mysql;
require 'header.pl';
$lockcount = 0;
1;
sub Lock {
if ($lockcount <= 0) {
$lockcount = 0;
if (!open(LOCKFID, ">>data/lockfile")) {
mkdir "data", 0777;
chmod 0777, "data";
open(LOCKFID, ">>data/lockfile") || die "Can't open lockfile.";
}
my $val = flock(LOCKFID,2);
if (!$val) { # '2' is magic 'exclusive lock' const.
print "Lock failed: $val\n";
}
chmod 0666, "data/lockfile";
}
$lockcount++;
}
sub Unlock {
$lockcount--;
if ($lockcount <= 0) {
flock(LOCKFID,8); # '8' is magic 'unlock' const.
close LOCKFID;
}
}
sub loadConfigData {
if (@treelist > 0) {return;}
local($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,
$atime,$pmtime,$ctime,$blksize,$blocks) = stat("data/configdata.pl");
local $tmtime;
($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,
$atime,$tmtime,$ctime,$blksize,$blocks) = stat("data/configdata");
if ($pmtime eq "" || $pmtime < $tmtime) {
system "./perlifyconfig.tcl";
}
open(CONFIGDATA, "<data/configdata.pl") || die "Can't open configdata.pl";
while (<CONFIGDATA>) {
eval;
}
close CONFIGDATA;
}
sub pickDefaultRepository {
loadConfigData();
return $treeinfo{$treelist[0]}->{'repository'};
}
sub getRepositoryList {
loadConfigData();
my @result = ();
TREELOOP: foreach my $i (@treelist) {
my $r = $treeinfo{$i}->{'repository'};
foreach my $j (@result) {
if ($j eq $r) {
next TREELOOP;
}
}
push @result, $r;
}
return @result;
}
sub validateRepository {
my ($root) = @_;
my @list = getRepositoryList();
foreach my $r (@list) {
if ($r eq $root) {
return;
}
}
print "Invalid repository $root selected. Send mail to $cvsadmin if you think this should have worked.\n";
exit;
}
sub ConnectToDatabase {
if ($dbh == "") {
$dbh = DBI->connect("bonsai","$mysqluser","$mysqlpassword","mysql") || die "Can't connect to database server -- $DBD::mysql::db_errstr";
}
return $dbh;
}
sub formatSqlTime {
my $when = @_[0];
my($sec,$minute,$hour,$mday,$mon,$year) = localtime( $when );
return sprintf("%04d-%02d-%02d %02d:%02d:%02d",
$year + 1900, $mon + 1, $mday,
$hour, $minute, $sec);
}
sub SqlQuote {
$_ = @_[0];
s/'/''/g;
s/\\/\\\\/g;
return $_;
}
# Returns true if the given directory or filename is one of the hidden ones
# that we don't want to show users.
sub IsHidden {
my ($name) = (@_);
$name =~ s:///*:/:g; # Remove any multiple slashes.
if (!defined @hidelist) {
if (open(HIDE, "<data/hidelist")) {
while (<HIDE>) {
chop;
s/^\s*//g; # Strip leading whitespace
s/\s*$//g; # Strip trailing whitespace
if ( /^#/ || /^$/) {
next;
}
push(@hidelist, $_);
}
close HIDE;
} else {
@hidelist = ();
}
}
foreach my $item (@hidelist) {
if ($name =~ m/$item/) {
return 1;
}
}
return 0;
}
sub CheckHidden {
my ($name) = (@_);
if (IsHidden($name)) {
$| = 1;
print "";
die "Security violation; not allowed to access $name.";
}
}

View File

@@ -1,77 +0,0 @@
#!/usr/bonsaitools/bin/perl -w
# -*- Mode: perl; indent-tabs-mode: nil -*-
#
# 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 the Bonsai CVS tool.
#
# 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.
require 'CGI.pl';
use diagnostics;
use strict;
LoadCheckins();
sub IsChecked {
my ($value) = (@_);
if ($value == $::BatchID) {
return "CHECKED"
} else {
return ""
}
}
print "Content-type: text/html
<HTML>
<TITLE>Let's do the time warp again...</TITLE>
Which hook would you like to see?
";
my @list;
foreach my $i (glob(DataDir() . "/batch-*\[0-9\].pl")) {
if ($i =~ /batch-([0-9]*)\.pl/) {
push(@list, $1);
}
}
@list = sort {$b <=> $a} @list;
print "<FORM method=get action=\"toplevel.cgi\">\n";
print "<INPUT TYPE=HIDDEN NAME=treeid VALUE=$::TreeID>\n";
print "<INPUT TYPE=SUBMIT Value=\"Submit\"><BR>\n";
my $value = shift(@list);
print "<INPUT TYPE=radio NAME=batchid VALUE=$value " . IsChecked($value). ">";
print "The current hook.<BR>\n";
my $count = 1;
foreach my $i (@list) {
print "<INPUT TYPE=radio NAME=batchid VALUE=$i " . IsChecked($i) .
">\n";
my $name = DataDir() . "/batch-$i.pl";
require "$name";
print "Hook for tree that closed on " . MyFmtClock($::CloseTimeStamp) .
"<BR>\n";
}
print "<INPUT TYPE=SUBMIT Value=\"Submit\">\n";
print "</FORM>\n";
PutsTrailer();

View File

@@ -1,78 +0,0 @@
#!/usr/bonsaitools/bin/perl -w
# -*- Mode: perl; indent-tabs-mode: nil -*-
#
# 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 the Bonsai CVS tool.
#
# 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.
require 'lloydcgi.pl';
require 'utils.pl';
# use diagnostics;
# use strict;
my $db = ConnectToDatabase();
$| = 1;
if (!defined $form{'repositoryid'}) {
print "Content-type: text/html
This will create a cryptic report of all the people who have ever
touched each file within a directory heirarchy.
<P>
<form>
Repository: <select name='repositoryid'>
";
my $query = $db->Query("select id, repository from repositories order by id");
my @row;
while (@row = $query->fetchrow()) {
my ($id, $name) = (@row);
print "<option value=$id>$name\n";
}
print "</select><br>
Directory: <input size=60 name=dir>
<input type=submit value='Submit'>
</form>
";
exit;
}
print "Content-type: text/plain\n\n";
my $qstr = "select distinct who, dir, file from checkins, people, dirs, files where repositoryid = $form{'repositoryid'} and dirid=dirs.id and dir like '$form{'dir'}%' and fileid=files.id and whoid=people.id order by dir, file";
my $query = $db->Query($qstr);
if (!$query) {
die "Bad query: $qstr \n\n $::db_errstr";
}
my @row;
my $last = "";
while (@row = $query->fetchrow()) {
my ($who, $dir, $file) = (@row);
my $cur = "$dir/$file";
if ($cur ne $last) {
print "\n$cur\n";
$last = $cur;
}
print "$who\n";
}