Compare commits

..

181 Commits

Author SHA1 Message Date
ramiro%netscape.com
5a3c718f01 Prepare for RDF branch landing: Fix crash reported by slamm. Make the
instanciation of the cache not happen in the global scope, which might be
at an undefined time.  Instead, make sure the cache is ready in the
class ctor.


git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@6245 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-23 14:07:33 +00:00
rjc%netscape.com
29ce6efd77 Bug fix.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@6218 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-23 02:23:25 +00:00
rjc%netscape.com
4dc53712fd Item positioning.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@6217 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-23 02:22:25 +00:00
guha%netscape.com
f29092729f more branch landing prep
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@6215 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-23 00:41:29 +00:00
radha%netscape.com
d063c39a17 Now that, there can be MWContexts that are not the type of browserFrames and
with no scrollbars,
Check if the scrollbar is present before unmanaging it.


git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@6213 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-23 00:10:45 +00:00
guha%netscape.com
86784bcd3f make it possible to offline
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@6183 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-22 21:32:06 +00:00
hyatt%netscape.com
10970c3b38 ...
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@6141 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-22 03:18:46 +00:00
guha%netscape.com
a708dcccaf Prepare for Branch Landing
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@6138 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-22 03:13:27 +00:00
hyatt%netscape.com
d3cfe127bf Improving the docking and floating behavior.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@6129 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-22 00:32:44 +00:00
hyatt%netscape.com
025f28f5bf Improvements to the depressed button behavior and to the tree view look.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@6122 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-21 23:32:20 +00:00
hyatt%netscape.com
b46a021c7f Fixes to make things start depressing on the toolbars.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@6117 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-21 22:24:08 +00:00
ramiro%netscape.com
1c11269b8d No c++ comments in c files.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@6054 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-21 04:04:51 +00:00
guha%netscape.com
dff2a3eb51 small fix
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@6050 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-21 03:09:42 +00:00
slamm%netscape.com
e3a3bfca10 Use C-style comments instead of C++.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@6023 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-20 23:39:30 +00:00
radha%netscape.com
ed706ad519 correction to previous commits
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@6020 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-20 23:10:50 +00:00
radha%netscape.com
2c0e1cbfda Add RDFImage to the c++ files list
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@6019 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-20 23:09:33 +00:00
radha%netscape.com
9ea05b9445 Image management class for Aurora. Initial checkin
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@6018 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-20 23:08:54 +00:00
radha%netscape.com
65a27483bf Define Image library callback functions and methods so that different objects can handle these images in different ways.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@6017 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-20 23:01:47 +00:00
radha%netscape.com
00a5da6815 iImplement a ViewType enum to identify different types of views. Add a
static method to obtain a view of particular type from a top level view.


git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@6016 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-20 23:00:52 +00:00
radha%netscape.com
aef515fe67 Let the selector bar buttons display images
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@6015 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-20 22:59:55 +00:00
radha%netscape.com
b401b29329 iModify image library callbacks to call the methods in mwcontext. The checkin is part of getting Aurora selector bar buttons to show images
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@6014 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-20 22:58:45 +00:00
hyatt%netscape.com
135c9dd85a Fixing a change.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@6008 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-20 22:11:57 +00:00
hyatt%netscape.com
b855ac640e Modifying the exposed paneFromResource call for FEs.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@6006 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-20 22:09:53 +00:00
radha%netscape.com
2dbbbe63ae iCheck if a valid scrollbar is found before accessing it
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@6004 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-20 22:01:17 +00:00
radha%netscape.com
aec94e8525 setup image rendering callback handles in the MWcontext created to draw into
grid.


git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@6003 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-20 22:00:51 +00:00
radha%netscape.com
9f0403fb9a Add declarations for image library callbacks that will be called into
frame objects. Move some typedefs around to make the declarations visible
to all modules. Checkin part of getting images to render into selector bar
buttons


git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@6002 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-20 21:59:57 +00:00
radha%netscape.com
48d562d1b0 *** empty log message ***
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@6001 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-20 21:56:32 +00:00
hyatt%netscape.com
f2f4864505 Fixes fixes fixes.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@5999 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-20 21:47:17 +00:00
hyatt%netscape.com
00faf17a04 Drawing fix.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@5973 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-20 19:49:11 +00:00
hyatt%netscape.com
bd08af520a More tweaks.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@5863 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-18 00:12:48 +00:00
rjc%netscape.com
b3fdb08f61 Java Security changes.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@5854 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-17 22:59:40 +00:00
hyatt%netscape.com
8e7fcd6cc6 Fix to prevent crashes on docked window resize.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@5822 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-17 17:52:35 +00:00
hyatt%netscape.com
c12b9aad25 Docking behavior restored.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@5819 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-17 17:51:34 +00:00
hyatt%netscape.com
9925c77fa9 Numerous fixes to get SHACK back up to speed.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@5786 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-17 02:59:42 +00:00
hyatt%netscape.com
3142bbcae3 Shrinking the URLBar.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@5782 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-17 02:14:55 +00:00
hyatt%netscape.com
443a3a3d5a Fix a typo.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@5780 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-17 00:55:09 +00:00
hyatt%netscape.com
d986b2cb61 Fix for a resource leak in OnPaint.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@5778 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-17 00:52:49 +00:00
hyatt%netscape.com
7f4afad0b4 Even more fixes.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@5775 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-17 00:25:00 +00:00
hyatt%netscape.com
2ba220f101 Focus behaving properly.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@5770 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-16 23:51:40 +00:00
hyatt%netscape.com
52d24c2849 Fixing some changes.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@5753 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-16 23:19:58 +00:00
hyatt%netscape.com
6eba76ae69 More tweaks of the new UI.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@5749 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-16 22:18:04 +00:00
hyatt%netscape.com
1f0ab27f6b More improvements.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@5732 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-16 20:58:16 +00:00
hyatt%netscape.com
8d0588b431 Making sure autoopen is true for panes from resources.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@5723 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-16 19:34:10 +00:00
hyatt%netscape.com
ecee9d773c Beginning work on the new chrome.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@5708 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-16 09:16:39 +00:00
rjc
140b117f65 Add prototype.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@5578 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-15 04:24:10 +00:00
rjc
2ed508df57 Bug fix determining zone name for afp URLs.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@5571 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-15 03:27:32 +00:00
guha
ca63e6b270 More fixes for web mail
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@5507 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-14 19:42:42 +00:00
guha
7a2d80e335 More shack stuff
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@5470 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-14 04:43:04 +00:00
guha
9023f6d583 Getting the params in the object tag
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@5469 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-14 04:41:38 +00:00
rjc
10b0586ea7 Smart nodes can now prompt for data (if not obtained via drag&drop)
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@5371 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-11 21:16:56 +00:00
rjc
823db7fc6e Smart nodes can now prompt for info (if not provided via drag&drop).
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@5370 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-11 21:09:41 +00:00
guha
37d7cdf558 Shack is in.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@5338 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-11 02:23:19 +00:00
guha
5a6106a871 Add the WINFE parts of shack
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@5337 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-11 02:22:47 +00:00
hyatt
9ed29863d5 Fix for SHACK.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@5295 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-10 18:42:07 +00:00
hyatt
2971888668 Really fixed.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@5294 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-10 18:39:12 +00:00
hyatt
977c53f7a4 FIx for SHACK.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@5293 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-10 18:36:44 +00:00
hyatt
a4d6e6073b Fixing bugs from the tip.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@5290 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-10 17:24:50 +00:00
rjc
7f4cc52ea7 Use compareStrings() instead of strcasecmp.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@5262 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-09 23:19:49 +00:00
rjc
5ab513043b Smart sorting.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@5257 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-09 22:28:19 +00:00
ramiro
42508c8845 Add pane test 4. Add popup to toolbar test.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@5221 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-09 12:21:50 +00:00
ramiro
7588b3f44c Handle popup menus.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@5220 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-09 12:21:05 +00:00
ramiro
00785562d0 Add support for debug tracing widget methods.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@5219 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-09 12:09:44 +00:00
hyatt
857af71f91 Bug fixes.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@5189 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-09 01:15:37 +00:00
rjc
09e1d77b7d Bump up MAX_ATTRIBUTES value.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@5145 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-08 15:22:07 +00:00
rjc
e98b4ea44a Some more smart node support.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@5140 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-08 10:33:17 +00:00
rjc
95e3af6650 Export XP_GetNavCenterContext
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@5139 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-08 09:55:14 +00:00
rjc
6e47839e99 Support for "smart nodes".
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@5138 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-08 09:52:10 +00:00
rjc
7b31013aab Fix Unix Date strings.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@5135 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-08 04:55:21 +00:00
rjc
8476b13dc4 Look for more META tags when bookmarking a URL.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@5129 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-08 03:12:31 +00:00
rjc
1897b9e9ac HT_ContainerSupportsNaturalOrderSort() now returns false if sorting is imposed.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@5127 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-08 03:04:25 +00:00
rjc
2e52bc7f99 Small drag&drop fix.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@5125 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-08 02:27:01 +00:00
rjc
0f3e0a00d1 Support for getting/setting topmode visible node hint.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@5085 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-07 04:29:44 +00:00
rjc
c816e79bf4 Event unification.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@5076 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-06 23:42:54 +00:00
rjc
fbe4d9ca17 Unification of events.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@5075 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-06 23:19:26 +00:00
rjc
ae113167c8 Additions "file://" URL support for HT_LaunchURL().
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@5039 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-06 05:19:45 +00:00
hyatt
efc6731db3 Fix for garbled floating window style.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@4978 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-03 00:58:12 +00:00
hyatt
9fc12b17d9 Tweaking context stuff.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@4909 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-02 18:49:46 +00:00
rjc
b5eeea0b29 Bug fix in RDF_AddDataSource()
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@4890 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-02 02:58:28 +00:00
hyatt
a4d0070116 More fixes for the style.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@4872 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-02 00:47:50 +00:00
hyatt
260d7b176a More fixes to the frame style.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@4857 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-02 00:28:10 +00:00
hyatt
9e2c8e23dc Altering the style of the window.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@4856 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-02 00:26:35 +00:00
hyatt
4ae51e0e1b Fixed the selector bar buttons so that they draw at the right size.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@4841 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-01 22:54:50 +00:00
hyatt
5f0f164a9f Fix for the crazy aurora resize bug.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@4833 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-01 22:01:51 +00:00
hyatt
b02cba48e5 Bug fixes for icons and for the new column notify proc that got added.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@4832 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-01 21:44:25 +00:00
rjc
53565fce62 Additions/changes for Java security (Raman)
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@4776 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-01 02:46:21 +00:00
rjc
e453bf6340 Additions/changes for Java security. (Raman)
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@4775 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-01 02:42:18 +00:00
rjc
305668ae51 Additions for java security (Raman)
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@4774 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-01 02:41:35 +00:00
rjc
b833e107b3 Changes for Java Security (raman)
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@4773 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-01 02:41:14 +00:00
hyatt
94497c058c Fix to separators on the toolbars.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@4746 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-30 22:34:03 +00:00
guha
0c328294f4 *** empty log message ***
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@4745 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-30 22:21:05 +00:00
rjc
304263e5c4 Small fix for HT_LaunchURL().
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@4698 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-30 03:09:49 +00:00
rjc
4f05e8122c Now use PR_GetFileInfo() to determine if a file URL is a directory or not, instead of trying to OpenDir() it.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@4695 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-30 02:20:27 +00:00
rjc
b3c32d208d Column notification changes.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@4692 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-30 01:55:22 +00:00
hyatt
5ebe31a123 More improvements to the tree view, plus a bug fix for composer's bookmarks menu.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@4691 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-30 01:37:13 +00:00
hyatt
3c050c01d6 ...
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@4680 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-29 23:23:46 +00:00
hyatt
b47085df20 Re-architecting the Aurora selector popup buttons and the window hierarchy for the selector bar/tree view.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@4679 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-29 23:22:28 +00:00
hyatt
cfa996ce36 Committing the icon fixes to stop memory leaks.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@4668 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-29 18:03:46 +00:00
ramiro
444c1d774b Make the layable children a list.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@4659 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-28 12:39:43 +00:00
(no author)
b11cf13727 This commit was manufactured by cvs2svn to create branch
'RDF_BRANCH_060398'.

git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@4658 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-28 10:56:04 +00:00
ramiro
dd60162ac9 Generate and build the get_info programs only once to speed things up.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@4657 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-28 10:56:03 +00:00
rjc
39a0f90a40 Don't add META tag info if it already exists.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@4645 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-27 07:47:20 +00:00
rjc
8ef4d15ebc Little bit more META support.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@4643 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-27 03:08:33 +00:00
rjc
d80f9cd836 When bookmarking, now look for META tags.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@4633 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-27 02:44:52 +00:00
rjc
66086649e5 Bug fix: do a copyReference() on a cut as well as a copy.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@4612 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-26 23:39:07 +00:00
rjc
ea4641e6a8 Keyword support.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@4607 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-26 23:29:16 +00:00
ramiro
c893070650 Add support for magically generating the motif compile and link flags.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@4583 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-26 16:31:01 +00:00
ramiro
008c7b098a Make it even smarter.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@4575 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-26 15:49:15 +00:00
ramiro
9289593191 Make detection of motif/lesstif more robust.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@4567 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-26 14:23:57 +00:00
ramiro
6108f1cfe6 Merge stuff from tip. We were out of whack.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@4565 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-26 12:32:38 +00:00
ramiro
a056ee497c Fix the linux motif/glibc config problems once and for all. Build a small
test program to find out if we are using gnu libc2.  Build a small test
program to determine the version of motif/lesstif being used.  Use the
output of these to set flags used in the xfe.  See config/Makefile for
comments.

Also, handle linux 2.1 builds.


git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@4564 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-26 12:22:06 +00:00
ramiro
8c4e7667ec Fix the linux motif/glibc config problems once and for all. Build a small
test program to find out if we are using gnu libc2.  Build a small test
program to determine the version of motif/lesstif being used.  Use the
output of these to set flags used in the xfe.  See config/Makefile for
comments.


git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@4563 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-26 12:20:30 +00:00
rjc
c5639b51bb On Mac, Export global vocabulary.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@4546 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-25 23:53:14 +00:00
rjc
54b8746e03 Additional column changes.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@4498 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-25 17:00:37 +00:00
rjc
d96e7eb43f Additional column support.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@4482 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-25 09:19:03 +00:00
rjc
12cf59fa83 Cleanup. Add prototypes, etc.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@4404 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-24 07:46:45 +00:00
rjc
cc5ba36216 Cleanup. Small changes to cookie-related code.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@4370 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-24 01:19:13 +00:00
rjc
231753780d Add lib/layout/laybuiltin.c to project and add prototypes to fix build bustage for spence.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@4360 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-24 00:13:35 +00:00
spence
eff31f2a51 fix build bustage
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@4318 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-23 20:40:03 +00:00
rjc
29a82b3119 Fix Mac build bustage.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@4293 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-23 09:18:34 +00:00
guha
b93d392c32 more stuff
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@4229 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-22 17:55:25 +00:00
ramiro
d00f40f41e Fix prototype for XML_ConverterInt(). Last fileType argument was missing.
Fixes build bustage on unix.


git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@4204 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-21 01:50:28 +00:00
radha
302cd7756d Features that implement context menus in Aurora for unix. Code reviwed by
slamm.


git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@4201 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-20 07:45:17 +00:00
guha
5d70d9305e Bunch of bug fixes
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@4174 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-19 23:42:28 +00:00
hyatt
4a154259d4 Merging drop menu changes from the tip into the branch.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@4148 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-19 18:45:38 +00:00
hyatt
d79ffd0c44 The columns finally work the way they're supposed to in the tree view.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@4145 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-19 17:10:04 +00:00
hyatt
a022d606c1 Trying to make columns behave properly.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@4122 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-19 01:58:56 +00:00
hyatt
61e25ac17c Woops.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@4121 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-19 01:35:48 +00:00
hyatt
5f7fd0129b Fixing a bug where all frame windows had a top level bookmarks menu.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@4117 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-19 01:13:49 +00:00
hyatt
4b9eab2061 Increasing the springload timer delay for folders.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@4076 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-18 19:47:45 +00:00
hyatt
4e40a04e40 Added support for freeing a SHACK-based builtin tree view.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@4074 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-18 18:50:27 +00:00
hyatt
b6fc2d35f2 Enabling SHACK.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@4055 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-18 02:12:52 +00:00
hyatt
8de3e8e2a6 Tweak to make sure a column shows up.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@4053 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-18 02:11:32 +00:00
spence
dc236b96d7 turn on SHACK
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@4040 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-18 00:45:45 +00:00
spence
ea0a1176f8 turn on SHACK
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@4039 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-18 00:39:34 +00:00
guha
20e9a7a80e Separator recognition
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@4009 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-17 21:14:36 +00:00
hyatt
2c4a1148b0 Added support for separators to the toolbars.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@3989 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-17 18:58:20 +00:00
hyatt
6563ca8380 Fixing the URL bar.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@3962 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-17 02:19:14 +00:00
guha
1db39dcf71 More random RDF fixes
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@3938 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-16 21:58:38 +00:00
hyatt
9c81bd9828 NavCenter shows up once more.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@3863 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-16 03:40:04 +00:00
hyatt
e60a4957ae In preparation for adding separators to the toolbars, I've got a 3d highlight/shadow picker added
to rdfliner.cpp.


git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@3862 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-16 03:27:13 +00:00
hyatt
2f97fe26db The URL bar returns!
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@3859 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-16 02:49:58 +00:00
spence
bbcae9924f SHACK stubs for layout funcs on macfe
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@3854 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-16 01:56:32 +00:00
guha
7c1f06fe9e Fix a couple more of the bugs reported by
Mr. Blythe related to the RDF back end


git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@3817 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-15 21:27:49 +00:00
guha
d6437c2620 Fix RDF crashing on exit.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@3797 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-15 19:53:54 +00:00
hyatt
19ec763494 Added support for the URL bar.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@3796 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-15 19:32:17 +00:00
hyatt
7ea481deb8 Tweak to get the Win95 volume scan working.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@3794 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-15 19:04:02 +00:00
guha
d5b94e622b Some file system related improvements
and support for shack


git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@3790 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-15 17:04:39 +00:00
guha
6ea9ca4e84 more integration
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@3726 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-12 21:11:15 +00:00
hyatt
cf693611cd Plugging a memory leak in RDF_DeleteNotifiable.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@3719 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-12 19:33:45 +00:00
guha
e5e5f82aaf Cookie UI related change
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@3715 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-12 18:08:45 +00:00
guha
d06a1abfab Get generalized properties working
(So, the property dialog on cookies will work now)


git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@3661 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-11 18:32:32 +00:00
guha
edd04b050a Some SMIL support
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@3650 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-11 02:41:16 +00:00
guha
b1a06921e2 Some Cookie related fixes
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@3649 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-11 02:40:42 +00:00
hyatt
9152254b56 More toolbar improvements.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@3646 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-11 02:04:32 +00:00
hyatt
1f6dc84932 More improvements.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@3638 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-11 00:30:42 +00:00
hyatt
a555ca536a Fixed bustage.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@3630 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-10 22:09:09 +00:00
hyatt
5c0557f7be More improvements to the configurable UI.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@3628 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-10 21:22:32 +00:00
hyatt
2ec2a79115 Changes to the vocab elements for configurable UI.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@3627 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-10 21:22:12 +00:00
hyatt
9cb4702886 Fixed a redrawing problem.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@3587 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-10 02:29:36 +00:00
hyatt
ff9a49b289 More fun with custom backgrounds and colors.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@3586 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-10 02:18:48 +00:00
hyatt
7c9dfd4b92 Added custom backgrounds and colors to toolbars.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@3582 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-10 01:52:47 +00:00
hyatt
0003f12ff8 Added enabling/disabling of commands on the toolbar.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@3567 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-09 22:05:31 +00:00
hyatt
b4c5a692b4 Added toolbar and statusbar text to the configurable toolbar buttons.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@3563 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-09 21:19:15 +00:00
hyatt
e337b54f21 More icon URL stuff.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@3557 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-09 20:45:54 +00:00
hyatt
12eceff91b Added new icon call to enable me to get to rollover/pressed/disabled icons.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@3556 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-09 20:33:17 +00:00
hyatt
cb980f7619 Added more vocabulary elements for configurable toolbars.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@3554 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-09 20:12:57 +00:00
hyatt
eb5927a2be More toolbar improvements.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@3535 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-09 02:37:09 +00:00
hyatt
87fbf5d900 Updating vocab for toolbar elements.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@3534 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-09 02:36:50 +00:00
guha
8fecf8113d Fix History Problem
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@3533 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-09 02:27:53 +00:00
rjc
91ed15b793 Support for enabling/disabling nodes (toolbars)
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@3531 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-09 01:48:28 +00:00
rjc
e8baea49bc HT_Find fix (problem regarding which pane to open find URL in).
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@3529 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-09 01:01:51 +00:00
hyatt
8243064f80 More toolbar action.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@3506 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-08 20:29:29 +00:00
rjc
c9a1068d69 Added support for "Reveal in Finder" (Mac).
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@3473 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-08 03:05:20 +00:00
rjc
a7f8b5a5e0 Mac specific additions.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@3451 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-07 10:22:00 +00:00
hyatt
0aa7d0c5b3 Fixes to toolbar stuff.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@3413 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-06 01:15:00 +00:00
hyatt
e296a9ccca Welcome to the wonderful world of configurable toolbars.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@3404 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-06 00:35:46 +00:00
hyatt
f684e863ef Committing toolbar changes.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@3398 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-06 00:06:50 +00:00
hyatt
43074aa62c Added HT_NewToolbar pane to HT.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@3294 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-05 01:34:21 +00:00
hyatt
196722034b Fixes to make the toolbar and navcenter creation dynamic.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@3238 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-04 18:54:40 +00:00
hyatt
e074c10b86 Fixing custom icons.
git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@3157 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-04 02:40:54 +00:00
(no author)
c7747d98ca This commit was manufactured by cvs2svn to create branch
'RDF_BRANCH_060398'.

git-svn-id: svn://10.0.0.236/branches/RDF_BRANCH_060398@3107 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-03 21:23:26 +00:00
59597 changed files with 1822653 additions and 10415307 deletions

View File

@@ -1 +0,0 @@
CVSROOT/history

View File

@@ -1,4 +0,0 @@
If you change the modules file, you *MUST* run:
check-modules.pl modules
*before* cvs committing the new modules file.

View File

@@ -1,257 +0,0 @@
#!/usr/bin/env perl
# The contents of this file are subject to the Netscape 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/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 this file as it was released upon February 25, 1999.
#
# The Initial Developer of the Original Code is Netscape Communications
# Corporation. Portions created by Netscape are
# Copyright (C) 1999 Netscape Communications Corporation. All
# Rights Reserved.
#
# Contributor(s):
#
# check-modules.pl - Check cvs modules file for duplicates and syntax errors.
#
# TODO:
# - Parse output of 'cvs co -c' command in addition to the raw file.
#
# Send comments, improvements, bugs to Steve Lamm (slamm@netscape.com).
# $Id: check-modules.pl,v 1.1 2000-06-01 11:03:22 leaf%mozilla.org Exp $
require 5.004;
use Getopt::Std;
sub usage
{
my ($progname) = $0 =~ /([^\/]+)$/;
die "Usage: $progname [options] [<module_file>]
Reads from stdin if no file is given.
Options:
-v Verbose. Print the modules and what they include.
-h Print this usage message.
";
}
&usage if !getopts('hv');
&usage if defined($opt_h);
######################################################################
# begin main
# The subroutine &parse_input creates the globals @module_names,
# %module_tree, and %line_number (described below).
&parse_input;
foreach $module (@module_names)
{
&check_module($module);
}
# end main
######################################################################
# begin subroutines
sub parse_input
{
# Globals created:
# @module_names - List of module names in the order they are seen.
# %module_tree - Hash table of lists. Keys are module names.
# Values are lists of module names and diretories.
# %line_number - Hash indexed by module name and module item.
# Values are line numbers.
@module_names = ();
%module_tree = ();
%line_number = ();
while (<>)
{
next if /^\#/ || /^\s*$/;
# Check for a module definition
if (/^([_a-zA-Z0-9]+)\s+(?:-l\s+)?-a\s*(.*)$/)
{
my ($module_name) = $1;
my (@sub_items) = ();
my ($line) = $2;
push @module_names, $module_name;
# Read line continuations (i.e. lines with '\' on the end).
while ($line =~ /\\$/)
{
chomp $line;
$line =~ s/^\s*(.*?)\s*\\$/$1/;
if (length($line) > 0)
{
my (@line_items) = split(/\s+/, $line);
push @sub_items, @line_items;
&save_line_numbers($module_name, $., @line_items);
}
$line = <>;
}
chomp $line;
$line =~ s/^\s*(.*?)\s*$/$1/;
my (@line_items) = split(/\s+/, $line);
push @sub_items, @line_items;
&save_line_numbers($module_name, $., @line_items);
$module_tree{$module_name} = \@sub_items;
}
else
{
die "Unexpected input: line $.: $_\n";
}
}
}
sub check_module
{
my ($module) = $_[0];
my ($sub_module, $sub_dir, $prev_module);
# Globals created:
# %have_checked - List of modules already checked.
# %full_list - All the directories for a module.
# Indexed by module and sub directory.
# Values are the module that added the directory.
return if defined($have_checked{$module});
$full_list{$module} = {};
foreach $sub_module ( &get_modules($module) )
{
&check_module($sub_module);
# Add the directories of the sub_module to this module
while (($sub_dir, $prev_module) = each %{$full_list{$sub_module}})
{
$full_list{$module}{$sub_dir} = $prev_module;
}
}
foreach $sub_dir ( &get_directories($module) )
{
if (defined($full_list{$module}{$sub_dir}))
{
my ($previous_module) = $full_list{$module}{$sub_dir};
&warn_multiple($sub_dir, $module, $previous_module);
}
else
{
$full_list{$module}{$sub_dir} = $module;
# Check if parent or child of directory was previously added
#
&check_inclusion($sub_dir, $module);
}
}
if (defined($opt_v))
{
print "$module\n";
while (($sub_dir, $prev_module) = each %{$full_list{$module}})
{
print " $sub_dir, $prev_module\n";
}
}
$have_checked{$module} = 1;
}
sub get_modules
{
my ($module) = $_[0];
my (@output) = ();
my ($sub_item);
foreach $sub_item ( @{ $module_tree{$module} } )
{
push @output, $sub_item if defined($module_tree{$sub_item});
}
return @output;
}
sub get_directories
{
my ($module) = $_[0];
my (@output) = ();
my ($sub_item);
foreach $sub_item ( @{ $module_tree{$module} } )
{
push @output, $sub_item unless defined($module_tree{$sub_item});
}
return @output;
}
sub save_line_numbers
{
my ($module, $line_num, @sub_items) = @_;
my ($sub_item);
foreach $sub_item (@sub_items)
{
if (defined($line_number{$module}{$sub_item}))
{
$line_number{$module}{$sub_item} =
"$line_number{$module}{$sub_item}, $line_num";
}
else
{
$line_number{$module}{$sub_item} = $line_num;
}
}
}
sub warn_multiple
{
my ($sub_item, $module, $previous_module) = @_;
my ($line_txt) = '';
my (@lines) = split(', ', $line_number{$module}{$sub_item});
push(@lines, split(', ', $line_number{$previous_module}{$sub_item}))
unless $previous_module eq $module;
$line_txt = "lines ".join(', ', sort { $a <=> $b } @lines);
warn "Error: Multiple listing: $line_txt: $sub_item.\n";
}
sub check_inclusion
{
my ($sub_dir, $module) = @_;
my ($dir);
foreach $dir (keys %{$full_list{$module}})
{
next if $dir eq $sub_dir;
if (length($dir) < length($sub_dir))
{
my ($temp) = $sub_dir;
$sub_dir = $dir;
$dir = $temp;
}
if ($dir =~ /^$sub_dir\//)
{
warn "Warning: $dir (line "
.$line_number{$full_list{$module}{$dir}}{$dir}
.") pulled by $sub_dir (line "
.$line_number{$full_list{$module}{$sub_dir}}{$sub_dir}
.")\n";
}
}
}

View File

@@ -1,21 +0,0 @@
# The "checkoutlist" file is used to support additional version controlled
# administrative files in $CVSROOT/CVSROOT, such as template files.
#
# The first entry on a line is a filename which will be checked out from
# the corresponding RCS file in the $CVSROOT/CVSROOT directory.
# The remainder of the line is an error message to use if the file cannot
# be checked out.
#
# File format:
#
# [<whitespace>]<filename><whitespace><error message><end-of-line>
#
# comment lines begin with '#'
passwd
readers
commitcheck.pl
dolog.pl
FilesToNotExport
cvsmailfilter.pl
sendnotification.pl
readonlyusers.pl

View File

@@ -1,711 +0,0 @@
#!/usr/bin/perl --
# DO NOT EDIT THIS FILE! You must instead go to https://despot.mozilla.org/, and
# tweak things from there.
$mode{'180'} = 'Closed';
$branch{'180'} = 'HEAD';
$fullname{'180'} = 'accessibility';
$blessed{'180'} = ['aaronleventhal%moonset.net',];
$super{'180'} = ['marco.zehe%googlemail.com','ginn.chen%sun.com','dbolter%mozilla.com','surkov.alexander%gmail.com',];
$mode{'188'} = 'Open';
$branch{'188'} = 'HEAD';
$fullname{'188'} = 'Application Suite';
$mode{'190'} = 'Closed';
$branch{'190'} = 'HEAD';
$fullname{'190'} = 'Bugzilla';
$blessed{'190'} = ['wurblzap%gmail.com','olav%bkor.dhs.org','lpsolit%gmail.com','ghendricks%novell.com',];
$super{'190'} = ['bzrmirror%bugzilla.org','justdave%bugzilla.org',];
$mode{'204'} = 'Closed';
$branch{'204'} = 'BUGZILLA-2_18-BRANCH';
$fullname{'204'} = 'Bugzilla2.18';
$blessed{'204'} = [];
$super{'204'} = ['justdave%bugzilla.org',];
$mode{'191'} = 'Closed';
$branch{'191'} = 'BUGZILLA-2_20-BRANCH';
$fullname{'191'} = 'Bugzilla2.20';
$blessed{'191'} = ['myk%mozilla.org','wurblzap%gmail.com','vladd%bugzilla.org','olav%bkor.dhs.org','ghendricks%novell.com',];
$super{'191'} = ['mkanat%bugzilla.org','lpsolit%gmail.com','justdave%bugzilla.org',];
$mode{'203'} = 'Closed';
$branch{'203'} = 'BUGZILLA-2_22-BRANCH';
$fullname{'203'} = 'Bugzilla2.22';
$blessed{'203'} = ['wurblzap%gmail.com','vladd%bugzilla.org','reed%reedloden.com','olav%bkor.dhs.org','myk%mozilla.org','ghendricks%novell.com',];
$super{'203'} = ['mkanat%bugzilla.org','lpsolit%gmail.com','justdave%bugzilla.org',];
$mode{'212'} = 'Closed';
$branch{'212'} = 'BUGZILLA-3_0-BRANCH';
$fullname{'212'} = 'Bugzilla3.0';
$blessed{'212'} = ['wurblzap%gmail.com','vladd%bugzilla.org','olav%bkor.dhs.org','myk%mozilla.org','ghendricks%novell.com',];
$super{'212'} = ['mkanat%bugzilla.org','lpsolit%gmail.com','justdave%bugzilla.org',];
$mode{'217'} = 'Closed';
$branch{'217'} = 'BUGZILLA-3_2-BRANCH';
$fullname{'217'} = 'Bugzilla3.2';
$blessed{'217'} = ['wurblzap%gmail.com','vladd%bugzilla.org','olav%bkor.dhs.org','myk%mozilla.org','ghendricks%novell.com',];
$super{'217'} = ['mkanat%bugzilla.org','lpsolit%gmail.com','justdave%bugzilla.org',];
$mode{'220'} = 'Closed';
$branch{'220'} = 'BUGZILLA-3_4-BRANCH';
$fullname{'220'} = 'Bugzilla3.4';
$blessed{'220'} = ['wurblzap%gmail.com','olav%bkor.dhs.org','ghendricks%novell.com','dlawrence%mozilla.com',];
$super{'220'} = ['mkanat%bugzilla.org','lpsolit%gmail.com','justdave%bugzilla.org',];
$mode{'214'} = 'Open';
$branch{'214'} = 'HEAD';
$fullname{'214'} = 'Build and Release Tools';
$mode{'55'} = 'Open';
$branch{'55'} = 'HEAD';
$fullname{'55'} = 'Build Config';
$mode{'226'} = 'Open';
$branch{'226'} = 'HEAD';
$fullname{'226'} = 'Build Config: comm-central';
$mode{'183'} = 'Open';
$branch{'183'} = 'HEAD';
$fullname{'183'} = 'calendar';
$mode{'210'} = 'Open';
$branch{'210'} = 'HEAD';
$fullname{'210'} = 'camino';
$mode{'211'} = 'Open';
$branch{'211'} = 'HEAD';
$fullname{'211'} = 'ChatZilla';
$mode{'146'} = 'Restricted';
$branch{'146'} = 'NSPRPUB_PRE_4_2_CLIENT_BRANCH';
$fullname{'146'} = 'Client NSPR';
$blessed{'146'} = ['sgautherie.bz%free.fr','mozilla%weilbacher.org','kaie%kuix.de','julien.pierre.boogz%sun.com','gerv%gerv.net','alexei.volkov.bugs%sun.com','unai.gaston%sun.com',];
$super{'146'} = ['ted.mielczarek%gmail.com','wtc%google.com','nelson%bolyard.com',];
$mode{'213'} = 'Open';
$branch{'213'} = 'HEAD';
$fullname{'213'} = 'Code Analysis and Debugging Tools';
$mode{'56'} = 'Open';
$branch{'56'} = 'HEAD';
$fullname{'56'} = 'Composer';
$mode{'171'} = 'Open';
$branch{'171'} = 'HEAD';
$fullname{'171'} = 'Cookies and Permissions';
$mode{'4'} = 'Open';
$branch{'4'} = 'HEAD';
$fullname{'4'} = 'default';
$defaultid = '4';
$mode{'3'} = 'Closed';
$branch{'3'} = 'HEAD';
$fullname{'3'} = 'despotaccess';
$blessed{'3'} = [];
$super{'3'} = ['justdave%bugzilla.org','despotdaemon',];
$mode{'59'} = 'Open';
$branch{'59'} = 'HEAD';
$fullname{'59'} = 'Directory SDK';
$mode{'101'} = 'Open';
$branch{'101'} = 'HEAD';
$fullname{'101'} = 'docshell';
$mode{'103'} = 'Open';
$branch{'103'} = 'HEAD';
$fullname{'103'} = 'Document Object Model';
$mode{'184'} = 'Open';
$branch{'184'} = 'HEAD';
$fullname{'184'} = 'DOM Inspector';
$mode{'208'} = 'Open';
$branch{'208'} = 'HEAD';
$fullname{'208'} = 'Embedding';
$mode{'181'} = 'Open';
$branch{'181'} = 'HEAD';
$fullname{'181'} = 'Find As You Type';
$mode{'166'} = 'Open';
$branch{'166'} = 'HEAD';
$fullname{'166'} = 'Firefox';
$mode{'182'} = 'Open';
$branch{'182'} = 'HEAD';
$fullname{'182'} = 'Global Key Bindings';
$mode{'201'} = 'Open';
$branch{'201'} = 'HEAD';
$fullname{'201'} = 'Graphics';
$mode{'144'} = 'Open';
$branch{'144'} = 'HEAD';
$fullname{'144'} = 'GTK Embedding Widget';
$mode{'102'} = 'Open';
$branch{'102'} = 'HEAD';
$fullname{'102'} = 'HTML Parser';
$mode{'67'} = 'Open';
$branch{'67'} = 'HEAD';
$fullname{'67'} = 'I18N Library';
$mode{'63'} = 'Open';
$branch{'63'} = 'HEAD';
$fullname{'63'} = 'ImageLib';
$mode{'130'} = 'Open';
$branch{'130'} = 'HEAD';
$fullname{'130'} = 'Java APIs for DOM';
$mode{'127'} = 'Open';
$branch{'127'} = 'HEAD';
$fullname{'127'} = 'Java APIs to WebShell';
$mode{'68'} = 'Open';
$branch{'68'} = 'HEAD';
$fullname{'68'} = 'Java Stubs';
$mode{'128'} = 'Open';
$branch{'128'} = 'HEAD';
$fullname{'128'} = 'Java to XPCOM Bridge';
$mode{'133'} = 'Open';
$branch{'133'} = 'HEAD';
$fullname{'133'} = 'Java Utility Classes';
$mode{'129'} = 'Open';
$branch{'129'} = 'HEAD';
$fullname{'129'} = 'Java-Implemented Plugins';
$mode{'70'} = 'Restricted';
$branch{'70'} = 'HEAD';
$fullname{'70'} = 'JavaScript';
$blessed{'70'} = ['vladimir%pobox.com','timeless%mozdev.org','sayrer%gmail.com','reed%reedloden.com','peterv%propagandism.org','pavlov%pavlov.net','jst%mozilla.org','jruderman%hmc.edu','jag%tty.nl','gerv%gerv.net','gavin%gavinsharp.com','dveditz%cruzio.com','dbaron%dbaron.org','daumling%adobe.com','cls%seawood.org','bzbarsky%mit.edu','bryner%brianryner.com','benjamin%smedbergs.us','bclary%bclary.com',];
$super{'70'} = ['shaver%mozilla.org','mrbkap%gmail.com','lwagner%mozilla.com','jwalden%mit.edu','jorendorff%mozilla.com','igor%mir2.org','graydon%mozilla.com','crowder%fiverocks.com','brendan%mozilla.org',];
$mode{'207'} = 'Open';
$branch{'207'} = 'HEAD';
$fullname{'207'} = 'JavaScript Debugger Backend';
$mode{'223'} = 'Open';
$branch{'223'} = 'HEAD';
$fullname{'223'} = 'js-ctypes';
$mode{'114'} = 'Open';
$branch{'114'} = 'HEAD';
$fullname{'114'} = 'js-tests';
$mode{'98'} = 'Open';
$branch{'98'} = 'HEAD';
$fullname{'98'} = 'Layout Engine';
$mode{'221'} = 'Open';
$branch{'221'} = 'HEAD';
$fullname{'221'} = 'libjar';
$mode{'72'} = 'Open';
$branch{'72'} = 'HEAD';
$fullname{'72'} = 'LiveConnect';
$mode{'123'} = 'Open';
$branch{'123'} = 'HEAD';
$fullname{'123'} = 'Mail and News Backend';
$mode{'165'} = 'Open';
$branch{'165'} = 'HEAD';
$fullname{'165'} = 'MathML';
$mode{'124'} = 'Open';
$branch{'124'} = 'HEAD';
$fullname{'124'} = 'MIME';
$mode{'157'} = 'Open';
$branch{'157'} = 'HEAD';
$fullname{'157'} = 'Movemail';
$mode{'19'} = 'Open';
$branch{'19'} = 'HEAD';
$fullname{'19'} = 'mozilla-toplevel';
$mode{'77'} = 'Open';
$branch{'77'} = 'HEAD';
$fullname{'77'} = 'NetLib';
$mode{'78'} = 'Restricted';
$branch{'78'} = 'HEAD';
$fullname{'78'} = 'NSPR';
$blessed{'78'} = ['gerv%gerv.net','mozilla%weilbacher.org','kaie%kuix.de','christophe.ravel.bugs%sun.com','bsmith%mozilla.com','alexei.volkov.bugs%sun.com',];
$super{'78'} = ['ted.mielczarek%gmail.com','wtc%google.com','nelson%bolyard.com',];
$mode{'163'} = 'Restricted';
$branch{'163'} = 'NSS_3_11_BRANCH';
$fullname{'163'} = 'NSS Stable Release Branch';
$blessed{'163'} = ['gerv%gerv.net','douglas%stebila.ca',];
$super{'163'} = ['slavomir.katuscak%sun.com','kaie%kuix.de','glen.beasley%sun.com','emaldona%redhat.com','christophe.ravel.bugs%sun.com','alexei.volkov.bugs%sun.com','wtc%google.com','rrelyea%redhat.com','nelson%bolyard.com','julien.pierre.boogz%sun.com',];
$mode{'162'} = 'Open';
$branch{'162'} = 'HEAD';
$fullname{'162'} = 'P3P';
$mode{'209'} = 'Open';
$branch{'209'} = 'HEAD';
$fullname{'209'} = 'Party Tool';
$mode{'225'} = 'Open';
$branch{'225'} = 'HEAD';
$fullname{'225'} = 'Penelope';
$mode{'81'} = 'Open';
$branch{'81'} = 'HEAD';
$fullname{'81'} = 'Plugins';
$mode{'82'} = 'Open';
$branch{'82'} = 'HEAD';
$fullname{'82'} = 'Preferences';
$mode{'69'} = 'Open';
$branch{'69'} = 'HEAD';
$fullname{'69'} = 'Privilege Manager';
$mode{'219'} = 'Open';
$branch{'219'} = 'HEAD';
$fullname{'219'} = 'PyXPCOM';
$mode{'161'} = 'Open';
$branch{'161'} = 'HEAD';
$fullname{'161'} = 'Qt-based gfx and widget';
$mode{'52'} = 'Open';
$branch{'52'} = 'HEAD';
$fullname{'52'} = 'RDF';
$mode{'84'} = 'Open';
$branch{'84'} = 'HEAD';
$fullname{'84'} = 'Registry';
$mode{'113'} = 'Open';
$branch{'113'} = 'HEAD';
$fullname{'113'} = 'REMOVEME - Photon';
$mode{'121'} = 'Open';
$branch{'121'} = 'HEAD';
$fullname{'121'} = 'REMOVEME - Xlib-based gfx and widget';
$mode{'179'} = 'Open';
$branch{'179'} = 'HEAD';
$fullname{'179'} = 'REMOVEME - XPrint';
$mode{'138'} = 'Open';
$branch{'138'} = 'HEAD';
$fullname{'138'} = 'Rhino';
$mode{'145'} = 'Restricted';
$branch{'145'} = 'HEAD';
$fullname{'145'} = 'security';
$blessed{'145'} = ['gerv%gerv.net','cfu%redhat.com',];
$super{'145'} = ['ryan.sleevi%gmail.com','kaie%kuix.de','emaldona%redhat.com','bsmith%mozilla.com','wtc%google.com','rrelyea%redhat.com',];
$mode{'151'} = 'Open';
$branch{'151'} = 'HEAD';
$fullname{'151'} = 'Security - Mozilla PSM Glue';
$mode{'173'} = 'Open';
$branch{'173'} = 'HEAD';
$fullname{'173'} = 'Standalone Composer';
$mode{'216'} = 'Open';
$branch{'216'} = 'HEAD';
$fullname{'216'} = 'storage';
$mode{'160'} = 'Open';
$branch{'160'} = 'HEAD';
$fullname{'160'} = 'String';
$mode{'100'} = 'Open';
$branch{'100'} = 'HEAD';
$fullname{'100'} = 'Style System';
$mode{'187'} = 'Open';
$branch{'187'} = 'HEAD';
$fullname{'187'} = 'SVG';
$mode{'205'} = 'Restricted';
$branch{'205'} = 'HEAD';
$fullname{'205'} = 'Tamarin';
$blessed{'205'} = [];
$super{'205'} = ['treilly%adobe.com','tierney%adobe.com','stejohns%adobe.com','brendan%mozilla.org','jodyer%adobe.com','edwsmith%adobe.com',];
$mode{'215'} = 'Open';
$branch{'215'} = 'HEAD';
$fullname{'215'} = 'Test Harness';
$mode{'202'} = 'Open';
$branch{'202'} = 'HEAD';
$fullname{'202'} = 'Testing Infrastructure';
$mode{'170'} = 'Open';
$branch{'170'} = 'HEAD';
$fullname{'170'} = 'Thunderbird';
$mode{'169'} = 'Open';
$branch{'169'} = 'HEAD';
$fullname{'169'} = 'toolkit';
$mode{'185'} = 'Open';
$branch{'185'} = 'HEAD';
$fullname{'185'} = 'Update Service';
$mode{'71'} = 'Open';
$branch{'71'} = 'HEAD';
$fullname{'71'} = 'Venkman';
$mode{'96'} = 'Open';
$branch{'96'} = 'HEAD';
$fullname{'96'} = 'View System';
$mode{'177'} = 'Open';
$branch{'177'} = 'HEAD';
$fullname{'177'} = 'Widget';
$mode{'172'} = 'Open';
$branch{'172'} = 'HEAD';
$fullname{'172'} = 'Widget - BeOS';
$mode{'49'} = 'Open';
$branch{'49'} = 'HEAD';
$fullname{'49'} = 'Widget - GTK';
$mode{'178'} = 'Open';
$branch{'178'} = 'HEAD';
$fullname{'178'} = 'Widget - Mac OS X';
$mode{'175'} = 'Open';
$branch{'175'} = 'HEAD';
$fullname{'175'} = 'Widget - Windows';
$mode{'199'} = 'Open';
$branch{'199'} = 'HEAD';
$fullname{'199'} = 'XBL';
$mode{'88'} = 'Open';
$branch{'88'} = 'HEAD';
$fullname{'88'} = 'XML';
$mode{'137'} = 'Open';
$branch{'137'} = 'HEAD';
$fullname{'137'} = 'XPApps';
$mode{'89'} = 'Open';
$branch{'89'} = 'HEAD';
$fullname{'89'} = 'XPCOM';
$mode{'118'} = 'Open';
$branch{'118'} = 'HEAD';
$fullname{'118'} = 'XPConnect';
$mode{'117'} = 'Open';
$branch{'117'} = 'HEAD';
$fullname{'117'} = 'XPIDL';
$mode{'150'} = 'Open';
$branch{'150'} = 'HEAD';
$fullname{'150'} = 'XPInstall';
$mode{'206'} = 'Open';
$branch{'206'} = 'HEAD';
$fullname{'206'} = 'xptcall';
$mode{'106'} = 'Open';
$branch{'106'} = 'HEAD';
$fullname{'106'} = 'XPToolkit';
$mode{'140'} = 'Open';
$branch{'140'} = 'HEAD';
$fullname{'140'} = 'XSLT Processor';
$mode{'200'} = 'Open';
$branch{'200'} = 'HEAD';
$fullname{'200'} = 'XTF';
sub GetT {
($b,$_) = (@_);
if ($b eq 'BUGZILLA-2_18-BRANCH') {
if (m:^mozilla/webtools/bugzilla/.*$:) {return '204';}
}
if ($b eq 'BUGZILLA-2_20-BRANCH') {
if (m:^mozilla/webtools/bugzilla/.*$:) {return '191';}
}
if ($b eq 'BUGZILLA-2_22-BRANCH') {
if (m:^mozilla/webtools/bugzilla/.*$:) {return '203';}
}
if ($b eq 'BUGZILLA-3_0-BRANCH') {
if (m:^mozilla/webtools/bugzilla/.*$:) {return '212';}
}
if ($b eq 'BUGZILLA-3_2-BRANCH') {
if (m:^mozilla/webtools/bugzilla/.*$:) {return '217';}
}
if ($b eq 'BUGZILLA-3_4-BRANCH') {
if (m:^mozilla/webtools/bugzilla/.*$:) {return '220';}
}
if ($b eq 'HEAD') {
if (m:^mozilla/rdf/.*$:) {return '52';}
if (m:^mozilla/extensions/p3p/.*$:) {return '162';}
if (m:^mozilla/build/.*$:) {return '55';}
if (m:^mozilla/config/.*$:) {return '55';}
if (m:^mozilla/tools/cross-commit$:) {return '55';}
if (m:^mozilla/tools/cvs2hg-import\.py$:) {return '55';}
if (m:^mozilla/tools/cvsmgmt/.*$:) {return '55';}
if (m:^mozilla/tools/elf-dynstr-gc/.*$:) {return '55';}
if (m:^mozilla/tools/relic/.*$:) {return '55';}
if (m:^mozilla/tools/trees\.pl$:) {return '55';}
if (m:^mozilla/content/xslt/.*$:) {return '140';}
if (m:^mozilla/extensions/transformiix/.*$:) {return '140';}
if (m:^mozilla/layout/mathml/.*$:) {return '165';}
if (m:^mozilla/editor/.*$:) {return '56';}
if (m:^mozilla/calendar/.*$:) {return '183';}
if (m:^mozilla/browser/.*$:) {return '166';}
if (m:^mozilla/other-licenses/branding/firefox/.*$:) {return '166';}
if (m:^mozilla/directory/.*$:) {return '59';}
if (m:^mozilla/gfx/src/photon/.*$:) {return '113';}
if (m:^mozilla/widget/src/photon/.*$:) {return '113';}
if (m:^mozilla/chrome/.*$:) {return '169';}
if (m:^mozilla/profile/.*$:) {return '169';}
if (m:^mozilla/toolkit/.*$:) {return '169';}
if (m:^mozilla/xulrunner/.*$:) {return '169';}
if (m:^mozilla/jpeg/.*$:) {return '63';}
if (m:^mozilla/modules/libimg/png/.*$:) {return '63';}
if (m:^mozilla/modules/libpr0n/.*$:) {return '63';}
if (m:^mozilla/modules/zlib/.*$:) {return '63';}
if (m:^mozilla/content/xul/.*$:) {return '106';}
if (m:^mozilla/layout/xul/.*$:) {return '106';}
if (m:^mozilla/mail/.*$:) {return '170';}
if (m:^mozilla/other-licenses/branding/thunderbird/.*$:) {return '170';}
if (m:^mozilla/testing/.*$:) {return '202';}
if (m:^mozilla/tools/httptester/.*$:) {return '202';}
if (m:^mozilla/tools/page-loader/.*$:) {return '202';}
if (m:^mozilla/tools/test-harness/.*$:) {return '202';}
if (m:^mozilla/tools/tests/.*$:) {return '202';}
if (m:^mozilla/tools/testserver/.*$:) {return '202';}
if (m:^mozilla/tools/testy/.*$:) {return '202';}
if (m:^mozilla/extensions/cookie/.*$:) {return '171';}
if (m:^mozilla/netwerk/cookie/.*$:) {return '171';}
if (m:^mozilla/intl/.*$:) {return '67';}
if (m:^mozilla/extensions/irc/.*$:) {return '211';}
if (m:^mozilla/widget/src/beos/.*$:) {return '172';}
if (m:^mozilla/modules/oji/.*$:) {return '68';}
if (m:^mozilla/nav-java/.*$:) {return '68';}
if (m:^mozilla/sun-java/.*$:) {return '68';}
if (m:^mozilla/tools/botrunner\.py$:) {return '214';}
if (m:^mozilla/tools/build-environment/.*$:) {return '214';}
if (m:^mozilla/tools/build/.*$:) {return '214';}
if (m:^mozilla/tools/buildbot-configs/.*$:) {return '214';}
if (m:^mozilla/tools/buildbot/.*$:) {return '214';}
if (m:^mozilla/tools/buildbotcustom/.*$:) {return '214';}
if (m:^mozilla/tools/l10n/.*$:) {return '214';}
if (m:^mozilla/tools/MozBuild/.*$:) {return '214';}
if (m:^mozilla/tools/patcher-configs/.*$:) {return '214';}
if (m:^mozilla/tools/patcher/.*$:) {return '214';}
if (m:^mozilla/tools/release/.*$:) {return '214';}
if (m:^mozilla/tools/tinderbox-configs/.*$:) {return '214';}
if (m:^mozilla/tools/tinderbox/.*$:) {return '214';}
if (m:^mozilla/tools/update-packaging/.*$:) {return '214';}
if (m:^mozilla/caps/.*$:) {return '69';}
if (m:^mozilla/tools/codesighs/.*$:) {return '213';}
if (m:^mozilla/tools/debug/.*$:) {return '213';}
if (m:^mozilla/tools/dreftool/.*$:) {return '213';}
if (m:^mozilla/tools/dumpdeps/.*$:) {return '213';}
if (m:^mozilla/tools/footprint/.*$:) {return '213';}
if (m:^mozilla/tools/jprof/.*$:) {return '213';}
if (m:^mozilla/tools/leaky/.*$:) {return '213';}
if (m:^mozilla/tools/memory/.*$:) {return '213';}
if (m:^mozilla/tools/module-deps/.*$:) {return '213';}
if (m:^mozilla/tools/performance/.*$:) {return '213';}
if (m:^mozilla/tools/post_compile/.*$:) {return '213';}
if (m:^mozilla/tools/preloader/.*$:) {return '213';}
if (m:^mozilla/tools/rb/.*$:) {return '213';}
if (m:^mozilla/tools/reorder/.*$:) {return '213';}
if (m:^mozilla/tools/trace-malloc/.*$:) {return '213';}
if (m:^mozilla/tools/uuiddeps/.*$:) {return '213';}
if (m:^mozilla/widget/src/windows/.*$:) {return '175';}
if (m:^mozilla/js/src/[^/]*$:) {return '70';}
if (m:^mozilla/js/src/config/.*$:) {return '70';}
if (m:^mozilla/js/src/editline/.*$:) {return '70';}
if (m:^mozilla/js/src/fdlibm/.*$:) {return '70';}
if (m:^mozilla/xpcom/typelib/.*$:) {return '117';}
if (m:^mozilla/camino/.*$:) {return '210';}
if (m:^mozilla/extensions/venkman/.*$:) {return '71';}
if (m:^mozilla/js/src/xpconnect/.*$:) {return '118';}
if (m:^mozilla/widget/[^/]*$:) {return '177';}
if (m:^mozilla/widget/public/.*$:) {return '177';}
if (m:^mozilla/widget/src/[^/]*$:) {return '177';}
if (m:^mozilla/widget/src/xpwidgets/.*$:) {return '177';}
if (m:^mozilla/js/src/liveconnect/.*$:) {return '72';}
if (m:^mozilla/js/jsd/.*$:) {return '207';}
if (m:^mozilla/widget/src/cocoa/.*$:) {return '178';}
if (m:^mozilla/netwerk/[^/]*$:) {return '77';}
if (m:^mozilla/netwerk/base/.*$:) {return '77';}
if (m:^mozilla/netwerk/build/.*$:) {return '77';}
if (m:^mozilla/netwerk/cache/.*$:) {return '77';}
if (m:^mozilla/netwerk/dns/.*$:) {return '77';}
if (m:^mozilla/netwerk/locales/.*$:) {return '77';}
if (m:^mozilla/netwerk/mime/.*$:) {return '77';}
if (m:^mozilla/netwerk/protocol/.*$:) {return '77';}
if (m:^mozilla/netwerk/resources/.*$:) {return '77';}
if (m:^mozilla/netwerk/socket/.*$:) {return '77';}
if (m:^mozilla/netwerk/streamconv/.*$:) {return '77';}
if (m:^mozilla/netwerk/system/.*$:) {return '77';}
if (m:^mozilla/netwerk/test/.*$:) {return '77';}
if (m:^mozilla/netwerk/testserver/.*$:) {return '77';}
if (m:^mozilla/mailnews/[^/]*$:) {return '123';}
if (m:^mozilla/accessibility/.*$:) {return '180';}
if (m:^mozilla/nsprpub/.*$:) {return '78';}
if (m:^mozilla/mailnews/mime/[^/]*$:) {return '124';}
if (m:^mozilla/extensions/typeaheadfind/.*$:) {return '181';}
if (m:^mozilla/dom/plugins/.*$:) {return '81';}
if (m:^mozilla/modules/plugin/.*$:) {return '81';}
if (m:^mozilla/extensions/java$:) {return '128';}
if (m:^mozilla/content/xbl/builtin/.*$:) {return '182';}
if (m:^mozilla/modules/libpref/.*$:) {return '82';}
if (m:^mozilla/java/plugins/.*$:) {return '129';}
if (m:^mozilla/extensions/inspector/.*$:) {return '184';}
if (m:^mozilla/layout/inspector/.*$:) {return '184';}
if (m:^mozilla/modules/libreg/.*$:) {return '84';}
if (m:^mozilla/java/webclient/.*$:) {return '127';}
if (m:^mozilla/content/svg/.*$:) {return '187';}
if (m:^mozilla/layout/svg/.*$:) {return '187';}
if (m:^db/sqlite3/.*$:) {return '216';}
if (m:^storage/.*$:) {return '216';}
if (m:^mozilla/java/dom/.*$:) {return '130';}
if (m:^mozilla/extensions/help/.*$:) {return '188';}
if (m:^mozilla/suite/.*$:) {return '188';}
if (m:^mozilla/content/xml/.*$:) {return '88';}
if (m:^mozilla/extensions/xmlextras/.*$:) {return '88';}
if (m:^mozilla/parser/expat/.*$:) {return '88';}
if (m:^mozilla/java/util/.*$:) {return '133';}
if (m:^mozilla/startupcache/.*$:) {return '89';}
if (m:^mozilla/tools/wizards/.*$:) {return '89';}
if (m:^mozilla/xpcom/[^/]*$:) {return '89';}
if (m:^mozilla/xpcom/base/.*$:) {return '89';}
if (m:^mozilla/xpcom/build/.*$:) {return '89';}
if (m:^mozilla/xpcom/components/.*$:) {return '89';}
if (m:^mozilla/xpcom/ds/.*$:) {return '89';}
if (m:^mozilla/xpcom/glue/.*$:) {return '89';}
if (m:^mozilla/xpcom/proxy/.*$:) {return '89';}
if (m:^mozilla/xpcom/sample/.*$:) {return '89';}
if (m:^mozilla/xpcom/stub/.*$:) {return '89';}
if (m:^mozilla/xpcom/tests/.*$:) {return '89';}
if (m:^mozilla/xpcom/threads/.*$:) {return '89';}
if (m:^mozilla/xpcom/tools/.*$:) {return '89';}
if (m:^mozilla/xpcom/windbgdlg/.*$:) {return '89';}
if (m:^mozilla/content/xbl/[^/]*$:) {return '199';}
if (m:^mozilla/content/xbl/public/.*$:) {return '199';}
if (m:^mozilla/content/xbl/src/.*$:) {return '199';}
if (m:^mozilla/webtools/bugzilla/.*$:) {return '190';}
if (m:^mozilla/xpcom/reflect/xptcall/.*$:) {return '206';}
if (m:^mozilla/content/xtf/.*$:) {return '200';}
if (m:^mozilla/layout/xtf/.*$:) {return '200';}
if (m:^mozilla/gfx/src/xprint/.*$:) {return '179';}
if (m:^mozilla/gfx/[^/]*$:) {return '201';}
if (m:^mozilla/gfx/cairo/.*$:) {return '201';}
if (m:^mozilla/gfx/public/.*$:) {return '201';}
if (m:^mozilla/gfx/src/[^/]*$:) {return '201';}
if (m:^mozilla/gfx/src/gtk/.*$:) {return '201';}
if (m:^mozilla/gfx/src/mac/.*$:) {return '201';}
if (m:^mozilla/gfx/src/shared/.*$:) {return '201';}
if (m:^mozilla/gfx/src/thebes/.*$:) {return '201';}
if (m:^mozilla/gfx/src/windows/.*$:) {return '201';}
if (m:^mozilla/gfx/thebes/.*$:) {return '201';}
if (m:^mozilla/modules/lcms/.*$:) {return '201';}
if (m:^mozilla/view/.*$:) {return '96';}
if (m:^mozilla/layout/[^/]*$:) {return '98';}
if (m:^mozilla/layout/base/.*$:) {return '98';}
if (m:^mozilla/layout/build/.*$:) {return '98';}
if (m:^mozilla/layout/doc/.*$:) {return '98';}
if (m:^mozilla/layout/forms/.*$:) {return '98';}
if (m:^mozilla/layout/generic/.*$:) {return '98';}
if (m:^mozilla/layout/html/.*$:) {return '98';}
if (m:^mozilla/layout/macbuild/.*$:) {return '98';}
if (m:^mozilla/layout/printing/.*$:) {return '98';}
if (m:^mozilla/layout/tables/.*$:) {return '98';}
if (m:^mozilla/layout/tools/.*$:) {return '98';}
if (m:^mozilla/xpinstall/.*$:) {return '150';}
if (m:^CVSROOT/commitcheck\.pl$:) {return '3';}
if (m:^CVSROOT/passwd$:) {return '3';}
if (m:^modules/libjar$:) {return '221';}
if (m:^mozilla/security/manager/.*$:) {return '151';}
if (m:^mozilla/layout/style/.*$:) {return '100';}
if (m:^mozilla/webtools/addons/.*$:) {return '185';}
if (m:^mozilla/webtools/aus/.*$:) {return '185';}
if (m:^mozilla/webtools/update/.*$:) {return '185';}
if (m:^mozilla/js/src/ctypes/.*$:) {return '223';}
if (m:^mozilla/dbm/.*$:) {return '145';}
if (m:^mozilla/security/coreconf/.*$:) {return '145';}
if (m:^mozilla/security/dbm/.*$:) {return '145';}
if (m:^mozilla/security/jss/.*$:) {return '145';}
if (m:^mozilla/security/nss/.*$:) {return '145';}
if (m:^mozilla/security/tinderbox/.*$:) {return '145';}
if (m:^mozilla/security/tinderlight/.*$:) {return '145';}
if (m:^mozilla/docshell/.*$:) {return '101';}
if (m:^mozilla/uriloader/.*$:) {return '101';}
if (m:^mozilla/webshell/.*$:) {return '101';}
if (m:^mozilla/mailnews/local/src/nsMovemail.*$:) {return '157';}
if (m:^mozilla/penelope/$:) {return '225';}
if (m:^mozilla/composer/.*$:) {return '173';}
if (m:^mozilla/parser/htmlparser$:) {return '102';}
if (m:^mozilla/embedding/.*$:) {return '208';}
if (m:^mozilla/[^/]*$:) {return '19';}
if (m:^mozilla/tools/README$:) {return '19';}
if (m:^mozilla/content/base/.*$:) {return '103';}
if (m:^mozilla/content/events/.*$:) {return '103';}
if (m:^mozilla/content/html/content/.*$:) {return '103';}
if (m:^mozilla/content/html/document/.*$:) {return '103';}
if (m:^mozilla/dom/[^/]*$:) {return '103';}
if (m:^mozilla/dom/base/.*$:) {return '103';}
if (m:^mozilla/dom/interfaces/.*$:) {return '103';}
if (m:^mozilla/dom/locales/.*$:) {return '103';}
if (m:^mozilla/dom/public/.*$:) {return '103';}
if (m:^mozilla/dom/src/.*$:) {return '103';}
if (m:^mozilla/dom/tests/.*$:) {return '103';}
if (m:^extension/python$:) {return '219';}
if (m:^mozilla/gfx/src/xlib/.*$:) {return '121';}
if (m:^mozilla/widget/src/xlib/.*$:) {return '121';}
if (m:^mozilla/widget/src/xlibxtbin/.*$:) {return '121';}
if (m:^mozilla/js/rhino/.*$:) {return '138';}
if (m:^mozilla/string/.*$:) {return '160';}
if (m:^mozilla/xpcom/string/.*$:) {return '160';}
if (m:^mozilla/webtools/partytool/.*$:) {return '209';}
if (m:^mozilla/xpfe/.*$:) {return '137';}
if (m:^mozilla/widget/src/qt/.*$:) {return '161';}
if (m:^mozilla/widget/src/gtk/.*$:) {return '49';}
if (m:^mozilla/widget/src/gtk2/.*$:) {return '49';}
if (m:^mozilla/widget/src/gtksuperwin/.*$:) {return '49';}
if (m:^mozilla/widget/src/gtkxtbin/.*$:) {return '49';}
if (m:^mozilla/js/tests/.*$:) {return '114';}
}
if ($b eq 'NSPRPUB_PRE_4_2_CLIENT_BRANCH') {
if (m:^mozilla/nsprpub/.*$:) {return '146';}
}
if ($b eq 'NSS_3_11_BRANCH') {
if (m:^mozilla/dbm/.*$:) {return '163';}
if (m:^mozilla/security/coreconf/.*$:) {return '163';}
if (m:^mozilla/security/dbm/.*$:) {return '163';}
if (m:^mozilla/security/nss/.*$:) {return '163';}
}
return '';
}
$debug = 0;
$origrepository = shift(@ARGV);
@files = @ARGV;
$envcvsroot = $ENV{'CVSROOT'};
open( REP, "<CVS/Repository");
$repository = <REP>;
chop($repository);
close(REP);
$repository =~ s:^$envcvsroot/::;
$doit = 0;
$| = 1;
if( $debug){
print STDERR "----------------------------------------------\n";
print STDERR "files: @files\n";
print STDERR "origrepository: $origrepository\n";
print STDERR " repository: $repository\n";
print STDERR "----------------------------------------------\n";
}
open(ENT, "<CVS/Entries" );
while( <ENT> ){
chop;
($d,$fn,$rev,$mod_time,$sticky,$tag) = split(/\//);
if ($tag =~ /^T(.*)$/) {
$fbranch{$fn} = $1;
}
}
close ENT;
foreach $f (@files) {
$b = "";
if (defined $fbranch{$f}) {$b = $fbranch{$f};}
if ($b eq "") {$b = "HEAD";}
$t = GetT($b, "$repository/$f");
if ($debug) {
print STDERR "GetT returned '$t' for '$repository/$f' branch '$b'\n";
}
if ($t eq "") {
$t = $defaultid;
}
if (!defined $mode{$t} || $mode{$t} eq "Open") {
next;
}
if ($debug) {
print STDERR "Checking twig $t\n";
}
# OK, we have a match. See if we're allowed to checkin here.
if ($username eq "") {
$username = $ENV{"CVS_USER"} || getlogin || (getpwuid($<))[0] || "nobody";
if ($debug) {
print STDERR "Username is $username\n";
print STDERR "getlogin returns " . getlogin . "\n";
print STDERR '(getpwuid($<))[0] returns ' . (getpwuid($<))[0] . "\n";
print STDERR "Environment:\n";
foreach $key (sort(keys %ENV)) {
print STDERR $key, '=', $ENV{$key}, "\n";
}
}
}
$ok = 0;
$s = $super{$t};
foreach $u (@$s) {
if ($debug) {
print STDERR "Checking against super $u\n";
}
if ($u eq $username) {
$ok = 1;
break;
}
}
if ($mode{$t} eq "Restricted") {
my $b = $blessed{$t};
foreach $u (@$b) {
if ($debug) {
print STDERR "Checking against blessed $u\n";
}
if ($u eq $username) {
$ok = 1;
break;
}
}
}
if (!$ok) {
print STDERR "You may not check into partition $fullname{$t}\n";
print STDERR "the file $repository/$f on branch $b\n";
print STDERR "If you think you should be allowed to, send mail to\n";
print STDERR "one of the below people:\n";
$s = $super{$t};
foreach $u (@$s) {
$u =~ s/%/@/;
print STDERR " $u\n";
}
exit 1;
}
}
exit 0;

View File

@@ -1,18 +0,0 @@
# The "commitinfo" file is used to control pre-commit checks.
# The filter on the right is invoked with the repository and a list
# of files to check. A non-zero exit of the filter program will
# cause the commit to be aborted.
#
# The first entry on a line is a regular expression which is tested
# against the directory that the change is being committed to, relative
# to the $CVSROOT. For the first match that is found, then the remainder
# of the line is the name of the filter to run.
#
# If the repository name does not match any of the regular expressions in this
# file, the "DEFAULT" line is used, if it is specified.
#
# If the name "ALL" appears as a regular expression it is always used
# in addition to the first matching regex or "DEFAULT".
#ALL $CVSROOT/CVSROOT/commitcheck.pl
#ALL $CVSROOT/CVSROOT/readonlyusers.pl
ALL $CVSROOT/CVSROOT/readonly

View File

@@ -1,8 +0,0 @@
# Set this to "no" if pserver shouldn't check system users/passwords
#SystemAuth=no
# Set `PreservePermissions' to `yes' to save file status information
# in the repository.
#PreservePermissions=no
LockDir=/var/lock/cvsroot

View File

@@ -1,48 +0,0 @@
__.SYMDEF*
_gen
_jmc
_stubs
_xpidlgen
._.DS_Store
._.FBCIndex
._.FBCLockFolder
.*.timestamp
.d
.depends
.deps
.DS_Store
.FBCIndex
.FBCLockFolder
.gdbinit
.HSancillary
.makedepend
.Makedepend
.MCC_Cache_FAT
.MCC_Global_History
.md
.pure
*_DBG_EDT.OBJ
*_DBG.OBJ
*_DBG.OBJD
*_OPT_EDT.OBJ
*_OPT.OBJ
*.class
*.dll
*.dylib
*.exp
*.flc
*.lib
*.map
*.pdb
*.rc
*.res
*.rpo
depend.mk
made
make.dep
make.log
Makefile
manifest.mnw
nuke
so_locations
ti_files

View File

@@ -1,24 +0,0 @@
#!/bin/sh
PATH=/bin:/usr/bin:/sbin:/usr/sbin;export PATH
(
URL="subdir=`dirname $1`&files=`basename $1`"
echo "Subject: $1"
echo 'Content-Type: text/html; charset=us-ascii'
echo 'Content-Transfer-Encoding: 7bit'
echo 'Content-Disposition: inline'
TMP=/tmp/cvsmf.$$
trap "rm -f $TMP" 0 1 2 15
cat > $TMP
BRANCH=`sed -n 's@^Revision/Branch: \(.*\)@\1@p' $TMP`
if test -n "$BRANCH"; then
URL="$URL&branch=$BRANCH"
fi
echo '<A HREF="http://warp.netscape.com/webtools/bonsai/cvsview2.cgi?'$URL'&command=DIRECTORY">View differences</A><BR>\n'
) | mail $2

View File

@@ -1,134 +0,0 @@
#!/usr/bin/perl
# -*- Mode: perl; indent-tabs-mode: nil -*-
# Arguments:
#
# -a Only send checkin messages which contain added files. All other checkin
# messages will be ignored.
# -u <url> Base URL for the Bonsai directory; "/cvsview2.cgi" will get
# appended to this with appropriate args.
# -h <hostname> Host whose SMTP server we will contact to send mail.
# -s <string> String specifying dir and filenames. As generated by "%s"
# in a CVSROOT/loginfo file
# -f <file> A regexp. If present, then only checkins to files whose
# name (without the directory) matches the regexp will generate mail.
#
# The remaining args are email addresses of people who should get notified.
use strict;
use Mail::Mailer;
my $debug = 0;
my $addsonly = 0;
my $showcommitter = 0;
# Set use_sendmail = 0 to send mail via $mailhost using SMTP
my $use_sendmail = 0;
my $mailhost = "smtp.mozilla.org";
my $urlbase = "";
my $cvsargs = "";
my $cvsroot = "";
my @mailto;
my $fileregexp = "";
my $username = $ENV{"CVS_USER"} || getlogin || (getpwuid($<))[0] || "nobody";
while (@ARGV) {
my $arg = shift @ARGV;
if ($arg eq '-d') {
$debug = 1;
print STDERR "Debug turned on...\n";
} elsif ($arg eq '-c') {
$showcommitter = 1;
} elsif ($arg eq '-r') {
$cvsroot = shift @ARGV;
} elsif ($arg eq '-h') {
$mailhost = shift @ARGV;
} elsif ($arg eq '-u') {
$urlbase = shift @ARGV;
} elsif ($arg eq '-s') {
$cvsargs = shift @ARGV;
} elsif ($arg eq '-f') {
$fileregexp = shift @ARGV;
} elsif ($arg eq '-a') {
$addsonly = 1;
} else {
push(@mailto, $arg);
}
}
my $url = "";
if ($urlbase ne "" && $cvsargs ne "") {
my @list = split(/ /, $cvsargs);
my $dir = shift @list;
if ($fileregexp ne "") {
if (grep(m/$fileregexp/, @list) <= 0) {
exit;
}
}
$url = $urlbase . "/cvsview2.cgi?command=DIRECTORY&subdir=$dir&files=" .
join(':', @list);
}
my $message = "";
if ($showcommitter) {
$message .= "Changes committed by $username:\n\n";
}
my $filesadded = 0;
while (<>) {
my $line = $_;
if ($line =~ m@^ Tag: (.*)$@) {
if ($url ne "") {
$url .= "&branch=$1";
}
}
# if we see that files have been added on this checkin, remember that fact
#
if ($line =~ m@^Added Files:@) {
$filesadded = 1;
}
$message .= $line;
}
# bail out if this is an adds-only run and no files have been added
#
if ($addsonly == 1 && $filesadded == 0 ) {
exit 0;
}
if ($url ne "") {
if ($cvsroot ne "") {
$url .= "&root=$cvsroot";
}
$message = "Diffs: $url\n\n" . $message;
}
chop(my $hostname = `hostname --fqdn`);
my $mailer;
if ($use_sendmail) {
$mailer = Mail::Mailer->new("sendmail");
} else {
$mailer = Mail::Mailer->new("smtp", Server => $mailhost);
}
die("Failed to send mail notification\n") if !defined($mailer);
my %headers;
$headers{'From'} = "$username <cvsmailfilter\@$hostname>";
$headers{'To'} = \@mailto;
$headers{'Subject'} = $cvsargs;
$headers{'MIME-Version'} = '1.0';
$headers{'Content-Type'} = 'text/plain; charset=UTF-8'; # assume everything is UTF-8
$headers{'Content-Transfer-Encoding'} = '8bit';
$headers{'Content-Disposition'} = 'inline';
$mailer->open(\%headers);
print $mailer $message;
$mailer->close;

View File

@@ -1,27 +0,0 @@
# This file affects handling of files based on their names.
#
# The -t/-f options allow one to treat directories of files
# as a single file, or to transform a file in other ways on
# its way in and out of CVS.
#
# The -m option specifies whether CVS attempts to merge files.
#
# The -k option specifies keyword expansion (e.g. -kb for binary).
#
# Format of wrapper file ($CVSROOT/CVSROOT/cvswrappers or .cvswrappers)
#
# wildcard [option value][option value]...
#
# where option is one of
# -f from cvs filter value: path to filter
# -t to cvs filter value: path to filter
# -m update methodology value: MERGE or COPY
# -k expansion mode value: b, o, kkv, &c
#
# and value is a single-quote delimited value.
# For example:
#*.gif -k 'b'
*.png -k 'b'
*.gif -k 'b'
*.jpg -k 'b'
*.jpeg -k 'b'

View File

@@ -1,512 +0,0 @@
#! /usr/bin/perl
# -*- Mode: perl; indent-tabs-mode: nil -*-
#
# The contents of this file are subject to the Netscape 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/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.
#
# Contributor(s): Mike Taylor <bear@code-bear.com>
# Christopher Seawood <cls@seawood.org>
# 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 [-u ${USER}] -r /cvsroot bonsai-checkin-daemon@my.bonsai.machine
#
# or if you do not want to use SMTP at all, add:
#
# ALL ( $CVSROOT/CVSROOT/dolog.pl -r /cvsroot -n | /bonsai/handleCheckinMail.pl )
#
# 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.pl.
use bytes;
use File::Basename;
use Mail::Mailer;
# Set use_sendmail = 0 to send mail via $mailhost using SMTP
$use_sendmail = 0;
$username = $ENV{"CVS_USER"} || getlogin || (getpwuid($<))[0] || "nobody";
$envcvsroot = $ENV{'CVSROOT'};
$cvsroot = $envcvsroot;
$flag_debug = 0;
$flag_tagcmd = 0;
$repository = '';
$repository_tag = '';
$mailhost = 'smtp.mozilla.org';
$rlogcommand = '/usr/bin/rlog';
$output2mail = 1;
@mailto = ();
@changed_files = ();
@added_files = ();
@removed_files = ();
@log_lines = ();
@outlist = ();
@import_tags = ();
@import_new_files = ();
@import_changed_files = ();
$STATE_NONE = 0;
$STATE_CHANGED = 1;
$STATE_ADDED = 2;
$STATE_REMOVED = 3;
$STATE_LOG = 4;
$STATE_IMPORT_STATUS = 5;
$STATE_IMPORT_TAGS = 6;
$STATE_IMPORT_FILES = 7;
&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:\n";
print STDERR @outlist;
print STDERR "----------------------------------------------\n";
}
if ($output2mail) {
&mail_notification;
} else {
&stdout_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 '-u') {
$username = 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;
} elsif ($arg eq '-n') {
$output2mail = 0;
} else {
push(@mailto, $arg);
}
}
if ($repository eq '') {
open(REP, "<CVS/Repository");
$repository = <REP>;
chop($repository);
close(REP);
}
$repository =~ s:^$cvsroot/::;
$repository =~ s:^$envcvsroot/::;
}
sub get_loginfo {
if ($flag_debug) {
print STDERR "----------------------------------------------\n";
}
# Iterate over the body of the message collecting information.
#
$state = $STATE_NONE;
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_LOG && /^Tag:/) { ($repository_tag = $_) =~ s/^Tag:\s*(\S+).*/$1/; }
if ($state == $STATE_CHANGED && !(/^Tag:/)) { push(@changed_files, split); }
if ($state == $STATE_ADDED && !(/^Tag:/)) { push(@added_files, split); }
if ($state == $STATE_REMOVED && !(/^Tag:/)) { push(@removed_files, split); }
if ($state == $STATE_LOG && (m/^Status:$/)) {
push(@log_lines, $_);
$state = $STATE_IMPORT_STATUS;
next;
}
if ($state == $STATE_IMPORT_STATUS) {
my ($itag, $istat, @rest);
while (<STDIN>) {
chomp;
print STDERR "$_\n" if ($flag_debug);
push(@log_lines, $_);
if ($state == $STATE_IMPORT_STATUS) {
next if (m/^\s*$/);
if (m/^Vendor Tag:/) {
($vendor_tag = $_) =~ s/^Vendor Tag:\s+([\w-]+).*/$1/;
$state = $STATE_IMPORT_TAGS;
next;
} else {
$state = $STATE_LOG;
last;
}
}
if ($state == $STATE_IMPORT_TAGS) {
if (m/^\s*$/) {
$state = $STATE_IMPORT_FILES;
} else {
($itag = $_) =~ s/^(Release Tags:)?\s+([\w-]+).*/$2/;
push(@import_tags, $itag);
}
next;
}
if ($state == $STATE_IMPORT_FILES) {
if (m/^\s*$/) {
$state = $STATE_LOG;
last;
}
($istat, @rest) = split(/ /, $_, 2);
if ($istat eq 'N') {
push(@import_new_files, @rest);
} elsif ($istat eq 'U') {
push(@import_changed_files, @rest);
}
# Ignore everything else
next;
}
}
}
if ($state == $STATE_LOG) { push(@log_lines, $_); }
}
# If any of the filenames in the arrays below contain spaces,
# things get broken later on in the code.
# fix the filename array by using the get_filename sub.
@fixed_changed_files = @{&get_filename("C", @changed_files)};
@fixed_added_files = @{&get_filename("A", @added_files)};
@fixed_removed_files = @{&get_filename("R", @removed_files)};
@fixed_import_new_files = @{&get_filename("I", @import_new_files)};
@fixed_import_changed_files = @{&get_filename("I", @import_changed_files)};
# now replace the old broken arrays with the new fixed arrays and
# carry on.
@changed_files = @fixed_changed_files;
@added_files = @fixed_added_files;
@removed_files = @fixed_removed_files;
@import_new_files = @fixed_import_new_files;
@import_changed_files = @fixed_import_changed_files;
if ($flag_debug) {
print STDERR "----------------------------------------------\n"
. "changed files: @changed_files\n"
. "added files: @added_files\n"
. "removed files: @removed_files\n"
. "new imported files: @import_new_files\n"
. "changed imported files: @import_changed_files\n";
print STDERR "----------------------------------------------\n";
}
}
sub get_filename {
my ($state, @files) = @_;
my @fixed_files;
my $FILE_EXIST = 0;
my $FILE_CHECKED = 0;
my $file;
my $partial_file;
my $path, $apath;
if ($flag_debug) {
print STDERR "\n-- get_filename ------------------------\n";
}
foreach my $scalar (@files) {
if ($FILE_CHECKED && ! $FILE_EXISTS) {
$file = "$partial_file $scalar";
} else{
$file = $scalar;
}
if ($state eq "I") {
$path = "$envcvsroot/$file";
$apath = "$envcvsroot/Attic/$file";
} else {
$path = "$envcvsroot/$repository/$file";
$apath = "$envcvsroot/$repository/Attic/$file";
}
if ($flag_debug) {
print STDERR "changed file: $file\n";
print STDERR "path: $path\n";
}
if (-r "$path,v" || -r "$apath,v") {
push(@fixed_files, $file);
$FILE_EXISTS = 1;
$FILE_CHECKED = 1;
if ($flag_debug){
print STDERR "file exists\n";
}
} else {
$partial_file = $file;
$FILE_EXISTS = 0;
$FILE_CHECKED = 1;
if ($flag_debug) {
print STDERR "file does not exist\n";
}
}
}
if ($flag_debug) {
print STDERR "\@fixed_files: @fixed_files\n";
print STDERR "-------------------------------------------\n\n";
}
return \@fixed_files;
}
sub process_cvs_info {
local($d,$fn,$rev,$mod_time,$sticky,$tag,$stat,@d,$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";
}
$rlogcmd = "$rlogcommand -N -r$rev " . shell_escape($rcsfile);
open(LOG, "$rlogcmd |")
|| 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"));
}
my $headrev;
my $found_desc;
# Process new imported files
foreach $fn (@import_new_files) {
my ($file, $dir, $suffix) = &fileparse($fn, ",v");
$dir =~ s@/$@@;
$found_desc = 0;
$headrev = 0;
$lines_added = 0;
$lines_removed = 0;
$rcsfile = "$envcvsroot/$dir/${file},v";
if (! -r $rcsfile) {
$rcsfile = "$envcvsroot/$dir/Attic/${file},v";
}
$rlogcmd = "$rlogcommand -N " . &shell_escape($rcsfile);
open(LOG, "$rlogcmd |") ||
print STDERR "dolog.pl: Couldn't run import rlog\n";
while (<LOG>) {
$found_desc++, next if (m/^description:$/);
$headrev = $1 if (!$found_desc && m/^head: (\d+[\.\d+]+)$/);
$rev = $1 if (m/^revision (\d+[\.\d+]+)$/);
if (m/^date:.* author: ([^;]*);.*/) {
$username = $1;
if (m/lines: \+([0-9]*) -([0-9]*)/) {
$lines_added = $1;
$lines_removed = $2;
}
# Add the head revision entry
if ($headrev eq $rev) {
push(@outlist,
("A|$time|$username|$cvsroot|$dir|$file|$headrev|" .
"||$lines_added|$lines_removed\n"));
last;
}
}
}
close(LOG);
}
# Process changed imported files
my $search_tag = $import_tags[0];
my ($search_rev, $found_rev, $found_srev);
foreach $fn (@import_changed_files) {
my ($file, $dir, $suffix) = &fileparse($fn, ",v");
$dir =~ s@/$@@;
$found_desc = 0;
$found_rev = 0;
$found_srev = 0;
$search_rev = '';
$lines_added = 0;
$lines_removed = 0;
last if (!defined($search_tag));
$rcsfile = "$envcvsroot/$dir/${file},v";
if (! -r $rcsfile) {
$rcsfile = "$envcvsroot/$dir/Attic/${file},v";
}
$rlogcmd = "$rlogcommand " . &shell_escape($rcsfile);
open(LOG, "$rlogcmd |") ||
print STDERR "dolog.pl: Couldn't run import rlog\n";
while (<LOG>) {
$found_desc++, next if (m/^description:$/);
if (!$found_desc && m/^\s*$search_tag: (\d+[\.\d+]+)$/) {
$search_rev = $1;
$found_srev++;
next;
}
if (!$found_desc && $found_srev && m/^\s*[\w-]+: $search_rev$/) {
# Revision already exists so no actual changes
# were made during this import, so do nothing
last;
}
$found_rev++, next if ($found_srev && m/^revision $search_rev$/);
if ($found_rev && m/^date:.* author: ([^;]*);.*/) {
$username = $1;
if (m/lines: \+([0-9]*) -([0-9]*)/) {
$lines_added = $1;
$lines_removed = $2;
}
push(@outlist,
("C|$time|$username|$cvsroot|$dir|$file|$search_rev|" .
"$search_tag||$lines_added|$lines_removed\n"));
last;
}
}
close(LOG);
}
# make sure dolog has something to parse when it sends its load off
if (!scalar(@log_lines)) {
push @log_lines, "EMPTY LOG MESSAGE";
}
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 mail_notification {
chop(my $hostname = `hostname --fqdn`);
my $mailer;
if ($use_sendmail) {
$mailer = Mail::Mailer->new("sendmail");
} else {
$mailer = Mail::Mailer->new("smtp", Server => $mailhost);
}
die("Failed to send mail notification\n") if !defined($mailer);
my %headers;
$headers{'From'} = "bonsai-daemon\@$hostname";
$headers{'To'} = \@mailto;
if ($flag_tagcmd) {
$headers{'Subject'} = "cvs tag in $repository";
} else {
$headers{'Subject'} = "cvs commit to $repository";
}
$mailer->open(\%headers);
print $mailer @outlist;
$mailer->close;
}
sub stdout_notification {
chop(my $hostname = `hostname`);
print "MAIL FROM: bonsai-daemon\@$hostname\n";
print "RCPT TO: root\@localhost\n";
print "DATA\n";
if ($flag_tagcmd) {
print "Subject: cvs tag in $repository\n";
} else {
print "Subject: cvs commit to $repository\n";
}
print "\n";
print @outlist, "\n";
print ".\n";
}
# Quotify a string, suitable for invoking a shell process
sub shell_escape {
my ($file) = @_;
$file =~ s/([ \"\'\?\$\&\|\!<>\(\)\[\]\;\:])/\\$1/g;
return $file;
}

View File

@@ -1,21 +0,0 @@
# The "editinfo" file is used to allow verification of logging
# information. It works best when a template (as specified in the
# rcsinfo file) is provided for the logging procedure. Given a
# template with locations for, a bug-id number, a list of people who
# reviewed the code before it can be checked in, and an external
# process to catalog the differences that were code reviewed, the
# following test can be applied to the code:
#
# Making sure that the entered bug-id number is correct.
# Validating that the code that was reviewed is indeed the code being
# checked in (using the bug-id number or a seperate review
# number to identify this particular code set.).
#
# If any of the above test failed, then the commit would be aborted.
#
# Actions such as mailing a copy of the report to each reviewer are
# better handled by an entry in the loginfo file.
#
# One thing that should be noted is the the ALL keyword is not
# supported. There can be only one entry that matches a given
# repository.

View File

@@ -1,40 +0,0 @@
# The "loginfo" file controls where "cvs commit" log information
# is sent. The first entry on a line is a regular expression which must match
# the directory that the change is being made to, relative to the
# $CVSROOT. If a match is found, then the remainder of the line is a filter
# program that should expect log information on its standard input.
#
# If the repository name does not match any of the regular expressions in this
# file, the "DEFAULT" line is used, if it is specified.
#
# If the name ALL appears as a regular expression it is always used
# in addition to the first matching regex or DEFAULT.
#
# You may specify a format string as part of the
# filter. The string is composed of a `%' followed
# by a single format character, or followed by a set of format
# characters surrounded by `{' and `}' as separators. The format
# characters are:
#
# s = file name
# V = old version number (pre-checkin)
# v = new version number (post-checkin)
#
ALL $CVSROOT/CVSROOT/dolog.pl -h 127.0.0.1 -r /cvsroot bonsai-checkin-daemon@bonsai.mozilla.org
# send mail for new files added
ALL $CVSROOT/CVSROOT/cvsmailfilter.pl -a -u http://bonsai.mozilla.org -r /cvsroot -s %s cvs-adds@mozilla.org
# crypto checkins deserve more attention
mozilla/security $CVSROOT/CVSROOT/cvsmailfilter.pl -c -u http://bonsai.mozilla.org -r /cvsroot -s %s dev-tech-crypto-checkins@lists.mozilla.org
mozilla/extensions/psm-glue $CVSROOT/CVSROOT/cvsmailfilter.pl -c -u http://bonsai.mozilla.org -r /cvsroot -s %s dev-tech-crypto-checkins@lists.mozilla.org
mozilla/netwerk/security $CVSROOT/CVSROOT/cvsmailfilter.pl -c -u http://bonsai.mozilla.org -r /cvsroot -s %s dev-tech-crypto-checkins@lists.mozilla.org
mozilla/netwerk/protocol/http/src $CVSROOT/CVSROOT/cvsmailfilter.pl -c -u http://bonsai.mozilla.org -r /cvsroot -s %s dev-tech-crypto-checkins@lists.mozilla.org
mozilla/netwerk/socket/ssl $CVSROOT/CVSROOT/cvsmailfilter.pl -c -u http://bonsai.mozilla.org -r /cvsroot -s %s dev-tech-crypto-checkins@lists.mozilla.org
mozilla/netwerk/socket/tests $CVSROOT/CVSROOT/cvsmailfilter.pl -c -u http://bonsai.mozilla.org -r /cvsroot -s %s dev-tech-crypto-checkins@lists.mozilla.org
mozilla/dbm $CVSROOT/CVSROOT/cvsmailfilter.pl -c -u http://bonsai.mozilla.org -r /cvsroot -s %s dev-tech-crypto-checkins@lists.mozilla.org
# misc modules
mozilla/webtools/bugzilla $CVSROOT/CVSROOT/cvsmailfilter.pl -c -u http://bonsai.mozilla.org -r /cvsroot -s %s cvs-checkins@bugzilla.org
mozilla/testing/performance/talos $CVSROOT/CVSROOT/cvsmailfilter.pl -c -u http://bonsai.mozilla.org -r /cvsroot -s %s dev-tree-management@lists.mozilla.org
CVSROOT $CVSROOT/CVSROOT/cvsmailfilter.pl -c -u http://bonsai.mozilla.org -r /cvsroot -s %s -f modules sysalerts@mozilla.org

View File

@@ -1,866 +0,0 @@
# Three different line formats are valid:
# key -a aliases...
# key [options] directory
# key [options] directory files...
#
# Where "options" are composed of:
# -i prog Run "prog" on "cvs commit" from top-level of module.
# -o prog Run "prog" on "cvs checkout" of module.
# -e prog Run "prog" on "cvs export" of module.
# -t prog Run "prog" on "cvs rtag" of module.
# -u prog Run "prog" on "cvs update" of module.
# -d dir Place module in directory "dir" instead of module name.
# -l Top-level directory only -- do not recurse.
#
# NOTE: If you change any of the "Run" options above, you'll have to
# release and re-checkout any working directories of these modules.
#
# And "directory" is a path to a directory relative to $CVSROOT.
#
# The "-a" option specifies an alias. An alias is interpreted as if
# everything on the right of the "-a" had been typed on the command line.
#
# You can encode a module within a module by using the special '&'
# character to interpose another module into the current module. This
# can be useful for creating a module that consists of many directories
# spread out over the entire source repository.
######################################################################
#
# Module that contains the LEGAL and the LICENSE file. This should be
# a part of every logical source pull for a component. Care should
# be given so that this module is not specified twice for a given
# source pull.
#
MozillaLicense -a \
mozilla/LEGAL \
mozilla/LICENSE
Grendel -a \
MozillaLicense \
mozilla/grendel
######################################################################
#
# Modules for the MozillaClassic Browser, based on the original
# layout engine. If you wish to develop on the Mozilla Classic
# codebase, pull using these modules and using the branch tag
# MozillaSourceClassic_19981026_BRANCH.
# These modules should be considered obsolete.
#
MozillaSource -a \
MozillaSourceWin \
MozillaSourceMac \
MozillaSourceUnix
MozillaSourceWin -a \
MozillaSourceCommon \
MozillaSourceWinOnly
MozillaSourceMac -a \
MozillaSourceCommon \
MozillaSourceMacOnly
MozillaSourceUnix -a \
MozillaSourceCommon \
MozillaSourceUnixOnly \
mozilla/cmd/xfe \
mozilla/cmd/gnomefe \
mozilla/cmd/qtfe \
mozilla/cmd/ybfe
MozillaSourceMotif -a \
MozillaSourceCommon \
mozilla/cmd/xfe \
MozillaSourceUnixOnly
MozillaSourceQtfe -a \
MozillaSourceCommon \
mozilla/cmd/qtfe \
MozillaSourceUnixOnly
MozillaSourceGnomefe -a \
MozillaSourceCommon \
mozilla/cmd/gnomefe \
MozillaSourceUnixOnly
MozillaSourceYbfe -a \
MozillaSourceCommon \
mozilla/cmd/ybfe \
MozillaSourceUnixOnly
MozillaSourceCommon -a \
mozilla/LEGAL \
mozilla/LICENSE \
mozilla/base \
mozilla/build \
!mozilla/build/mac/client.mac \
mozilla/include \
mozilla/caps \
mozilla/jpeg \
mozilla/js \
mozilla/lib/htmldlgs \
mozilla/lib/layout \
mozilla/lib/libcnv \
mozilla/lib/libdom \
mozilla/lib/libi18n \
mozilla/lib/liblayer \
mozilla/lib/libmisc \
mozilla/lib/libmime \
mozilla/lib/libmocha \
mozilla/lib/libnet \
mozilla/lib/libparse \
mozilla/lib/libpics \
mozilla/lib/libpwcac \
mozilla/lib/libstyle \
mozilla/lib/mailto \
mozilla/lib/plugin \
mozilla/lib/xlate \
mozilla/lib/xp \
mozilla/modules/calendar \
mozilla/modules/edtplug/classes \
mozilla/modules/edtplug/src \
mozilla/modules/edtplug/include \
mozilla/modules/libfont/classes \
mozilla/modules/libfont/public \
mozilla/modules/libfont/src \
mozilla/modules/libhook \
mozilla/modules/libimg \
mozilla/modules/libnls \
mozilla/modules/libpref \
mozilla/modules/libreg \
mozilla/modules/libutil \
mozilla/modules/oji \
mozilla/modules/plugin \
mozilla/modules/progress/src \
mozilla/modules/rdf \
mozilla/modules/schedulr \
mozilla/modules/security/freenav \
mozilla/modules/softupdt/classes \
mozilla/modules/softupdt/include \
mozilla/modules/softupdt/src \
mozilla/modules/xml \
mozilla/modules/zlib/src \
mozilla/nav-java/stubs \
mozilla/network \
mozilla/nsprpub \
mozilla/privacy \
mozilla/xpcom \
mozilla/l10n \
mozilla/dbm \
mozilla/README
MozillaSourceWinOnly -a \
mozilla/client.mak \
mozilla/cmd/makefile.win \
mozilla/cmd/wincom \
mozilla/cmd/winfe \
mozilla/config \
mozilla/lib/makefile.win \
mozilla/modules/coreincl \
mozilla/modules/edtplug/makefile.win \
mozilla/makefile.win \
mozilla/modules/libfont/jmcgen \
mozilla/modules/libfont/makefile.win \
mozilla/modules/libfont/producers/makefile.win \
mozilla/modules/libfont/producers/win \
mozilla/modules/libfont/producers/win/classes \
mozilla/modules/libfont/producers/win/classes/netscape \
mozilla/modules/libfont/producers/win/src \
mozilla/modules/makefile.win \
mozilla/modules/progress/makefile.win \
mozilla/modules/progress/public \
mozilla/modules/security/makefile.win \
mozilla/modules/softupdt/makefile.win \
mozilla/modules/zlib/makefile.win \
mozilla/nav-java/makefile.win \
JavaStubWin
MozillaSourceUnixOnly -a \
mozilla/.cvsignore \
mozilla/Makefile \
mozilla/Makefile.in \
mozilla/configure \
mozilla/configure.in \
mozilla/allmakefiles.sh \
mozilla/cmd/Makefile \
mozilla/cmd/Makefile.in \
mozilla/cmd/stubfe \
mozilla/cmd/unixfe \
mozilla/config/.cvsignore \
mozilla/config/AIX.mk \
mozilla/config/BSD_OS.mk \
mozilla/config/DGUX.mk \
mozilla/config/FreeBSD.mk \
mozilla/config/HP-UX.mk \
mozilla/config/IRIX.mk \
mozilla/config/Linux.mk \
mozilla/config/NCR.mk \
mozilla/config/NEC.mk \
mozilla/config/NEWS-OS.mk \
mozilla/config/NEXTSTEP.mk \
mozilla/config/NetBSD.mk \
mozilla/config/OSF1.mk \
mozilla/config/OpenBSD.mk \
mozilla/config/QNX.mk \
mozilla/config/Rhapsody.mk \
mozilla/config/SCOOS.mk \
mozilla/config/SINIX.mk \
mozilla/config/SunOS.mk \
mozilla/config/SunOS4.mk \
mozilla/config/SunOS5.mk \
mozilla/config/UNIXWARE.mk \
mozilla/config/common.mk \
mozilla/config/config.mk \
mozilla/config/coreconf.mk \
mozilla/config/rules.mk \
mozilla/config/Makefile \
mozilla/config/Makefile.in \
mozilla/config/autoconf.mk.in \
mozilla/config/bdate.c \
mozilla/config/bdate.pl \
mozilla/config/aboutime.pl \
mozilla/config/bsdecho.c \
mozilla/config/clobber_miss.pl \
mozilla/config/config.guess \
mozilla/config/cvsco.pl \
mozilla/config/fastcwd.pl \
mozilla/config/gtscc.c \
mozilla/config/makecopy.c \
mozilla/config/mangle.c \
mozilla/config/mantomak.c \
mozilla/config/mkdepend \
mozilla/config/mkdetect \
mozilla/config/nfspwd.pl \
mozilla/config/nodl.pl \
mozilla/config/nsinstall.c \
mozilla/config/outofdate.pl \
mozilla/config/pathsub.c \
mozilla/config/pathsub.h \
mozilla/config/pkg2dpth.pl \
mozilla/config/ports \
mozilla/config/revdepth.pl \
mozilla/config/set-timebomb.pl \
mozilla/config/sj.pl \
mozilla/lib/Makefile \
mozilla/lib/Makefile.in \
mozilla/modules/edtplug/Makefile \
mozilla/modules/edtplug/Makefile.in \
mozilla/modules/libfont/jmcgen \
mozilla/modules/libfont/Makefile \
mozilla/modules/libfont/Makefile.in \
mozilla/modules/libfont/producers/Makefile \
mozilla/modules/libfont/producers/Makefile.in \
mozilla/modules/Makefile \
mozilla/modules/Makefile.in \
mozilla/modules/progress/Makefile \
mozilla/modules/progress/Makefile.in \
mozilla/modules/progress/public \
mozilla/modules/security/Makefile \
mozilla/modules/security/Makefile.in \
mozilla/modules/softupdt/Makefile \
mozilla/modules/softupdt/Makefile.in \
mozilla/modules/zlib/Makefile \
mozilla/modules/zlib/Makefile.in \
mozilla/nav-java/Makefile \
mozilla/nav-java/Makefile.in \
mozilla/lib/mariner \
JavaStubUnix
MozillaSourceMacOnly -a \
mozilla/config/mac \
mozilla/config/bdate.pl \
mozilla/config/aboutime.pl \
mozilla/config/mac-set-timebomb.pl \
mozilla/cmd/macfe \
mozilla/lib/mac/AutoAdmin \
mozilla/lib/mac/Includes \
mozilla/lib/mac/MacMemoryAllocator \
mozilla/lib/mac/Misc \
mozilla/lib/mac/MoreFiles \
mozilla/lib/mac/NSRuntime \
mozilla/lib/mac/NSStdLib \
mozilla/lib/mac/patches \
mozilla/lib/mac/PowerPlant \
mozilla/lib/mac/UserInterface \
mozilla/modules/coreincl \
mozilla/modules/edtplug/macbuild \
mozilla/modules/libfont \
mozilla/modules/progress/macbuild \
mozilla/modules/progress/public \
mozilla/modules/softupdt/macbuild \
mozilla/modules/zlib/macbuild \
mozilla/lib/mariner \
JavaStubMac
JavaStubAll -a \
JavaStubWin \
JavaStubMac \
JavaStubUnix
JavaStubCore -a \
mozilla/sun-java/stubs/include \
mozilla/sun-java/stubs/src
JavaStubMac -a \
JavaStubCore \
mozilla/sun-java/stubs/macbuild \
mozilla/sun-java/stubs/macjri
JavaStubUnix -a \
JavaStubCore \
mozilla/sun-java/Makefile \
mozilla/sun-java/Makefile.in \
mozilla/sun-java/stubs/jri \
mozilla/sun-java/stubs/Makefile \
mozilla/sun-java/stubs/Makefile.in
JavaStubWin -a \
JavaStubCore \
mozilla/sun-java/makefile.win \
mozilla/sun-java/stubs/jri \
mozilla/sun-java/stubs/makefile.win
######################################################################
#
# Modules for the raptor layout effort. Note that raptor dist is temporary
# until raptor is integrated into the mainline build.
#
RaptorDoc -a \
mozilla/LICENSE \
mozilla/LEGAL \
mozilla/README/nglayout
RaptorDist -a \
mozilla/configure.in \
mozilla/allmakefiles.sh \
mozilla/Makefile.in \
mozilla/makefile.win \
mozilla/build \
!mozilla/build/mac/client.mac \
mozilla/caps \
mozilla/config \
mozilla/dbm \
mozilla/editor \
mozilla/include \
mozilla/intl \
mozilla/jpeg \
JSClient \
mozilla/lib/liblayer \
mozilla/lib/libpwcac \
mozilla/lib/xp \
mozilla/modules/libimg \
mozilla/modules/libjar \
mozilla/modules/libpref \
mozilla/modules/libreg \
mozilla/modules/libutil \
mozilla/modules/oji \
mozilla/modules/plugin \
mozilla/modules/security/freenav \
mozilla/modules/zlib \
mozilla/nav-java \
mozilla/network \
mozilla/nsprpub \
mozilla/rdf \
mozilla/silentdl \
mozilla/sun-java \
mozilla/xpcom
RaptorLayout -a \
mozilla/base \
mozilla/dom \
mozilla/gfx \
mozilla/expat \
mozilla/htmlparser \
mozilla/layout \
mozilla/view \
mozilla/webshell \
mozilla/widget
Raptor -a \
RaptorDoc \
RaptorDist \
RaptorLayout
RaptorWin -a \
Raptor
RaptorUnix -a \
Raptor \
mozilla/aclocal.m4 \
mozilla/nglayout.mk
RaptorMac -a \
Raptor \
mozilla/build/mac \
mozilla/cmd/macfe/applevnt \
mozilla/cmd/macfe/central \
mozilla/cmd/macfe/gui \
mozilla/cmd/macfe/include \
mozilla/cmd/macfe/pch \
mozilla/cmd/macfe/projects \
mozilla/cmd/macfe/utility \
mozilla/lib/mac/MacMemoryAllocator \
mozilla/lib/mac/Misc \
mozilla/lib/mac/MoreFiles \
mozilla/lib/mac/NSRuntime \
mozilla/lib/mac/NSStdLib \
mozilla/lib/mac/PowerPlant
#####################
# An all inclusive modules for tinderbox to use
#####################
RaptorAll -a \
RaptorWin \
RaptorUnix \
RaptorMac
#####################
# Transformiix module (xslt processor)
#####################
TransformiixStandalone -a \
mozilla/config \
mozilla/expat \
mozilla/extensions/transformiix
#######################################################################
# Modules for the Directory SDK. There are two users of the libldap
# Mozilla and the DirectorySDK. Maintained by Chuck Boatwright
# cboatwri@netscape.com
#
DirectorySDKSource -a \
DirectorySDKSourceCommon \
DirectorySDKSourceBuild
DirectorySDKSourceC -a \
mozilla/directory/ldapsdk.mak \
mozilla/directory/ldapsdk.mk \
mozilla/directory/buildsdk.txt \
mozilla/directory/Makefile \
mozilla/directory/c-sdk
DirectorySDKSourceJava -a \
mozilla/directory/buildjsdk.txt \
mozilla/directory/java-sdk
DirectorySDKSourceCommon -a \
DirectorySDKSourceC \
DirectorySDKSourceJava
DirectorySDKSourceBuild -a \
mozilla/config \
mozilla/nsprpub
PerLDAP -a \
mozilla/directory/perldap
#######################################################################
# Modules for the Messenging Server SDK. Code maintained by Prasad Yendluri
# (prasad@netscape.com)
#
MessagingSDK -a \
mozilla/msgsdk
#######################################################################
# Modules for Calendar client.
# (spider@netscape.com)
#
CalendarClient -a \
mozilla/calendar \
mozilla/modules/calendar \
mozilla/htmlparser \
mozilla/gconfig \
mozilla/gfx \
mozilla/widget \
mozilla/xpfc \
mozilla/view
#######################################################################
# Modules for the JavaScript
# (fur@netscape.com)
#
JSRef -a \
mozilla/js/src
#
# Can't pull all of js/src, because the server-style config filenames
# are illegal on some operating systems.
#
JSClient -a \
mozilla/js/Makefile.in \
mozilla/js/makefile.win \
mozilla/js/macbuild \
mozilla/js/src \
mozilla/js/.cvsignore \
!mozilla/js/src/config \
!mozilla/js/src/editline \
!mozilla/js/src/liveconnect/config \
!mozilla/js/src/mininspr \
!mozilla/js/src/os \
!mozilla/js/src/perlconnect \
!mozilla/js/src/sh \
!mozilla/js/src/xpcom
#######################################################################
# Modules for SeaMonkey
# (5.0 Browser and 5.0 Mail/News based on nglayout)
#
# Initial wild ass guess: cyeh@netscape.com
# Second guess: mcafee@netscape.com
#
# We might want to do the platform-specific stuff like:
# SeaMonkeyCoreFoo = SeaMonkeyCore + <stuff for platform Foo>
# and so on, for each module.
#
NSPR -a \
mozilla/nsprpub
SeaMonkeyCore -a \
mozilla/.cvsignore \
mozilla/README \
mozilla/README.txt \
mozilla/client.mk \
mozilla/client.mak \
mozilla/configure \
mozilla/configure.in \
mozilla/allmakefiles.sh \
mozilla/Makefile.in \
mozilla/makefile.win \
mozilla/aclocal.m4 \
mozilla/build \
!mozilla/build/mac/client.mac \
mozilla/caps \
mozilla/config \
mozilla/dbm \
mozilla/db/.cvsignore \
mozilla/db/Makefile.in \
mozilla/db/makefile.win \
mozilla/db/mork \
mozilla/db/mdb \
mozilla/docshell \
mozilla/embedding \
mozilla/gc/boehm \
mozilla/include \
mozilla/intl \
mozilla/jpeg \
mozilla/js/jsd \
!mozilla/js/jsd/jsdb \
!mozilla/js/jsd/classes \
!mozilla/js/jsd/corba \
!mozilla/js/jsd/java \
!mozilla/js/jsd/javawrap \
JSClient \
mozilla/lib/mac/MacMemoryAllocator \
mozilla/lib/mac/Misc \
mozilla/lib/mac/MoreFiles \
mozilla/lib/mac/NSRuntime \
mozilla/lib/mac/NSStdLib \
mozilla/lib/mac/NSStartup \
mozilla/lib/mac/PowerPlant \
mozilla/lib/mac/InterfaceLib \
mozilla/lib/mac/embedding \
mozilla/modules/appfilelocprovider \
mozilla/modules/libimg \
mozilla/modules/libjar \
mozilla/modules/libpref \
mozilla/modules/libreg \
mozilla/modules/libutil \
mozilla/modules/mpfilelocprovider \
mozilla/modules/oji \
mozilla/modules/plugin \
mozilla/modules/security/freenav \
mozilla/modules/staticmod \
mozilla/modules/zlib \
mozilla/nav-java \
mozilla/network \
mozilla/netwerk \
mozilla/nglayout.mk \
mozilla/plugin/oji \
mozilla/profile \
mozilla/rdf \
mozilla/string \
mozilla/sun-java \
mozilla/tools/leaky \
mozilla/tools/preloader \
mozilla/tools/elf-dynstr-gc \
mozilla/uriloader \
mozilla/xpcom \
mozilla/xpinstall \
MozillaLicense
SeaMonkeyLayout -a \
SeaMonkeyCore \
mozilla/content \
mozilla/dom \
mozilla/gfx \
mozilla/htmlparser \
mozilla/parser \
mozilla/layout \
mozilla/view \
mozilla/webshell \
mozilla/widget \
mozilla/expat
SeaMonkeyXPToolKit -a \
SeaMonkeyLayout \
mozilla/themes \
mozilla/xpfe
SeaMonkeyBrowser -a \
mozilla/directory/xpcom \
mozilla/editor/Makefile.in \
mozilla/editor/public \
mozilla/extensions \
SeaMonkeyXPToolKit
# This needs work!
SeaMonkeyMailNews -a \
SeaMonkeyLayout \
mozilla/mailnews \
!mozilla/mailnews/db/mdb \
!mozilla/mailnews/db/mork \
SeaMonkeyEditor -a \
SeaMonkeyBrowser \
mozilla/editor \
mozilla/mailnews
SeaMonkeyL10n -a \
mozilla/l10n/makefile.win \
mozilla/l10n/makefiles.all \
mozilla/l10n/Makefile.in \
mozilla/l10n/langpacks/makefile.win \
mozilla/l10n/langpacks/Makefile.in \
mozilla/l10n/langpacks/en-DE \
mozilla/l10n/langpacks/en-GB
#############################################################
# This module is the whole banana, and this
# is the module that tinderbox and bonsai should
# track.
#
# Right now Editor pulls Browser which pulls XPToolKit
# which pulls Layout which pulls Core. But eventually,
# there will be more differentiation and uniqueness so
# All will need to contain more than Editor. Perhaps it
# will contain SeaMonkeyUnix, SeaMonkeyMac, SeaMonkeyWin
# et cetera, et cetera, et cetera. But that is in the
# future. --sarah
#
SeaMonkeyAll -a \
SeaMonkeyEditor \
SeaMonkeyL10n
Blackwood -a \
mozilla/java
SeaMonkeyBlackwood -a \
SeaMonkeyAll \
Blackwood
#############################################################
#
# Alexander Larsson's GTK+ widget for embedding mozilla into
# gtk applications.
#
#############################################################
GtkMozilla -a \
mozilla/webshell/embed/gtk
############################################################
#
# Module for Chimera, the embedded MacOSX browser.
# Because this project is mixing a branched SeaMonkeyAll
# with a trunk mozilla/chimera, we need a small module here
# for tinderbox to track mozilla/chimera. This module
# should be temporary until mozilla/chimera joins another
# major module. -mcafee
#
# 3/3/03: Chimera -> Camino name change. Temporarily adding
# new camino directory to Chimera, also adding new Camino
# module. -mcafee
#############################################################
Chimera -a \
mozilla/chimera \
mozilla/camino \
SeaMonkeyAll
Camino -a \
mozilla/camino \
SeaMonkeyAll
#############################################################
#
# Modules For Webtools
#
#############################################################
Bugzilla -a \
mozilla/webtools/bugzilla
Bonsai -a \
mozilla/webtools/bonsai
LXR -a \
mozilla/webtools/lxr
Tinderbox -a \
mozilla/webtools/tinderbox
Testopia -a \
mozilla/webtools/testopia
Webtools -a \
Bugzilla \
Bonsai \
LXR \
Tinderbox
#############################################################
#
# Module for the java webclient (edburns)
#
#############################################################
Webclient -a \
mozilla/java/Makefile.in \
mozilla/java/build.xml \
mozilla/java/README \
mozilla/java/config \
mozilla/java/dom/README \
mozilla/java/dom/build.xml \
mozilla/java/dom/classes \
mozilla/java/dom/jni \
mozilla/java/dom/src \
mozilla/java/external \
mozilla/java/makefiles \
mozilla/java/util \
mozilla/java/webclient \
mozilla/java/webclient/README \
mozilla/java/webclient/build-tests.xml \
mozilla/java/webclient/build.xml \
mozilla/java/webclient/classes_spec \
mozilla/java/webclient/config \
mozilla/java/webclient/src_ie \
mozilla/java/webclient/src_moz \
mozilla/java/webclient/src_share \
mozilla/java/webclient/test/automated \
mozilla/java/webclient/test/manual \
mozilla/java/dist
#############################################################
#
# Modules for Network Security Services
# Java Security Services
#
#############################################################
NSS -a \
mozilla/dbm \
mozilla/security/dbm \
mozilla/security/nss \
mozilla/security/coreconf
JSS -a \
mozilla/security/jss
SecurityServices -a \
mozilla/security/tinderbox \
NSPR \
NSS \
JSS
#############################################################
#
# Module for Mozilla Tinderbox
#
#############################################################
CoreTinderboxAll -a \
SeaMonkeyAll \
mozilla/security/psm \
mozilla/accessible \
mozilla/ipc/ipcd \
mozilla/security/manager \
mozilla/tools/trace-malloc \
mozilla/modules/lcms \
mozilla/modules/libpr0n \
mozilla/modules/libmar \
mozilla/modules/libbz2 \
mozilla/toolkit \
mozilla/storage \
mozilla/db/morkreader \
mozilla/db/sqlite3 \
mozilla/memory/jemalloc \
TestHarness
# should this be called SuiteTinderboxAll ?
MozillaTinderboxAll -a \
CoreTinderboxAll \
mozilla/suite \
mozilla/xulrunner
# mozilla uses mozilla/security/manager from
# the tip, not the nss branch
#
# commenting out NSS because the client uses a static tag so watching
# checkins as they happen is of no use to us
# NSS \
# commenting out NSPR because tinderbox is broken in such a way that
# checkins to the branch (which we care about) do not show up but
# checkins do the tip (which we don't care about) do. Getting rid of
# this so its not 100% false positives.
# NSPR \
# same with ldap
# mozilla/directory/c-sdk
# This module will let us track branches where all the subcomponents
# are on the same tag
CoreBranchTinderboxAll -a \
CoreTinderboxAll \
NSS \
NSPR \
mozilla/directory/c-sdk
# should this be called SuiteBranchTinderboxAll ?
MozillaBranchTinderboxAll -a \
CoreBranchTinderboxAll \
mozilla/suite
AviaryBranchTinderbox -a \
CoreBranchTinderboxAll \
mozilla/browser \
mozilla/chrome \
mozilla/mail
# thunderbird's tinderbox module
ThunderbirdTinderbox -a \
CoreTinderboxAll \
mozilla/mail \
mozilla/chrome
# this is for the phoenix tinderbox
PhoenixTinderbox -a \
CoreTinderboxAll \
mozilla/browser \
mozilla/chrome \
!mozilla/extensions/irc
# For special trees like Mozilla 1.8 --chase
AviarySuiteBranchTinderbox -a \
CoreBranchTinderboxAll \
mozilla/browser \
mozilla/chrome \
mozilla/mail \
mozilla/suite
# Test Harness code
TestHarness -a \
mozilla/tools/test-harness/xpcshell-simple \
mozilla/testing/crashtest \
mozilla/testing/mochitest

View File

@@ -1,14 +0,0 @@
# The "notify" file controls where notifications from watches set by
# "cvs watch add" or "cvs edit" are sent. The first entry on a line is
# a regular expression which is tested against the directory that the
# change is being made to, relative to the $CVSROOT. If it matches,
# then the remainder of the line is a filter program that should contain
# one occurrence of %s for the user to notify, and information on its
# standard input.
#
# "ALL" or "DEFAULT" can be used in place of the regular expression.
#
# For example:
#ALL mail %s -s "CVS notification"
ALL $CVSROOT/CVSROOT/sendnotification.pl %s

View File

@@ -1,338 +0,0 @@
# DO NOT EDIT THIS FILE! You must instead go to https://despot.mozilla.org/, and
# tweak things from there.
aaronleventhal%moonset.net:S0MUPohMWfaMo:cvsuser
aaronr%us.ibm.com:Fk/Gm8/Pavt5E:cvsuser
ajschult%verizon.net:586bcad8BLjJ.:cvsuser
akkzilla%shallowsky.com:LyPNKDRAkCEfM:cvsuser
alecf%flett.org:xY/EzwiSEg43U:cvsuser
alex%croczilla.com:.qnz.iJA.rUaQ:cvsuser
alexei.volkov.bugs%sun.com:4kk40jCYel.cQ:cvsuser
alfred.peng%sun.com:XeuD7j8pQQlfU:cvsuser
allan%beaufour.dk:HqCPQ9INvQHOk:cvsuser
alqahira%ardisson.org:/Q09uNupx65ko:cvsuser
amardare%qnx.com:.nnbfi3s/6pLw:cvsuser
andreas.otte%debitel.net:kydQ2aAIGwhkA:cvsuser
annie.sullivan%gmail.com:udBz8JbukFZ8I:cvsuser
anodelman%mozilla.com:GbVxnw5oI8qDM:cvsuser
anton.bobrov%sun.com:I/GPt4WI84v2s:cvsuser
antonio.gomes%indt.org.br:5Th4Q/mTAB6fg:cvsuser
aravind%mozilla.com:QBQ7ZP8fvKCk2:cvsuser
asa%mozilla.org:KwQFH5YHrDGVw:cvsuser
asac%jwsdot.com:5Ttz4cO1tOAUI:cvsuser
asasaki%mozilla.com:OvcxjU43UXiZU:cvsuser
asqueella%gmail.com:.UwhPbirT2aic:cvsuser
atremon%elansoftware.com:W3ra7Lu0bCR92:cvsuser
ause%sun.com:J7sS6Z5BS4BsA:cvsuser
axel%pike.org:J0ntXH8PN.yTA:cvsuser
bbaetz%acm.org:JhmLaLDTsT/h2:cvsuser
bclary%bclary.com:TYy8zRTOlkZWU:cvsuser
bear%mozilla.com:QPUD827Visics:cvsuser
beckley%qualcomm.com:oqzqNk6Hm.K52:cvsuser
benc%meer.net:.mc9O4VQuREws:cvsuser
beng%bengoodger.com:qP3ON3NucalGw:cvsuser
benjamin%smedbergs.us:dvB/veJh3IxkM:cvsuser
bent.mozilla%gmail.com:VTFl7s.ZNXBIc:cvsuser
bhearsum%mozilla.com:bc9sC.7gLvhWA:cvsuser
bienvenu%nventure.com:dzcEj09V1HQLg:cvsuser
biswatosh.chakraborty%sun.com:Cj89QwJpG0/hc:cvsuser
blassey%mozilla.com:gIEKQwXOhM9z2:cvsuser
blizzard%mozilla.com:qNva3X2geFCuY:cvsuser
bmlk%gmx.de:diOpGSeH3syIs:cvsuser
bobbyholley%gmail.com:UEdaVxj7BVsMY:cvsuser
brade%comcast.net:ouetdVzWLzsWs:cvsuser
BradleyJunk%cinci.rr.com:EOOl4wp9MNcU6:cvsuser
brendan%mozilla.org:N7wZcaY7Bs9nw:cvsadm
brettw%gmail.com:Jm1XbKZwUGoHs:cvsuser
browning%uwalumni.com:MgeOzDk/xxhD6:cvsuser
bryner%brianryner.com:gy5stVpStoVNw:cvsuser
bugreport%peshkin.net:PgnY246SzUcHk:cvsuser
bugzilla%babylonsounds.com:/Cu/c717IBD1w:cvsuser
bugzilla%glob.com.au:O.LFwfIctGxh6:cvsuser
bugzilla%standard8.plus.com:lmzqmqShGzGYs:cvsuser
burnus%gmx.de:RBozBY9sekJRM:cvsuser
bz%barnson.org:hRMbA3bW5q6Ak:cvsuser
bzbarsky%mit.edu:YySJ0ECW0UqcM:cvsuser
bzrmirror%bugzilla.org:do0ZvZ/z.1YQM:cvsuser
caillon%redhat.com:S5LpV7HM4OOzo:cvsuser
callek%gmail.com:7c0ZoYCqNF3qk:cvsuser
catlee%mozilla.com:eY4mh1o1mljjg:cvsuser
cbarrett%mozilla.com:TFDyorFt/0ICk:cvsuser
cbiesinger%gmail.com:SmMxtOg6tGNJg:cvsuser
ccooper%deadsquid.com:.a8HcC8mM7pks:cvsuser
Chris.Yeh%nokia.com:98WX9EeAZIt/6:cvsuser
christophe.ravel.bugs%sun.com:m72kIhpCT13sg:cvsuser
cls%seawood.org:YLAr7ajnaXezg:cvsuser
cltbld%netscape.com:mla4CZgCloBSU:cvsuser
cmp%mozilla.org:N6s8fO4X.RRV.:cvsuser
cpeyer%adobe.com:/J3KHO2IWNqBk:cvsuser
crowder%fiverocks.com:nTJiASZEqtksI:cvsuser
cst%yecc.com:FsXA0AnQhG/kg:cvsuser
ctalbert%mozilla.com:9UNADg/pEZyzA:cvsuser
daniel%glazman.org:voZRrCYpgF9AU:cvsuser
danm-moz%comcast.net:3h6FdkzmMqnyA:cvsuser
dansmith%adobe.com:XXuMiHbfmTlRQ:cvsuser
dao%mozilla.com:s.1QwzYPRMD5c:cvsuser
darin%meer.net:BFlqb/kSuCdKo:cvsuser
daumling%adobe.com:PZxEWCXipcjEI:cvsuser
david%bozemanpass.com:CSVK8gML2ph9c:cvsuser
db48x%yahoo.com:WOXgUg7VfNR2s:cvsuser
dbaron%dbaron.org:Ufu45S7XqztOY:cvsuser
dbolter%mozilla.com:Pj95SMWINbfQY:cvsuser
dcamp%mozilla.com:8J1lYA6aDXWgI:cvsuser
dean_tessman%hotmail.com:AM2BZ7M0nDhlM:cvsuser
deb%dria.org:tevrBpdIX/IAw:cvsuser
despotdaemon:gNFxPV183TGDc:cvsadm
dholbert%cs.stanford.edu:DP/HW2hXEZoDg:cvsuser
diegohcg%gmail.com:Vs/1h.ZP6RmZg:cvsuser
dietrich%mozilla.com:V5GbjeqBWgCQc:cvsuser
dlawrence%mozilla.com:Jb37f1UZbg4g2:cvsuser
dmandelin%mozilla.com:omKcEsk6wjg9s:cvsuser
dmose%mozilla.org:sTIo1zYddteQc:cvsadm
dolske%mozilla.com:yYw1gOmZMtaAM:cvsuser
doronr%us.ibm.com:BntrR9DKOvfRw:cvsuser
douglas%stebila.ca:FtOKWYCG./BN6:cvsuser
dougt%meer.net:QzucPi4akyAvo:cvsuser
driehuis%playbeing.org:BbR6IahGk6yGc:cvsuser
dschaffe%adobe.com:IVaq/BhZhOKOc:cvsuser
dtownsend%oxymoronical.com:nN8k.deZPkAY6:cvsuser
dveditz%cruzio.com:S1X7iuOVZr0tI:cvsuser
dwitte%mozilla.com:atobJ8YkJm/x.:cvsuser
edburns%acm.org:z7zqfOtPH9oic:cvsuser
edward.lee%engineering.uiuc.edu:JQQPKcRtozeJY:cvsuser
ehsan.akhgari%gmail.com:ZAquXcDKuPuNk:cvsuser
emaijala%kolumbus.fi:HlHx6Z2VwOLeg:cvsuser
emaldona%redhat.com:E.pBgfrTvGowM:cvsuser
enndeakin%gmail.com:gQGH2TE1LSHR.:cvsuser
erhyuan%pacbell.net:b6.iRP5wVeO1s:cvsuser
erik%dasbistro.com:RleOQJ5O4vqSI:cvsuser
erik%vanderpoel.org:UIUlMPWTelYIE:cvsuser
Evan.Yan%Sun.COM:y6fet2ZQuQjxw:cvsuser
fantasai.cvs%inkedblade.net:.wuTh0oK1y23M:cvsuser
firefox%blakeross.com:iecsxCayirMQw:cvsuser
flamingice%sourmilk.net:9xh1/DFw2ODOU:cvsuser
florian%queze.net:fYk7exIMhk3I.:cvsuser
gandalf%firefox.pl:gag9.o44ly07A:cvsuser
gavin%gavinsharp.com:pMMNzxf5m93DM:cvsuser
gavin%picsel.com:3fMXVt7Cqmgo.:cvsuser
gerv%gerv.net:/3awrKKpfLPvQ:cvsuser
ghendricks%novell.com:EHmq1PZa1a00s:cvsuser
gijskruitbosch%gmail.com:9n2/iwbsnMyiw:cvsuser
ginn.chen%sun.com:.yE1Sk2DszKf2:cvsuser
glen.beasley%sun.com:Bg3n.ccr13OvI:cvsuser
gozer%mozillamessaging.com:Qbfiaq/6nsg6s:cvsuser
graydon%mozilla.com:oifQirJbZia3U:cvsuser
guy.pyrzak%gmail.com:aCVt2H8vDraHM:cvsuser
hannes%helma.at:kf..K/fIFAHks:cvsuser
hjtoi%comcast.net:52AbDkgxmkRfY:cvsuser
honzab.moz%firemni.cz:r0fsdafA2Nd2M:cvsuser
hpradhan%hotpop.com:Z9A47ej9QDVYc:cvsuser
hwaara%gmail.com:74eCB7AZi/Bm2:cvsuser
ian%hixie.ch:nibu2mA5/kgco:cvsuser
iann_cvs%blueyonder.co.uk:bVhEvG7dtzxWg:cvsuser
igor%mir2.org:MM9XCaPQ9hSyA:cvsuser
inonit%inonit.com:Om4RcBfTOXpSw:cvsuser
ispiked%gmail.com:fIoVRIBQ9Yf26:cvsuser
jag%tty.nl:JfxrrkZerNZv.:cvsuser
jake%bugzilla.org:mjldF4ES.KxbI:cvsuser
Jan.Varga%gmail.com:itS5ZJXFiEJC2:cvsuser
jasone%canonware.com:Oe69thka5Drg2:cvsuser
jay%mozilla.org:./8ppoCBU7xKE:cvsuser
jdrew%mozilla.com:H94cmzCtc22L6:cvsuser
jeff.hedlund%matrixsi.com:dUxvk4HDbIrkA:cvsuser
jgmyers%speakeasy.net:tj/q7ALULIlLM:cvsuser
jhopkins%mozillamessaging.com:F3Gyejh.h.L3I:cvsuser
jim_nance%yahoo.com:MW2pItooimXQc:cvsuser
jmathies%mozilla.com:JMun7n79fcZrE:cvsuser
jminta%gmail.com:xECVGDTSeqbz2:cvsuser
jodyer%adobe.com:RSXkcpr/Wp4VE:cvsuser
joe%retrovirus.com:qUSVkAd/h8mko:cvsuser
john%johnkeiser.com:UEgKBivGIzptw:cvsuser
johnath%mozilla.com:kyyPyUgFhqYjQ:cvsuser
jonas%sicking.cc:HmAX9bYyCA47k:cvsuser
jorendorff%mozilla.com:E.PR9.l6FO.0I:cvsuser
joshmoz%gmail.com:X9Pi3H9iwCIb2:cvsuser
jouni%heikniemi.net:ykttS9UKWXc9E:cvsuser
jresig%mozilla.com:6cSYi6oRTWDoE:cvsuser
jruderman%hmc.edu:mwr0yF3PJ5H2g:cvsuser
jscott%mozilla.com:PcwAYdu4UOrto:cvsuser
jshin1987%gmail.com:j6/TcPcy/KYgg:cvsuser
jst%mozilla.org:ry1WSdsxrYVhg:cvsuser
julien.pierre.boogz%sun.com:2ebjC0cACURyU:cvsuser
justdave%bugzilla.org:Xi4EgN7Xvi7z6:cvsadm
justin%mozilla.com:44P/1lpTCFMo.:cvsadm
jwalden%mit.edu:DYcaTEuBX5WEA:cvsuser
jwatt%jwatt.org:rQgtjD.FtjqWY:cvsuser
kaie%kuix.de:.hgVIsvtes.Fw:cvsuser
kairo%kairo.at:P3GfvvKlerCks:cvsuser
karl.kornel%mindspeed.com:9Vq/LWyYItegs:cvsuser
karlt+%karlt.net:w1Gi9UP1A0i4Y:cvsuser
katakai%japan.sun.com:qJPfrx26UNm2.:cvsuser
kerz%mozillazine.org:PrxCfYo5gxNi.:cvsuser
kestesisme%yahoo.com:5Ld0f8MhzQggw:cvsuser
kevin.heart%gmail.com:8lliOE5JWdETk:cvsuser
kherron%fmailbox.com:rRN9eQFLs3af6:cvsuser
kieran%eternal.undonet.com:gVVzTaNHTa3HE:cvsuser
kiko%async.com.br:Uz8pBMTzv6gpo:cvsuser
kinmoz%netscape.net:RexUJ7MbhHOeE:cvsuser
klibby%mozilla.com:bQPoQ04OC8s.6:cvsadm
Kurt.Zenker%sun.com:PxXscXmcBiCWY:cvsuser
kyle.yuan%sun.com:4pSzbqjeADpcc:cvsuser
lars%mozilla.com:OIS1qjX2A4hPY:cvsuser
lars%trolltech.com:sGvT16I8vdbYY:cvsuser
leaf%mozilla.org:yDi7DUMDdLeDk:cvsuser
leif%ogre.com:NSpnZ.4teg8CA:cvsuser
leon.sha%sun.com:VfiWfb3UX3.Iw:cvsuser
lianliming%gmail.com:q1NmFx6CiR/cE:cvsuser
light%rathedg.com:G9NscomPqxBJg:cvsuser
locka%iol.ie:Odt22ztoqh7Pc:cvsuser
longsonr%gmail.com:n0H6qvTySWbsY:cvsuser
lordpixel%mac.com:pBoWsz5/W/1/o:cvsuser
louie.zhao%sun.com:ajsxRr.217rWY:cvsuser
lpsolit%gmail.com:s2V0JuW2d3qG.:cvsuser
lwagner%mozilla.com:nn8UYSg1EVCR6:cvsuser
marco.zehe%googlemail.com:/.MEQU1hGEtlE:cvsuser
marco%gnome.org:zKqukw72.KsUw:cvsuser
mark.finkle%gmail.com:.CMOa5pzz2ey6:cvsuser
mark%lussumo.com:dNKgwl4OUxxHY:cvsuser
mark%moxienet.com:xXj.wmda2UrCM:cvsuser
mark%plogs.net:9a8m5d2zmZBzA:cvsuser
marria%gmail.com:UXJ8PJcEKNij2:cvsuser
martijn.martijn%gmail.com:dQsvqxjujoE9g:cvsuser
masayuki%d-toybox.com:Px8OA0y98uKTY:cvsuser
mats.palmgren%bredband.net:xBfocrUUc/wis:cvsuser
mattwillis%gmail.com:TiZNJlJ.RHoBs:cvsuser
mattyt%tpg.com.au:c/z7/vNQ/Vv1I:cvsuser
mcafee%mocha.com:Y/0zK7Dff2W8.:cvsuser
mcharleb%qualcomm.com:Uyg8fRoqDJSPE:cvsuser
mconnor%steelgryphon.com:KLpr7Zj8uPkes:cvsuser
mcs%pearlcrescent.com:1K9aYq1ivwd6s:cvsuser
mcsmurf%mcsmurf.de:zYsbEuLO7wm76:cvsuser
mgalli%geckonnection.com:Myf1X1IRZtvK6:cvsuser
mhammond%skippinet.com.au:T1kpFNZuhvQ0I:cvsuser
michael.buettner%sun.com:NkL7l4mYwuirs:cvsuser
mike%meer.net:3rKv1ZMBpeR36:cvsuser
mkanat%bugzilla.org:UsNXKY7u6ozDw:cvsuser
mkaply%us.ibm.com:1Ui2NF/0U00sI:cvsuser
mkmelin+mozilla%iki.fi:6koUOtAKdEXB2:cvsuser
mnyromyr%tprac.de:8JwFnN3UC8w.w:cvsuser
morgamic%mozilla.com:oMf2l.pEwcLAc:cvsuser
mostafah%oeone.com:DaYs.xDcUaa72:cvsuser
mozilla.BenB%bucksch.org:7/oOTh8e41HmY:cvsuser
mozilla.mano%sent.com:rXnDyx.hnVKyk:cvsuser
mozilla%boelzle.org:IhnkPcmU2aaTM:cvsuser
mozilla%colinogilvie.co.uk:JlBNqlkELDhhI:cvsuser
mozilla%justcameron.com:eCz/XDzlP8Cwg:cvsuser
mozilla%kewis.ch:K/pXr12MlfCWc:cvsuser
mozilla%weilbacher.org:eoZapDeWw57LY:cvsuser
mozmail%daveliebreich.com:P3fSEyqi8O9S2yba:cvsuser
mozpreed%sigkill.com:BvqmKaKN1qcNE:cvsadm
mrbkap%gmail.com:UMeeFwmDqd7II:cvsuser
mschroeder%mozilla.x-home.org:iWrL1IFBbV/sw:cvsuser
mstange%themasta.com:xXppy8/VqgZYk:cvsuser
mvl%exedo.nl:kpiBYLuZnAosE:cvsuser
myk%mozilla.org:UPia1WceZof6E:cvsadm
m_kato%ga2.so-net.ne.jp:FoloD5kECUuTo:cvsuser
nboyd%atg.com:hbKSEw6zIzn8A:cvsuser
neil.williams%sun.com:5demyASX0XQLE:cvsuser
neil%parkwaycc.co.uk:dIqJP4XsRGQIw:cvsuser
nelson%bolyard.com:AVyk3HXWf.ujs:cvsuser
nhosoi%redhat.com:Kc7DN3G6DWNVc:cvsuser
nick.kreeger%park.edu:8w9jrG44s9v9o:cvsuser
nkwan%redhat.com:Evx20xUpj8Gk2:cvsuser
nrthomas%gmail.com:39NAPUEFnNHP.:cvsuser
olav%bkor.dhs.org:fuDFH7wT/SfrM:cvsuser
Olli.Pettay%helsinki.fi:JNyNghF5OJ9Xo:cvsuser
oremj%mozilla.com:Vu3lChH7COMLs:cvsadm
pamg.bugs%gmail.com:t.cstj7r1wyFo:cvsuser
paper%animecity.nu:zZz20Ze5U4roc:cvsuser
pavlov%pavlov.net:Wm/3gCaQhXNLo:cvsuser
pcbeard%mac.com:2Eed7KIBNPtL6:cvsuser
pedemont%us.ibm.com:yXrIQ7nPbCytE:cvsuser
pete%mozdevgroup.com:8I2QCUKNKooqA:cvsuser
peterv%propagandism.org:tknmYRfnctNHY:cvsuser
philringnalda%gmail.com:QfBdPW0n3i/vE:cvsuser
Pidgeot18%gmail.com:3AKyGBnLGhuQk:cvsuser
pinkerton%aol.net:SXjRJmDJDtb1U:cvsuser
pkasting%google.com:LyTm7xG6RxIAo:cvsuser
pkw%us.ibm.com:8b/bmWBPVi2ug:cvsuser
prasad%medhas.org:UFVpNiIq80k0w:cvsuser
psychoticwolf%carolina.rr.com:utvOR5.5Us.kU:cvsuser
ptran%mozilla.com:.vSQA1Tg/CD9.:cvsadm
p_ch%verizon.net:9sotrJUSTkw2o:cvsuser
rbs%maths.uq.edu.au:2urVlBcTziPaA:cvsuser
rcampbell%mozilla.com:/T/10DQgIOWm6:cvsuser
redfive%acm.org:bwZbPN1gYEnPo:cvsuser
reed%reedloden.com:hTsN0cuIWUQL2:cvsadm
rflint%ryanflint.com:6jZQWQz6aMM6E:cvsuser
rginda%hacksrus.com:TRTBrAIOV/zck:cvsuser
richard.freedman%sun.com:8SW/naR5ntHSs:cvsuser
richm%stanfordalumni.org:CMqOc556cwVPA:cvsuser
rick.ju%sun.com:O/OoCMTnW5sUE:cvsuser
rj.keller%beonex.com:Kg0SscFg1bZfw:cvsuser
rjesup%wgate.com:5Ccmc2hO67zAk:cvsuser
robarnold%cmu.edu:ID9AnqMmrJIH2:cvsuser
robert%accettura.com:ofCq6Xe9Mdsk6:cvsuser
robert%roberthelmer.com:8wnUosvUV2zI.:cvsuser
robin.lu%sun.com:QX/01AXloHL0A:cvsuser
rob_strong%exchangecode.com:QcQeM1Fhopr1A:cvsuser
roc+%cs.cmu.edu:7yP.3Z8FERo/.:cvsuser
romaxa%gmail.com:ERMq0/01GM3DU:cvsuser
rrelyea%redhat.com:SnAaVLpexLWKw:cvsuser
samuel%sieb.net:UyA4IG.2.LceA:cvsuser
sancus%off.net:Z1FCTZbwRr8xI:cvsuser
sayrer%gmail.com:Bi0wR2pc2rfyE:cvsuser
scc%mozilla.org:rSANuSFML82vc:cvsuser
schrep%mozilla.com:HOyCtawx2RMLg:cvsuser
scootermorris%comcast.net:wQk4tagONTuMg:cvsuser
scott%scott-macgregor.org:/iUxoWYhl45Gw:cvsuser
sdwilsh%shawnwilsher.com:vlJz/BjeP89rw:cvsuser
sebo.moz%googlemail.com:lC8mJxyQ4sjDA:cvsuser
sergei_d%fi.tartu.ee:2pMVH6CMfBao6:cvsuser
sgautherie.bz%free.fr:zRDfcZjqityUw:cvsuser
sharparrow1%yahoo.com:.ksEGiKJj1sdU:cvsuser
shaver%mozilla.org:I4.grysVnENVM:cvsadm
silver%warwickcompsoc.co.uk:jn1zaL3oWEYT6:cvsuser
simford%yahoo.com:fV41vy16txOL6:cvsuser
slavomir.katuscak%sun.com:zzZvFAbWtnVt6:cvsuser
smfr%smfr.org:2mFWUaEqjN7lE:cvsuser
smichaud%pobox.com:LVTaYwQdcsyLA:cvsuser
smontagu%smontagu.org:GR7KUGsPjdY/6:cvsuser
sparkins%redhat.com:v47uXV/9jevOo:cvsuser
sspitzer%mozilla.org:6pWx3PlzU0tYQ:cvsuser
ssu0262%aol.com:cfNlpxCKVXQtQ:cvsuser
Stefan.Borggraefe%gmx.de:h788WO/3xUGRc:cvsuser
stefanh%inbox.com:hWmK3E9KdRisc:cvsuser
steffen.wilberg%web.de:Sj/Ybb7X9aaRI:cvsuser
stephen%noved.org:eUTehPWJZ96oI:cvsuser
stridey%gmail.com:1dIxxxcOFboTM:cvsuser
stuart.morgan%alumni.case.edu:osIW3RwEUQsgM:cvsuser
surkov.alexander%gmail.com:j7fhI7d42nVNU:cvsuser
szegedia%freemail.hu:wnmu1pi.2s982:cvsuser
ted.mielczarek%gmail.com:RZ395urzBvt8Q:cvsuser
tglek%mozilla.com:WvBRjnHMP9ZTU:cvsuser
thomas.benisch%sun.com:VS9sGUhKBH37s:cvsuser
tierney%adobe.com:/l37fMGOOoRuA:cvsuser
timeless%mozdev.org:/rmja24l1sOYs:cvsuser
toddw%activestate.com:7bfDWjDX3IqGk:cvsuser
tony%ponderer.org:I25wmbIx2NMV.:cvsuser
tor%cs.brown.edu:.GLVprG/lOpjM:cvsuser
travis%sedsystems.ca:GeYiqvJTK4qvM:cvsuser
treilly%adobe.com:.NcUbzHumfIHE:cvsuser
treydrake%yahoo.com:Y6aSEsZf.GcP2:cvsuser
ulf%loop.to:nyAdDm7URuxog:cvsuser
uriber%gmail.com:UbuwPpUMiAJGI:cvsuser
vitaly%rathedg.com:gCpWN92cgp7aU:cvsuser
vladimir%pobox.com:ZcFYwCPC7dvjE:cvsuser
wclouser%mozilla.com:7kMqx9pigCvx2:cvsuser
webmail%kmgerich.com:K7U1HCAoxFv2E:cvsuser
wildriding%gmail.com:C5sZHT45QR.ks:cvsuser
wolfe%lobo.us:lv89GmGhY7/16:cvsuser
wr%rosenauer.org:ZfCN63R6WKPWc:cvsuser
wsharp%adobe.com:k/vjPPnrjMKsQ:cvsuser
wtc%google.com:qv4XOpmSQjJG2:cvsuser
wurblzap%gmail.com:pto2PHYncXBQY:cvsuser
Xiaobin.Lu%eng.Sun.com:MrrYDdtVNWvV6:cvsuser
yinbolian%gmail.com:SXDI.XmKRDr7s:cvsuser
zach%zachlipton.com:GLozolSujiqSo:cvsuser
zack%kde.org:OcOf3QFUvN/v2:cvsuser
zhayupeng%gmail.com:rXMiOKAkMlQts:cvsuser

View File

@@ -1,13 +0,0 @@
# The "rcsinfo" file is used to control templates with which the editor
# is invoked on commit and import.
#
# The first entry on a line is a regular expression which is tested
# against the directory that the change is being made to, relative to the
# $CVSROOT. For the first match that is found, then the remainder of the
# line is the name of the file that contains the template.
#
# If the repository name does not match any of the regular expressions in this
# file, the "DEFAULT" line is used, if it is specified.
#
# If the name "ALL" appears as a regular expression it is always used
# in addition to the first matching regex or "DEFAULT".

View File

@@ -1,47 +0,0 @@
#!/usr/bin/perl
#
# This is a simple script that forces specified users to
# have read-only access to the CVS repository when using SSH.
# This must be done in a pre-commit check script, as SSH users
# must have an account on the server with access to the repository.
# Returning "0" means the account is allowed to check-in. Any other
# return type will stop the commit from occurring.
#
# Authors: Reed Loden <reed@mozilla.com>
# Aravind Gottipati <aravind@mozilla.com>
#
# To make it work, you need to add the script name to
# CVSROOT/checkoutlist so that the script is checked out correctly
# on the CVS server.
# Also, you need to add a line to your
# CVSROOT/commitinfo file that says something like:
#
# ALL $CVSROOT/CVSROOT/readonlyusers.pl
use strict;
use warnings;
# Hash of read-only users
my %read_only_users = (
'calbld' => 1,
'caminobld' => 1,
'ffxbld' => 1,
'l10nbld' => 1,
'nobody' => 1,
'stgbld' => 1,
'qabld' => 1,
'unittest' => 1,
'trybld' => 1,
'xrbld' => 1
);
my $username = $ENV{'CVS_USER'} || getlogin || (getpwuid($<))[0] || 'nobody';
if (exists $read_only_users{$username}) {
print STDERR "The $username account is not permitted to check-in to this CVS repository.\n";
print STDERR "If you think it should be allowed to do so, please contact\n";
print STDERR "the system administrators at sysadmins\@mozilla.org.\n";
exit 1;
}
exit 0;

View File

@@ -1,78 +0,0 @@
#!/usr/bin/perl
use Socket;
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";
}
}
}
my @mailto;
my $i;
foreach $i (@ARGV) {
# Deal with our "%" encoding of email addresses.
if ($i !~ /\@/) {
$i =~ s/%/\@/;
}
push(@mailto, $i);
}
chop(my $hostname = `/bin/hostname`);
my ($remote,$port, $iaddr, $paddr, $proto, $line);
$remote = "localhost";
$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: cvs-notify-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 ".
print S "Subject: CVS notification\n";
print S "To: " . join(',', @mailto) . "\n";
print S "\n";
while (<STDIN>) {
print S $_;
}
print S ".\n";
get_response_code(250);
print S "QUIT\n";
close(S);

View File

@@ -1,20 +0,0 @@
# The "taginfo" file is used to control pre-tag checks.
# The filter on the right is invoked with the following arguments:
#
# $1 -- tagname
# $2 -- operation "add" for tag, "mov" for tag -F, and "del" for tag -d
# $3 -- repository
# $4-> file revision [file revision ...]
#
# A non-zero exit of the filter program will cause the tag to be aborted.
#
# The first entry on a line is a regular expression which is tested
# against the directory that the change is being committed to, relative
# to the $CVSROOT. For the first match that is found, then the remainder
# of the line is the name of the filter to run.
#
# If the repository name does not match any of the regular expressions in this
# file, the "DEFAULT" line is used, if it is specified.
#
# If the name "ALL" appears as a regular expression it is always used
# in addition to the first matching regex or "DEFAULT".

View File

@@ -1,21 +0,0 @@
# The "verifymsg" file is used to allow verification of logging
# information. It works best when a template (as specified in the
# rcsinfo file) is provided for the logging procedure. Given a
# template with locations for, a bug-id number, a list of people who
# reviewed the code before it can be checked in, and an external
# process to catalog the differences that were code reviewed, the
# following test can be applied to the code:
#
# Making sure that the entered bug-id number is correct.
# Validating that the code that was reviewed is indeed the code being
# checked in (using the bug-id number or a seperate review
# number to identify this particular code set.).
#
# If any of the above test failed, then the commit would be aborted.
#
# Actions such as mailing a copy of the report to each reviewer are
# better handled by an entry in the loginfo file.
#
# One thing that should be noted is the the ALL keyword is not
# supported. There can be only one entry that matches a given
# repository.

View File

@@ -1,2 +0,0 @@

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
README/mozilla/IDEPrefs.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

916
README/mozilla/macbuild.htm Normal file
View File

@@ -0,0 +1,916 @@
<HTML>
<!--This file created 4/2/98 12:32 PM by Claris Home Page version 3.0 30 Day Trial-->
<HEAD>
<TITLE>MacFE Issues</TITLE>
<META NAME=GENERATOR CONTENT="Claris Home Page 3.0 30 Day Trial">
<X-CLARIS-WINDOW TOP=43 BOTTOM=741 LEFT=5 RIGHT=661>
<X-CLARIS-REMOTESAVE SERVER=pinkerton USER=root DIR="/NextLibrary/WebServer/Documents/" FILE="">
<X-CLARIS-TAGVIEW MODE=minimal>
<META http-equiv="Content-Type" content="text/html; charset=MacRoman"><!--This file created 3/17/98 9:38 PM by Claris Home Page version 3.0 30 Day Trial-->
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<H1>MacFE Issues</H1>
<P>A general document on how to build, what works, what doesn't, and
things to watch out for when working on the Mac client. <B>Please
read the entire document before you start tinkering</B>...heck, you
may just learn something!</P>
<P>Abbreviations you will probably see in this document:</P>
<UL>
<LI><B>MacFE</B> - the Macintosh front end, including all the
things you see and some you don't.</LI>
<LI><B>XP</B> - cross platform back end code, mostly written in C.
You will see this used like, "This is an XP problem" which means
it's broken everywhere.</LI>
<LI><B>MW</B> - Metrowerks Corporation. They make our build tools
(CodeWarrior) and PowerPlant</LI>
<LI><B>PP</B> - PowerPlant, the GUI framework on which our app is
built</LI>
<LI><B>CWProX</B> - CodeWarrior Pro version X. You'll probably see
CWPro1, CWPro2, and CWPro3. We may also just refer to this as
<B>CW</B>.</LI>
<LI><B>IDE</B> - Integrated Development Environment. CodeWarrior
is an IDE.</LI>
<LI><B>NC</B> - the working name for our Aurora technology, the
Navigation Center.</LI>
<LI><B>HT</B> - HyperTree, a layer of XP APIs over RDF on which
the NavCenter is built.</LI>
</UL>
<H3><A HREF="#Building">Building</A></H3>
<H3><A HREF="#NewFeatures">New 5.0 Features</A></H3>
<H3><A HREF="#Unfinished">Unfinished Features</A></H3>
<H3><A HREF="#Pitfalls">Pitfalls</A></H3>
<H3><A HREF="#HistFuture">History and Future</A></H3>
<P>Help for parts of this document, especially build instructions,
was received from Dan Kogai.</P>
<H2>
<HR>
<A NAME=Building></A>Building</H2>
<H4>What are the minimum machine requirements?</H4>
<P>To build Navigator, you need a fast PPC Mac. The faster the
better. You can't build with a 68K machine because we have too many
resources, and the build process will crash when trying to generate
resources out of our cross-platform strings. See the discussion below
for a way around this.</P>
<P>You will need about 96 MB of physical RAM to "fast link" the app.
You can still fast link if you give your machine 96 MB of virtual
memory, but then the VM hit is large enough to counteract any
improvement. One of our beta testers had a machine with only 64MB of
physical RAM (VM was off) and it ran out of memory trying to link.
Turning VM on got it to link, but build time increased greatly.</P>
<P>Reports from the net indicate that the optimized version
(MozillaPPC) take much less RAM to build than the 96MB we suggest. If
you are running out of memory, try building that instead of the debug
version (the debug symbols require a lot of RAM come link time).</P>
<P>The moral of the story: get lots of physical RAM and don't use
VM.</P>
<H4>How big of a partition do I need for the source?</H4>
<P>You should be ok with a 400MB disk partition, even when fully
built. This does not include tools like the IDE, just source.</P>
<P>On an HFS+ volume, a full build takes about 110MB. HFS+ is good,
but utilities are sparse.</P>
<H4>Why do I need CWPro2 or better?</H4>
<P>We use CodeWarrior as our development environment at Netscape for
the MacFE. All of the projects and tools are geared towards the
CodeWarrior IDE. In addition, we make heavy use of PowerPlant and MSL
which you can only get from Metrowerks.</P>
<P>While we say you need at least CWPro2, you may be able to get by
with Pro1, but probably not for very long. We haven't tested it, so
we don't recommend it. Get the upgrade. CodeWarrior kicks serious
butt!</P>
<H4>How do I setup my development environment?</H4>
<P>This part is very important--and somewhat difficult (especially
when compared to other platforms). I repeat: Read very carefully!
Once this part is done right, the build process itself should be as
easy as drag and drop. </P>
<P>Here's a list of 3rd party <B>software</B> that we compile into
the application and where to get it:</P>
<UL>
<LI>PowerPlant 1.8 - obtainable from the CodeWarrior CD.</LI>
<LI>MSL - the Metrowerks Standard Library, obtainable from the
CodeWarrior CD</LI>
<LI><A HREF="ftp://ftp.boingo.com//dan/WASTE/waste-13.hqx">WASTE
1.3</A></LI>
<LI><A HREF="http://www.bact.wisc.edu/CWASTEEdit/CWASTEEdit.sit.hqx">CWASTE
1.6.2</A></LI>
<LI><A HREF="ftp://ftp.scripting.com/userland/menuSharingToolkit4.1.sit.hqx">Menu
Sharing Toolkit</A> (from UserLand)</LI>
<LI><A HREF="ftp://ftp.digitalalchemy.com/pub/digitalalchemy/mercutio-SDK.sit.bin">Mercutio
1.5 SDK</A> (only download the SDK, not the entire package, else
the access paths will be wrong)</LI>
<LI><A HREF="ftp://ftp.share.com/pub/internet-configuration/ICProgKit1.4.sit">Internet
Config 1.4 SDK</A></LI>
<LI><A HREF="http://www.mooseyard.com/Jens/Software/">AEGizmos
1.4.2</A></LI>
</UL>
<P>Here's a list of other build <B>tools</B> that you need to install
in order to build and where to get them:</P>
<UL>
<LI><A HREF="ftp://sunsite.cnlab-switch.ch/software/platform/macos/perl/Mac_Perl_520r4_tool.bin">MacPerl
5 MPW Tool</A></LI>
<LI><A HREF="ftp://sunsite.cnlab-switch.ch/software/platform/macos/perl/Mac_Perl_520r4_appl.bin">MacPerl 5 Application</A></LI>
<LI>MakeStub - MPW (installed with CodeWarrior Heaven option). If
you choose not to install MPW, it is located on the MacOS Tools CD
in "CW Pro 2 Tools:CodeWarrior MPW:MPW:Tools"</LI>
<LI>RunTSScript - in Mozilla source distribution
(mozilla:build:mac:RunTSScript), needs to be installed by hand</LI>
<LI><A HREF="ftp://dev.apple.com/devworld/Tool_Chest/Core_Mac_OS_Tools/MPW_etc./MPW-GM/MPW/ToolServer.sit.hqx">ToolServer</A>
- or in the CW distribution (CW Pro 2 Tools:Apple Development
Tools:ToolServer 3.4.1.sit). <B>We recommend pulling it off the
CD</B> because it comes with configuration files for CodeWarrior
which you would have to create manually were you to pull it off
the net.</LI>
<LI><A HREF="http://people.netscape.com/sfraser/software/NewAlias_tool.sit.hqx">New Alias MPW Tool</A>
An MPW tool that creates Finder aliases for files.
</LI>
<LI>StreamEdit MPW Tool - MPW (installed with CodeWarrior Heaven option). If
you choose not to install MPW, it is located on the MacOS Tools CD
in "CW Pro 2 Tools:CodeWarrior MPW:MPW:Tools"</LI>
</LI>
<LI><A HREF="ftp://dev.apple.com/devworld/Periodicals/develop/develop25/develop_Issue_25_code/ToolFrontEnd.sit.hqx">ToolFrontEnd</A></LI>
<LI><A HREF="http://sunsite.cnlab-switch.ch/ftp/software/platform/macos/src/HTML/MPW_C.html">patch
2.1</A></LI>
</UL>
<P>Once you have all the pieces, here are the steps required to put
everything together:</P>
<OL>
<LI>Install CodeWarrior from the CD. While it is large, installing
the "CodeWarrior Heaven" option will guarantee that you have
everything you need. This will give you PowerPlant, MSL, and MPW.
If you choose to install less, proceed at your own risk.</LI>
<LI>In the Finder, increase the memory partition of the IDE to
15MB (you can get by with 12, if need be).</LI>
<LI>Download ToolFrontEnd. After expanding it, in "ToolFrontEnd
Folder:Drop-Ins" there are three items:
<UL>
<LI><I>#include</I></LI>
<LI><I>ToolFrontEnd</I></LI>
<LI><I>ToolFrontEnd Panel</I></LI>
</UL>
<P>Create a folder named "Include Scanners". Place the file
"#include" into the Include Scanners folder. Move the Include
Scanners folder to the CodeWarrior Plugins folder. Create a folder
named "ToolFrontEnd". Place the files "ToolFrontEnd" and
"ToolFrontEnd Panel" into the ToolFrontEnd folder. Place this
folder in the CodeWarrior Plugins folder.</P></LI>
<LI>Open "ToolFrontEnd Panel" with ResEdit. Change the file type
from <B>'Panl'</B> to <B>'PanL'</B>. Save.</LI>
<LI>Uncompress the StuffIt Archive for ToolServer. The goal is to
let ToolServer and MPW share the same Tools directory so you don't
need to have multiple versions of tools. Do the following:
<OL>
<LI>Open ToolServer's Tools folder. There is one file called
"RMetrowerks". </LI>
<LI>Move RMetrowerks to Tools folder of MPW. MPW folder must be
at "Metrowerks:Codewarrior MPW:MPW" if you installed
Codewarrior Heaven. </LI>
<LI>Remove ToolServer's Tools folder.</LI>
<LI>Now create an alias of Tools folder in "CodeWarrior MPW"
and move it to your ToolServer folder. Rename the alias
(probably called "Tools alias") to "Tools"</LI>
<LI><FONT COLOR="#FF0000"><B>IMPORTANT</B></FONT>: Make sure
you only have one instance of ToolServer on your machine. If
the build script finds the wrong one, the correct tools will
not be found and strange things will happen.</LI>
</OL>
</LI>
<LI>After installing the MacPerl MPW Tool distribution (run the
InstallerVISE application), in the "MacPerl &#131;" folder, there
will be an MPW tool named "perl". Install this in MPW's tools
folder.</LI>
<LI>Install the MacPerl Application (run the
InstallerVISE application). You can install this anywhere, but it is
recommended that you install it inside of your CodeWarrior folder for
easy reference. After installation, you will need to set a preference
to enable double-click launch of the perl scripts. This preference is set
by going under the Edit Menu to Preferences. Click on the "Script" button
and hit the radio button "Run Scripts opened from Finder"</LI>
<LI>Install the "patch", "MakeStub", "NewAlias" and "StreamEdit" Tools in the tools
folder. Note that "MakeStub" and "StreamEdit" are automatically installed by the
"CodeWarrior Heaven" install option.</LI>
<LI>Install RunTSScript (found in the Mozilla source distribution)
in the compilers folder in your build environment
("Metrowerks:Metrowerks Codewarrior:Codewarrior
Plugins:Compilers")</LI>
<LI>Next, after downloading all the 3rd party software components,
drag WASTE, CWASTE, Menu Sharing, Mercutio, Internet Config, and
the AEGizmo folders (just as they are) into the "MacOS Support"
folder in your build environment.</LI>
<LI>Start ToolServer from within CodeWarrior (or use MPW if you
are brave enough). We're about to patch some files. Make sure the
ToolServer menu is in the CodeWarrior menu bar by turning on the
<A HREF="IDEPrefs.gif">preference</A> under the "Extras" panel in
the IDE Preferences (not the project preferences!). The menu bar
should look like this:
<P><IMG SRC="IDEMenuBar.gif" WIDTH=359 HEIGHT=20 X-CLARIS-USEIMAGEWIDTH X-CLARIS-USEIMAGEHEIGHT ALIGN=bottom></P>
<P>Choose "Start ToolServer" from the ToolServer menu (this is the
icon menu between "Window" and "Help" in the menubar above). You
will now see a window with no close box. This is your ToolServer
Worksheet where you will type (or cut &amp; paste) the commands
for the following steps.</P>
<P>In case you have never used MPW/ToolServer before, the
following is <B>very important</B>. Pressing "return" does not
execute commands like you might think. It just inserts a newline
into the worksheet like a normal text editor. <B>To actually get
ToolServer to execute the command, you must press "Enter" (lower
right of numeric keypad).</B> This executes the line that the
cursor is on, and only that line. If you want to execute multiple
lines at once, select them all and hit Enter.</P></LI>
<LI>Set the shell variables {IDE} and {Source} to the correct
paths for your build environment. {IDE} is where your CodeWarrior
IDE is located. {Source} is the folder containing the toplevel
"ns" folder of the Mozilla source. Mine look like this (don't
forget to keep the quotes if your path includes spaces), yours
will almost certainly be different (<FONT COLOR="#FF0000">to
punctuate this, the things you need to change are in red</FONT>).
<PRE>Set IDE "<FONT COLOR="#FF0000">Develop:Source331 Build Environment:CW Pro 2:Metrowerks CodeWarrior:</FONT>"
Set Source "<FONT COLOR="#FF0000">Source:FreeSource:</FONT>"</PRE></LI>
<LI>If you are using CWPro2, execute the following lines to patch
LDropFlag to draw correcly over non-white backgrounds. <B>You do
not have to do this if you are using Pro3</B> because it has been
fixed.
<PRE>directory "{IDE}MacOS Support:PowerPlant:_In Progress:_Table Classes:"
patch LDropFlag.cp "{Source}mozilla:lib:mac:patches:LDropFlag.patch"
duplicate -y "{Source}mozilla:lib:mac:patches:DropFlag Icons.rsrc" "{IDE}MacOS Support:PowerPlant:PowerPlant Resources:"</PRE></LI>
<LI>Execute the following lines to patch menusharing.c to allow it
to compile with the new Universal Headers. It references an
obsolete header file (GestaltEqu.h).
<PRE>directory "{IDE}MacOS Support:Menu Sharing Toolkit 4.1:"
patch menusharing.c "{Source}mozilla:lib:mac:patches:menusharing.patch"</PRE></LI>
<LI>If you are using CWPro2 straight off the CD, you need to patch
AppleEvents.r to fix a problem with the Universal Headers (the
definition of the 'aedt' resource was omitted). <B>You do not have
to do this if you have applied the netborne patch to Pro2 or are
using Pro3</B> because it has been fixed.
<PRE>directory "{IDE}MacOS Support:Headers:Rez Headers:"
patch AppleEvents.r "{Source}mozilla:lib:mac:patches:AppleEvents.r.patch"</PRE></LI>
<LI>You need to patch stat.mac.h to fix a problem in MSL where
lines were omitted (both CWPro2 and Pro3 share this problem)
<PRE>directory "{IDE}Metrowerks Standard Library:MSL C:MSL Mac:Public Includes"
patch stat.mac.h "{Source}mozilla:lib:mac:patches:stat.mac.h.patch"</PRE></LI>
<LI>If you are using CWPro3, you have to unstuff and copy the old
Grayscale Appearance classes into the PowerPlant hierarchy. As of
Pro3, they are now obsolete and are located with the rest of the
obsolete PowerPlant files. We'll fix this shortly.</LI>
<LI>Congratulations! Now you are ready to build. Once these steps
are done, you don't have to repeat these setups the next
time!</LI>
</OL>
<H4>Ok, so how do I build?</H4>
<P>In the folder mozilla:build:mac:, there are several Perl scripts with
names of the form BuildMozillaXXX.pl, where XXX is "Optimized",
"Debug", "Tinderbox", et al. Each script builds the corresponding
version of Mozilla. If you configured the MacPerl application to
execute scripts that are opened from the finder, all you have to do is
double click on the appropriate one; otherwise, launch MacPerl, and
run the appropriate script from the "Run Script..." menu item.</P>
<P>These `configured build' scripts are simple, and you might want to
make your own to force your build to StopForErrors(), or alternatively
DontStopForErrors(), et al. You can set up certain build-script
variables and (soon) compile-time flags. Compare the supplied scripts
to figure out what you might want. Note that CodeWarriorLib, Moz.pm,
and BuildList.pm, are AppleScript libraries and Perl modules meant to
be used by a `configured build'. Use your favorite POD viewer (Shuck
comes with MacPerl) to view the documentation in the Perl scripts.</P>
<P>If there were any errors in any of the projects along the way, the
script will stop at that point and the IDE will tell you the errors.
You can fix them and make sure they current project builds, but to
continue the automation, you have to start from the beginning by
double-clicking the script again. This isn't quite as bad as it
sounds because the previous projects are already built (unless you
changed some major header file). Please note that stopping the script
once it has started is difficult. We are working to address
this issue.</P>
<P>After the build is complete, you can find aliases to the built libraries
and the final Mozilla application. Debug builds are built to
Mozilla:dist:client_debug, while optimized builds are built to Mozilla:dist:client.
</P>
<P>Don't worry too much about the numerous warnings generated during
the build. We try our best to get the XP teams to use real compilers,
but alas, they continue to write warning-laden code. There is also
some generated code (Java is one example) that has a lot of warnings
that we can't help either. If you write any new code, please help us
in our quest to get zero warnings.</P>
<H4>How long does it take to build?</H4>
<P>On a G3 with the source and IDE on a RAM disk, it takes about 25
minutes. On a PowerTowerPro 225 and everything on the hard drive, it
takes about 45mins to an hour. On a 9500/132 it takes over 2 1/2
hours.</P>
<P>The moral of the story: Don't try this on your 6100/66.</P>
<P>From Dan Kogai:</P>
<BLOCKQUOTE>It took me 70 minutes to build Mozilla Debug with
configurations below;
<P>PowerMac 7600/120<BR>
192MB RAM (No VM)<BR>
1 + 4 GB HD (No RAM Disk)<BR>
MacOS 8.1<BR>
CWPro2<BR>
HFS+ </P></BLOCKQUOTE>
<H4>What's special about running the debug build?</H4>
<P>Running the optimized (non-debug) version is easy, just
double-click it and it will work. This is because all the shared
libraries are compiled directly into the application. We don't do
this with the debug version to facilitate changing bits in projects
other than the main one. This way, you don't have to relink the
entire app (which can take a while) to see the changes, just the
project that was modified.</P>
<P>As a result, you have to find a way to get all the shared
libraries from where they are built (scattered throughout the tree)
into the same folder as the app so CFM can find them. Luckily, the
BuildList script will create all these aliases for you and put them
in the right places!</P>
<P>Another nicety about the debug build is that there is a special
"trace" function which can be used to display messages about the
state of the application as it runs through certain blocks of code.
To see these messages (since the Mac doesn't have stdout or stderr)
you need to run an application called TraceMonitor. TraceMonitor is
available through Apple Computer with the ASLM package.
</P>
<H4>How do I build a 68K version?</H4>
<P>For now, you can't. The projects have not been kept up to date and
aren't even in the tree anymore. If you would like to create them and
get all the exports right with CFM-68K, go right ahead. We will be so
happy!</P>
<H4>Why use IDE_Options.h when all that is in the project file?</H4>
<P>It was originally intended to make sure that all 300 of us at
Netscape are using the same environment and compilation flags. If
something gets turned on/off by accident in the project prefs, it can
introduce a subtle bug that can take days to track down for naught.
Having a file that specifies exactly what flags should be used
guarantees that this can't happen.</P>
<P>Now that we move to net development, I'm sure you will agree that
this is even more important.</P>
<H2>
<HR>
<A NAME=NewFeatures></A>New 5.0 Features</H2>
<H3>Navigator Center (Aurora)</H3>
<P>The Navigation Center (referred to as "Aurora" in press releases)
is an attempt to make it easier to access and organize information on
the web. The NC unifies Bookmarks, History, Search, and local files
into a sequence of workspaces which are accessible from a single
location in the browser window. One of the ways the NavCenter
diverges from a similar concept seen from our competition is the
ability for users to create their own workspaces to organize and
store information from both the web and their desktop.</P>
<UL>
<LI>Main access point is a bar along the left side of the
browser.</LI>
<LI>Each icon represents a workspace. <B>Click any workspace icon
once to slide out a hierarchical tree</B> (like the list view in
the Finder) that displays the information appropriate to that
workspace. You can manipulate the URLs and folders in the tree
while you are surfing the web in the adjacent pane.</LI>
<LI>Clicking on another workspace while the shelf is open switches
to showing the contents of that workspace.</LI>
<LI><B>To hide the shelf, click the close box above the column
headers</B></LI>
<LI>To create new bookmarks, <B>drag bookmarks from the location
bar of the browser into the NC</B> and file them where you want.
Of course, the old methods still work.
<UL>
<LI>If the NC shelf is not open, drag to the workspace where
you want to file the bookmark and after a small delay, the
<B>shelf will spring open</B>. You can now drop your new
bookmark exactly where you want.</LI>
<LI>If the workspace you want is not displayed, drag over that
workspace and after a small delay, the contents of that
workspace will become visible.</LI>
</UL>
</LI>
<LI>You can also <B>open a stand-alone NC window</B> from the
Communicator menu. The standard "cmd-b" and "cmd-h" for bookmarks
and history are wired to open a new NC window with the appropriate
workspace visible.</LI>
<LI>You can <B>hide the list of workspaces</B> at the left of the
browser window by choosing "View:Hide NavCenter Selector". You can
show it again by doing the same thing. Even when hidden in the
browser, the stand-alone versions are always available.</LI>
<LI>Drag bookmarks to the trash to delete them. You can also hit
the "delete" key (backspace) to remove bookmarks.</LI>
<LI>The NavCenter is fully <B>context-menu savvy</B>. There are
many commands that are in context menus that are not in the main
menubar (right now).</LI>
<LI><B>ToolTip savvy</B>. Both the title and URL can be seen in
their entirety by hovering over the appropriate column.</LI>
<LI>3-state <B>sorting: alphabetical, reverse-alphabetical,
none</B>. Like in the Finder, setting a sort does not change the
hierarchy or make any permanent modifications to your
organizational structure.</LI>
</UL>
<H3>Personal Toolbar</H3>
<UL>
<LI>A toolbar to store bookmarks, first seen on Win/UNIX in 4.0.
Single click to load URL in current browser window</LI>
<LI><B>Drag and drop bookmarks to the toolbar to add them.</B>
Drag existing bookmarks on the toolbar to rearrange the order.
Drag bookmarks to the trash can to remove them from the
toolbar.</LI>
<LI><B>Dynamically allocates horizontal space</B> to buttons on
toolbar. Adding new buttons shrinks existing ones, removing
buttons distributes the vacated space to existing buttons.
Changing the window width reallocates space accordingly.</LI>
<LI>You can further manipulate, rename, rearrange, add to and
remove the URLs in the folder that represents the personal toolbar
in the Navigation Center.</LI>
<LI>ToolTips show the full title.</LI>
</UL>
<H3>Navigator</H3>
<UL>
<LI>new "Mariner" technology makes table layout much faster and
does not reload the page when the window is resized.</LI>
<LI>buttons/popup menus in the chrome now look more like MacOS
controls.</LI>
</UL>
<H3>Composer Features</H3>
<UL>
<LI>Drag and Drop</LI>
<LI>Direct manipulation editing of tables</LI>
</UL>
<H2>
<HR>
<A NAME=Unfinished></A>Unfinished "Features"</H2>
<P>This source release is not of beta quality, hence it will have
lots of bugs that a normal beta (or even an alpha) would not have.
There are many features which we are not even close to being finished
with, let alone knowing what the final UI will be. Here are some
things that we know about but didn't have time to get to before the
code left the building. Feel inclined to help us out?
Grrrrrrreat!</P>
<H3>Aurora</H3>
<P>Aurora is definitely a work in progress. Here are the bugs that we
just don't have time to fix</P>
<UL>
<LI>Real icons for files on disk</LI>
<LI>changing view from XP code (e.g., JavaScript) has not been
tested, but should work</LI>
<LI>move vs. copy notification (cursor doesn't change, etc. No XP
support for this yet)</LI>
<LI>double-click on the text of an item should launch the url, not
trigger an in-place edit</LI>
<LI>separator needs UI consensus and its own icon</LI>
<LI>drag &amp; drop
<UL>
<LI>can't disallow drags to trash when pane is read only. Trash
will still highlight even though nothing will happen.</LI>
<LI>occasional -49 error when dragging repeatedly to browser
window. I think the DragManager is corrupt because -49 is not a
drag manager error and d&amp;d doesn't work anywhere else after
that.</LI>
<LI>drag feedback doesn't work correctly when view is sorted or
when some items are local vs. remote.</LI>
<LI>Composer needs to correctly handle HT_Node flavor</LI>
<LI>Sometimes things will move, other times they will copy. Its
an XP thing.</LI>
</UL>
</LI>
<LI>Chrome properties not correctly respected (relies on personal
toolbar being hidden to hide NavCenter)</LI>
<LI>sort state of columns not saved (nor is anything else with
columns)</LI>
<LI>we shouldn't be using HT_SetNodeName(). Use HT_SetNodeData()
instead</LI>
<LI>Open/Close context menu does not redraw disclosure triangle
after executing</LI>
<LI>There are currently no user configurable prefs for Aurora.
This will change.</LI>
<LI>You can't edit the URL field because RDF uses this as the key
in its database. As a result, having two bookmarks in the same
workspace can lead to odd behavior</LI>
<LI>Undo/redo does not work yet (XP problem)</LI>
<LI>Cut deletes nodes, it does not put them on a clipboard.
Copy/paste do nothing. This is an XP problem.</LI>
</UL>
<P>Still major work to do:</P>
<UL>
<LI>create new workspaces with d&amp;d</LI>
<LI>rollover feedback on selector</LI>
<LI>sitemap notification</LI>
<LI>scroll selector bar</LI>
<LI>HTML pane/search pane</LI>
<LI>spring-loaded folders on d&amp;d</LI>
</UL>
<H3>General FE Problems</H3>
<UL>
<LI><B>DNS lookups may hang up the machine for up to a minute.
Don't worry, your mac did not freeze!</B></LI>
<LI>FTP doesn't work quite right. URLs typed into the location bar
will not load and the MIME mappings (save to disk, etc) are broken
so everything is loaded into the browser window instead of saving
to disk.</LI>
<LI>frame around current tab group broken</LI>
<LI>tabbing around to text entry areas and back to the Location
field is broken</LI>
<LI>can't drag from Navigator when app is in background</LI>
<LI>Folders on personal toolbar. Sigh, unless we can rewrite the
bookmarks menu code, we just don't have enough hierarchical menu
id's to put menus on personal toolbar folders. They still act as
drop sites, so you can drop urls into them but clicking on them
will just beep.</LI>
<LI>Printing is....sub-optimal.</LI>
<LI>"Mariner" layout improvements are nice, but on very
complicated pages the machine will hang for a few seconds while it
is relaying out the page. This can last 4-6 seconds sometimes.
This really looks bad when the NavCenter shelf is sliding out
during a drag and drop. If you are patient enough, you will be
rewarded, but it is slow.</LI>
</UL>
<H2>
<HR>
<A NAME=Pitfalls></A>Pitfalls</H2>
<P>There are a couple of pitfalls that we have to keep straight when
it comes to editing resources.</P>
<H4>Why do I keep getting messages about unknown custom types in
Constructor?</H4>
<P>For starters, make sure you have an alias to the following two
files in your Constructor folder:</P>
<UL>
<LI>mozilla:cmd:macfe:rsrc:CrossProduct:Mozilla_Custom_CPPbs</LI>
<LI>mozilla:cmd:macfe:rsrc:Communicator:MailNewsCppbs.cnst</LI>
</UL>
<P>You may have to explicitly open these files up while running
Constructor to be able to see the new types, especially for the ones
in MailNewsCppbs.cnst. Not sure why yet.</P>
<P>For editing other kinds of resources, we have a TMPL file for
ResEdit/Resourcerer. Place these in the appropriate location for your
resource editor</P>
<UL>
<LI>mozilla:cmd:macfe:rsrc:CrossProduct:Mozilla_Custom_TMPLs</LI>
<LI>mozilla:cmd:macfe:rsrc:CrossProduct:Other_Comm_TMPLS.rsrc</LI>
</UL>
<H4>Why don't my toolbar buttons work anymore in the browser
window?</H4>
<P>Because of the way we have the toolbars as CIncludeViews (which
work in a similar way to #include in C/C++), the RidL will be messed
up if you edit the main browser window PPob. Constructor regenerates
this list based on all the controls that are in the view when you
save, but because we use CIncludeView, the toolbar buttons aren't
actually in the view so the RidL is empty. They will still show up
when you build, but they won't do anything because they are not
registered with the browser window. Until we fix this, just use
Resourcer to replace the incorrectly generated one with an old
version. The old version is about 58 bytes long and the new one is
about 10 so you should be able to easily tell which is which.</P>
<H4>Why are there so many damn resources?</H4>
<P>As you may have noticed, we've got too many damn resources. Most
of them are 'STR ' resources which are generated at build time and
contain all of our cross-platfrom strings. We would like to generate
these resources more intelligently (into 1/10 the number of 'STR#'
resources maybe) but ran out of time before the source had to go out.
Before you rush out and change it for us, <B>stop</B>! There are some
constraints on the final solution, mostly to do with i18n and l10n
being able to leverage existing work on older product to do new
products. If you want to help us out with this, please send us some
email and we can have out i18n team talk with you to make sure it
gets done correctly!</P>
<H4>Why doesn't it work better with Internet Config?</H4>
<P>For starters, the main reason why we never drank the IC kool-aid
was that there was no support for multiple profiles. Being one of the
main features which our competition did not have, we thought this was
pretty important. There are rumblings in the IC world that IC 2.0
will support multiple profiles. Great! That still leaves us with the
second reason: there are many, many, many preferences that we use
that are not reflected in IC. As a result, we already have to
maintain prefs for those that are not covered by IC so we can't be
totally IC dependent.</P>
<P>Of course, now that the source is free, maybe we can drive the
direction of IC to include all of our wacky networking prefs.</P>
<H4>Where are all my old 4.0X bookmarks and prefs?</H4>
<P>In the process of getting the source ready for distribution, we
removed all mentions of "Netscape" from the product. As you may know,
the 4.0X preferences are stored in a folder called "Netscape Users."
Well, that folder is now called "Navigator Users" and the preference
file is now called "Navigator Preferences" instead of "Netscape
Preferences."</P>
<P>It's probably best not to use any of your old prefs at this point
since some of them rely on security calls that are no longer in the
free source product. After you create a new profile (and you will
have to when you start the free source), copy your bookmarks.html
file from your old profile into the new user profile folder and
replace the empty one that's already there (if there is one).</P>
<P><B>For your old bookmarks to be seen, you must throw away the
"NavCntr" folder</B> created in your new profile folder. After you do
that bookmarks will be imported into Aurora automagically. Note that
changes that you make to your bookmarks in 5.0 will not (as of today)
be written back to the Bookmarks.html file, but instead are stored in
a database within the "NavCntr" folder. If anything gets corrupted in
the NavCenter, you can always throw this folder into the trash and
your original bookmarks will be reimported.</P>
<P>Also note that these new bookmarks and preferences are totally
separate from your 4.0X prefs.</P>
<H2>
<HR>
<A NAME=HistFuture></A>History and Future</H2>
<H3>History</H3>
<P>Excuse me while I ramble...</P>
<UL>
<LI>Built using Metrowerks PowerPlant, the client has been PPC
native from day one. 68K support was dropped in 5.0 due to the
high cost of maintenance. Any takers?</LI>
<LI>Mail/News was added in 2.0 and Composer was added in 3.0
(called Navigator Gold). Both were dramatically improved with
4.0.</LI>
<LI>Java came to the Mac in 3.0, even though Windoze and unix had
it in 2.0.</LI>
<LI>Multi-byte language support for inline edit fields added in
4.0</LI>
<LI>The preferences used to be STR# resources. Now they are done
in javascript.</LI>
<LI>Because of the sheer number of resources (and the "theoretical
limit" on the number of resources in a file imposed by the
Resource manager -- which we still exceed on a daily basis), a
number of strings and icons were moved out of the main application
and into a file called "Netscape Resources" in 4.0</LI>
<LI>For plain-text email/form composition, we used VText up
through 4.0. For 5.0, we switched to WASTE because of its minimal
impact on the PowerPlant hierarchy. VText caused us fits every
time we wanted to upgrade to a newer version of PowerPlant because
it wrapped its tentacles around every limb of PowerPlant.</LI>
<LI>4.0 included a new memory management scheme which drastically
reduced the amount of memory used by the client. This is why the
memory partition of 4.0 is about half of 3.0.</LI>
<LI>A version of Navigator sans Mail/News/Composer debuted with
4.03, and again two days later with 4.03.1.</LI>
</UL>
<H3>Future</H3>
<P>There is certainly a lot to do. In order to not duplicate too much
work (since we are still working on this full time here at Netscape),
I've put together a list of what we plan on doing and what we want to
do but probably won't get around to because of time constraints.</P>
<P>Things that we are going to focus on:</P>
<UL>
<LI>More NavCenter work</LI>
<LI>Solve the issues with too many 'STR ' resources (see note on
<A HREF="#Pitfalls">issues page</A>)</LI>
<LI>Modularization (HTML display isolated from networking,
etc)</LI>
<LI>use new Appearance Manager classes in PowerPlant</LI>
<LI>Navigation Services (new open/save dialogs in Allegro)
support. We have an ancient SDK and have integrated it in a few
places, but the current implemenation that we have doesn't work
very well. It's cool, though.</LI>
<LI>More drag and drop in composer.</LI>
<LI>More support for Internet Config (see note on <A HREF="#Pitfalls">issues
page</A>).</LI>
<LI>external Java VM support (MRJ, etc)</LI>
</UL>
<P>Things we would like some help on:</P>
<UL>
<LI>printing support</LI>
<LI>68K version</LI>
<LI>Context Menu Manager support</LI>
<LI>bug fixes of any kind</LI>
<LI>performance tuning of any kind</LI>
<LI>getting around the limitation of 255 hierarchical menus
imposed by the OS. This would let us do a "real" personal toolbar
with folders that have popup menus.</LI>
<LI>Fixing the build system so it uses makefiles without having to
give up the CW IDE for source browsing/editing.</LI>
<LI>better publishing in Composer</LI>
<LI>add NavCenter to Composer window</LI>
<LI>better table editing in Composer</LI>
</UL>
<ADDRESS>
<HR>
Mike Pinkerton (<A HREF="mailto:pinkerton@netscape.com">pinkerton@netscape.com</A>)</ADDRESS>
</BODY>
</HTML>

View File

@@ -0,0 +1,82 @@
<HTML>
<HEAD>
<TITLE>Unix Build Instructions</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<H2>
<FONT FACE="Arial,Helvetica">Unix Build Instructions</FONT></H2>
This document explains how to build Mozilla for Unix.
<BR>
<HR WIDTH="100%">
<PRE>Requirements:
&nbsp; Memory:
&nbsp;&nbsp;&nbsp; 32MB of RAM, 128MB of swap, recommended 64MB of RAM.
&nbsp; Tools:
&nbsp;&nbsp;&nbsp; GNU C/C++ compiler 2.7.2 or better
&nbsp;&nbsp;&nbsp; GNU make 3.74 or better
&nbsp;&nbsp;&nbsp; Motif 1.2 (Lesstif has been used with limited success)
&nbsp; Tools that will be helpful later:
&nbsp;&nbsp;&nbsp; Perl 5.0
&nbsp;&nbsp;&nbsp; CVS 1.8.1
&nbsp;&nbsp;&nbsp; RCS
&nbsp;&nbsp;&nbsp; gdb 4.16
&nbsp; NOTE:
&nbsp;&nbsp;&nbsp; * gcc version 2.8 has been used successfully.
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Your mileage may vary.
Build:
&nbsp; Untar the tar.gz file with the following (or your favorite variant thereof):
&nbsp;&nbsp;&nbsp; gzip -dc tarball.tar.gz | tar -xvf -
&nbsp; Set the following environment variables:
&nbsp;&nbsp;&nbsp; csh/tcsh:&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; setenv NO_SECURITY 1
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; setenv MOZ_MEDIUM 1
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; setenv MOZILLA_CLIENT 1
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; setenv NO_MDUPDATE 1
&nbsp;&nbsp;&nbsp; sh/bash/ksh:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NO_SECURITY=1
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOZ_MEDIUM=1
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOZILLA_CLIENT=1
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NO_MDUPDATE=1
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; export NO_SECURITY MOZ_MEDIUM MOZILLA_CLIENT NO_MDUPDATE
&nbsp; Debug build is default; optimized build:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; setenv BUILD_OPT 1
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (BUILD_OPT=1; export BUILD_OPT)
&nbsp; On AIX, <B>ap</B>pend /usr/lpp/xlC/bin to your PATH.
&nbsp; On Solaris, SINIX, and UnixWare, <B>pre</B>pend /usr/ccs/bin to your PATH.
&nbsp; Build it.&nbsp; Default target is "export libs install":
&nbsp;&nbsp;&nbsp; cd mozilla
&nbsp;&nbsp;&nbsp; gmake
NOTE:
If you haven't got perl:
setenv PERL /bin/echo
gmake -e
Run the app:
&nbsp; Executable lives in mozilla/cmd/xfe/{ARCHITECTURE}.{DBG|OPT}.OBJ
&nbsp;&nbsp;&nbsp; (e.g. mozilla/cmd/xfe/Linux2.0.31_x86_DBG.OBJ/mozilla-export)
&nbsp; Statically-linked app is "mozilla-export"
&nbsp; dynamically-linked app is "moz-export"</PRE>
<HR WIDTH="100%">
<CENTER><FONT SIZE=-1>Copyright &copy; 1998 <A HREF="http://home.netscape.com/misc/contact_info.html">Netscape
Communications Corporation</A></FONT></CENTER>
</BODY>
</HTML>

220
README/mozilla/winbuild.htm Normal file
View File

@@ -0,0 +1,220 @@
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=x-mac-roman">
<META NAME="GENERATOR" CONTENT="Mozilla/4.05 [en]C-NSCP (WinNT; U) [Netscape]">
<META NAME="KeyWords" CONTENT="client, source, documentation">
<META NAME="Author" CONTENT="Chris Yeh">
<TITLE>WinFE Build Instructions</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<H2>
<FONT FACE="Arial,Helvetica">WinFE Build Instructions</FONT></H2>
This document explains how to build Mozilla for the Windows platform. WinFE
is the Windows front end module.&nbsp;
<HR><B><FONT SIZE=+1>Required Tools:</FONT></B>
<UL>
<LI>
<B>Microsoft Visual C++ version 4.2 or later</B></LI>
<LI>
<B>GNU Tools for Windows:</B>You can find these all over the web. Specifically,
you'll need:</LI>
<PRE>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cp.exe
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rm.exe</PRE>
<UL>Here are some sample download sites to find these:
<LI>
<A HREF="http://www.cygnus.com/misc/gnu-win32">Cygnus</A></LI>
<LI>
<A HREF="http://www.gnu.org/order/ftp.html">GNU home page</A></LI>
<LI>
<A HREF="ftp://prep.ai.mit.edu/pub/gnu">MIT</A></LI>
</UL>
Netscape has internally modified version of gmake, shmsdos and win32gnu
that we use to get around some problems we were having keeping in sync
with the Unix version of gmake. This version of gmake and it's source is
included in the Mozilla source distribution. The specific files pertaining
to this are:
<PRE>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; gmake.exe
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; shmsdos.exe
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; uname.exe</PRE>
These are located in the \tools\bin directory of the source package. All
of these tools need to be put in your path.
<LI>
Additionally, there are Netscape-developed tools that need to be built
prior to your first compile. These are covered in the build section.</LI>
</UL>
<B><FONT SIZE=+1>Setting up:</FONT></B>
<UL>
<LI>
You need a Pentium with at least a 133 MHz processor and at least 250 megs
(NTFS partition) or 500 megs (FAT partition) of hard drive space. You need
to have a minimum of 64 megs of memory in order to build this tree. Having
at least 128 megs of memory will make your debugging experience noticeably
less agonizing</LI>
<LI>
The preferred platform is NT 4.0. NT 3.51 will also work, and Win95 might
work if you're lucky. Maybe.</LI>
<LI>
Install MSVC. If you don't choose to have the MSVC install modify your
environment variables for PATH, INCLUDE, and LIB information, be sure to
run VCVARS32.BAT out of the MSVC bin directory prior to attempting to build.</LI>
<LI>
Download and install GNU tools. Put them in your path.</LI>
<LI>
Install Mozilla source.</LI>
<LI>
There are several environment variables you will need to set, either manually
or via a script within a command session, or by setting them in your system
environment located through the Control Panel | System icon. Those variables
are:</LI>
<UL>
<LI>
set MOZ_BITS=32</LI>
<LI>
set MOZ_DEBUG=1 (don't set this if you want to build an optimized release
build)</LI>
<LI>
set MOZ_GOLD=1</LI>
<LI>
set MOZ_MEDIUM=1</LI>
<LI>
set MOZ_NT=351 (if running NT 3.51, don't set otherwise)</LI>
<LI>
set MOZ_OUT=(location of resulting executable and totally optional, see
Notes for more details)</LI>
<LI>
set MOZ_SRC=(top of your tree, drive letter and path, i.e. set MOZ_SRC=d:\mozilla_src.
The topmost directory under this should be mozilla)</LI>
<LI>
set MOZ_TOOLS=(location of the bin directory containing your GNU tools.
The build looks for MOZ_TOOLS\bin\gmake.exe, so make sure your MOZ_TOOLS
is figured appropriately)</LI>
<LI>
set NO_SECURITY=1</LI>
<LI>
set NSPR20=1</LI>
<LI>
if you are running VC++ 5.0 or higher: set _MSC_VER=1100</LI>
</UL>
</UL>
<B><FONT SIZE=+1>Building:</FONT></B>
<UL>
<LI>
You need to be running a vanilla command prompt. Other shells may work,
but you might have to tweak makefiles.</LI>
<LI>
<B>Build the tools:</B> This generates several tools that handle things
like dependency generation</LI>
<UL>
<LI>
cd mozilla\config</LI>
<LI>
nmake /f makefile.win</LI>
</UL>
<LI>
<B>Build the whole lizard:</B> This will do a complete build of the source
tree. You will end up with a mozilla.exe at the end.</LI>
<UL>
<LI>
cd mozilla</LI>
<LI>
nmake /f client.mak</LI>
</UL>
</UL>
&nbsp;
<UL>
<LI>
If you want to build communicator a piece at a time, these are the steps
that client.mak steps through. If you successfully ran the client.mak step
above, you don't need to do this.</LI>
<LI>
<B>Build the back end:</B> This builds cross platform components like NSPR
and the shared library modules. All of the interesting output from this
part of the build will end up in mozilla\dist, under public\ if it's a library
header, and under WIN32_D.OBJ\ (or WIN32_O.OBJ\ for an optimized build)
if it's a dynamic or static library. The exception is the NSPR public headers,
which live in WIN32_D.OBJ\include.</LI>
<UL>
<LI>
cd mozilla</LI>
<LI>
nmake /f makefile.win</LI>
</UL>
<LI>
<B>Build the front end:</B> This builds and links into the final executable,
mozilla.exe.</LI>
<UL>
<LI>
cd mozilla\cmd\winfe\mkfiles32</LI>
<LI>
nmake /f mozilla.mak DEPEND=1</LI>
<LI>
nmake /f mozilla.mak</LI>
</UL>
</UL>
<B><FONT SIZE=+1>Notes:</FONT></B>
<UL>
<LI>
MOZ_OUT: If you don't set this, mozilla.exe will be generated into mozilla\cmd\winfe\mkfiles32\x86dbg
(or x86rel for optimized builds)</LI>
<LI>
This build process does not use Visual C++ generated project files for
several reasons having to do with (among other things) size, maintainability,
and the long term desire to start using more of tools like gmake, or plug
and play developer tools. This does not preclude you from using the Visual
C++ IDE, or it's debugger (somebody fill this out with more detail).</LI>
<LI>
All of the DLLs that you need to run mozilla.exe get copied automagically
into your output directory as the last part of build, so all you need to
do is cd into x86dbg and run mozilla.exe to get a runnable browser.</LI>
<LI>
On a Pentium II 266 MHz machine with 128 megs of memory, it takes approximately
30 minutes to build. Your mileage may vary.</LI>
</UL>
<HR WIDTH="100%">
<CENTER><FONT SIZE=-1>Copyright &copy; 1998 <A HREF="http://home.netscape.com/misc/contact_info.html">Netscape
Communications Corporation</A></FONT></CENTER>
&nbsp;
</BODY>
</HTML>

View File

@@ -0,0 +1,53 @@
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Author" CONTENT="Chris Yeh">
<META NAME="GENERATOR" CONTENT="Mozilla/4.05 [en]C-NSCP (WinNT; U) [Netscape]">
<TITLE>Running Mozilla...</TITLE>
</HEAD>
<BODY>
<H2>
<FONT FACE="Arial,Helvetica">Running Mozilla Without Trashing Netscape
Installation</FONT></H2>
This document explains how to run <TT>mozilla.exe</TT> separately from
<TT>netscape.exe</TT> without trashing your regular installation of Netscape
Communicator. This is necessary if, for example, you want to use Communicator's
mail client while you work on Mozilla development.
<BR>
<HR WIDTH="100%">
<OL>
<LI>
Before running <TT>mozilla.exe</TT>, create a new user profile either from
a Netscape 4.0x installation using the "User Profile Manager" shortcut
in the Utilities folder (on Windows) or by using&nbsp; the <TT>-new_account</TT>
option on the command line of either <TT>netscape.exe</TT> or <TT>mozilla.exe</TT>.&nbsp;
We suggest calling the profile "<TT>mozilla</TT>."</LI>
<LI>
Always use that new account when running <TT>mozilla.exe</TT>, and never
run <TT>netscape.exe</TT> using that same account profile.</LI>
</OL>
To make things easier, you can start the application with the user account
on the command line, for example:
<UL><TT>mozilla.exe -P"mozilla"</TT></UL>
This assures that prefs and the cache will not interfere between the two
versions. This will be especially
<BR>important as new prefs are added to the Mozilla product. Note that
you must use quotes around the name and there can be no space between the
"P" and the profile name. Otherwise, the application won't catch the profile
switch, and it will try to load the profile name as the initial URL.
<P>
<HR WIDTH="100%">
<BR>You can copy your <TT>bookmark.htm</TT> file from an existing profile
to your new profile directory if you want to share bookmarks.
<P>After the initial 3/31 release, we will add some code to Mozilla to
prevent running with a profile that is already being used by <TT>netscape.exe</TT>.
<BR>&nbsp;
<HR WIDTH="100%">
<BR><FONT SIZE=-1>Copyright &copy; 1998 <A HREF="http://home.netscape.com/misc/contact_info.html">Netscape
Communications Corporation</A></FONT>
</BODY>
</HTML>

View File

@@ -0,0 +1,184 @@
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=x-mac-roman">
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; I) [Netscape]">
<META NAME="KeyWords" CONTENT="client, source, documentation">
<META NAME="Author" CONTENT="Kipp E.B. Hickman">
<TITLE>NGLayout Windows Build Instructions</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<H2>
<FONT FACE="Arial,Helvetica">NGLayout Windows Build Instructions</FONT></H2>
This document explains how to build NGLayout for the Windows platform.&nbsp;
<HR><B><FONT SIZE=+1>Required Tools:</FONT></B>
<UL>
<LI>
<B>Microsoft Visual C++ version 4.2 or later</B></LI>
<LI>
<B>The same set of tools for building <A HREF="http://www.mozilla.org/docs/tplist/catBuild/winbuild.htm">Mozilla</A></B></LI>
</UL>
<B><FONT SIZE=+1>Setting up:</FONT></B>
<UL>
<LI>
You need a Pentium with at least a 133 MHz processor and at least 250 megs
(NTFS partition) or 500 megs (FAT partition) of hard drive space. You need
to have a minimum of 64 megs of memory in order to build this tree. These
numbers are approximations.</LI>
<LI>
The preferred platform is NT 4.0. NT 3.51 will also work, and Win95 might
work if you're lucky. Maybe.</LI>
<LI>
Install MSVC. If you don't choose to have the MSVC install modify your
environment variables for PATH, INCLUDE, and LIB information, be sure to
run VCVARS32.BAT out of the MSVC bin directory prior to attempting to build.</LI>
<LI>
Download and install GNU tools. Put them in your path.</LI>
<LI>
Install NGLayout source.</LI>
<UL>
<LI>
cd &lt;your-source-area></LI>
<LI>
unzip -o -q win-19980415.zip</LI>
</UL>
<LI>
There are several environment variables you will need to set, either manually
or via a script within a command session, or by setting them in your system
environment located through the Control Panel | System icon.</LI>
<P>&nbsp;<B>Note: There is an additional variable for building NGLayout!
Use this list carefully!</B>
<P>&nbsp;The variables are:
<UL>
<LI>
set MOZ_BITS=32</LI>
<LI>
set MOZ_DEBUG=1 (don't set this if you want to build an optimized release
build)</LI>
<LI>
set MOZ_GOLD=1</LI>
<LI>
set MOZ_MEDIUM=1</LI>
<LI>
set MOZ_NT=351 (if running NT 3.51, don't set otherwise)</LI>
<LI>
set MOZ_OUT=(location of resulting executable and totally optional, see
Notes for more details)</LI>
<LI>
set MOZ_SRC=(top of your tree, drive letter and path, i.e. set MOZ_SRC=d:\mozilla_src.
The topmost directory under this should be mozilla)</LI>
<LI>
set MOZ_TOOLS=(location of the bin directory containing your GNU tools.
The build looks for MOZ_TOOLS\bin\gmake.exe, so make sure your MOZ_TOOLS
is figured appropriately)</LI>
<LI>
set NO_SECURITY=1</LI>
<LI>
set NSPR20=1</LI>
<LI>
if you are running VC++ 5.0 or higher: set _MSC_VER=1100; if you are running
VC++ 4.2 then set MOZ_VCVER=42</LI>
<LI>
<B>set STANDALONE_IMAGE_LIB=1</B></LI>
<LI>
<B>set MODULAR_NETLIB=1</B></LI>
</UL>
</UL>
<B><FONT SIZE=+1>Building:</FONT></B>
<UL>
<LI>
You need to be running a vanilla command prompt. Other shells may work,
but you might have to tweak makefiles.</LI>
<LI>
<B>Build the tools:</B> This generates several tools that handle things
like dependency generation</LI>
<UL>
<LI>
cd mozilla\config</LI>
<LI>
nmake /f makefile.win</LI>
</UL>
<LI>
<B>Build the NGLayout:</B> This will do a complete build of the source
tree. You will end up with a viewer.exe at the end. The viewer.exe will
be in your dist\win32_[OD].obj\bin directory (O will be used when you don't
set MOZ_DEBUG; D will be used when you set MOZ_DEBUG).</LI>
<UL>
<LI>
cd mozilla</LI>
<LI>
nmake /f nglayout.mak</LI>
</UL>
</UL>
<B><FONT SIZE=+1>Running:</FONT></B>
<UL>
<LI>
Once you have built the system, do this to run the viewer program (the
viewer program is a simple test program that uses the nsIWebWidget API
to embed a web widget object). The viewer program has a few basic menu
items, include "Samples" which load sample tests.</LI>
<UL>
<LI>
cd mozilla\dist\win32_[OD].obj\bin</LI>
<LI>
.\viewer.exe</LI>
</UL>
</UL>
<B><FONT SIZE=+1>Notes:</FONT></B>
<UL>
<LI>
This build process does not use Visual C++ generated project files for
several reasons having to do with (among other things) size, maintainability,
and the long term desire to start using more of tools like gmake, or plug
and play developer tools. This does not preclude you from using the Visual
C++ IDE, or it's debugger. Once you have built a viewer.exe do this to
run it under the debugger:</LI>
</UL>
<UL>
<UL>
<LI>
cd mozilla\dist\win32_[OD].obj\bin</LI>
<LI>
msdev viewer.exe</LI>
</UL>
</UL>
<HR WIDTH="100%">
<CENTER><FONT SIZE=-1>Copyright &copy; 1998 <A HREF="http://home.netscape.com/misc/contact_info.html">Netscape
Communications Corporation</A></FONT></CENTER>
&nbsp;
</BODY>
</HTML>

View File

@@ -1,744 +0,0 @@
/*
* The nsinstall command for OS/2
*
* Our gmake makefiles use the nsinstall command to create the
* object directories or installing headers and libs to ns/dist.
* The shmsdos shell has nsinstall as a built-in command. However,
* if we use another shell like MKS toolkit's sh, we need to have
* the nsinstall command separately.
*
* This file was generated by modifying the Windows nsinstall.c.
*
* To build, say
* icc nsinstall.c
*/
#include <direct.h>
#include <stdio.h>
#include <string.h>
#include <assert.h>
#define INCL_DOSFILEMGR
#define INCL_DOSERRORS
#define INCL_WINERRORS
#include <os2.h>
#pragma hdrstop
/*
* sh_FileFcn --
*
* A function that operates on a file. The pathname is either
* absolute or relative to the current directory, and contains
* no wildcard characters such as * and ?. Additional arguments
* can be passed to the function via the arg pointer.
*/
typedef BOOL (*sh_FileFcn)(
char *pathName,
FILEFINDBUF3 *fileData,
void *arg);
static int shellCp (char **pArgv);
static int shellNsinstall (char **pArgv);
static int shellMkdir (char **pArgv);
static BOOL sh_EnumerateFiles(const char *pattern, const char *where,
sh_FileFcn fileFcn, void *arg, int *nFiles);
static const char *sh_GetLastErrorMessage(void);
static BOOL sh_DoCopy(char *srcFileName, ULONG srcFileAttributes,
char *dstFileName, ULONG dstFileAttributes,
int force, int recursive);
static ULONG GetFileAttributes(PSZ pszFileName);
static APIRET SetFileAttributes(PSZ pszFileName, ULONG ulFileAttributes);
/* changes all forward slashes in token to back slashes */
void changeForwardSlashesTpBackSlashes ( char *arg )
{
if ( arg == NULL )
return;
while ( *arg ) {
if ( *arg == '/' )
*arg = '\\';
arg++;
}
}
int main(int argc, char *argv[ ])
{
return shellNsinstall ( argv + 1 );
}
static int
shellNsinstall (char **pArgv)
{
int retVal = 0; /* exit status */
int dirOnly = 0; /* 1 if and only if -D is specified */
char **pSrc;
char **pDst;
int len;
/*
* Process the command-line options. We ignore the
* options except for -D. Some options, such as -m,
* are followed by an argument. We need to skip the
* argument too.
*/
while ( *pArgv && **pArgv == '-' ) {
char c = (*pArgv)[1]; /* The char after '-' */
if ( c == 'D' ) {
dirOnly = 1;
} else if ( c == 'm' ) {
pArgv++; /* skip the next argument */
}
pArgv++;
}
if ( !dirOnly ) {
/* There are files to install. Get source files */
if ( *pArgv ) {
pSrc = pArgv++;
} else {
fprintf( stderr, "nsinstall: not enough arguments\n");
return 3;
}
}
/* Get to last token to find destination directory */
if ( *pArgv ) {
pDst = pArgv++;
if ( dirOnly && *pArgv ) {
fprintf( stderr, "nsinstall: too many arguments with -D\n");
return 3;
}
} else {
fprintf( stderr, "nsinstall: not enough arguments\n");
return 3;
}
while ( *pArgv )
pDst = pArgv++;
/* remove trailing slash from desination directory */
len = strlen( *pDst );
if ( pDst[0][len-1] == '/' )
pDst[0][len-1] = '\0';
retVal = shellMkdir ( pDst );
if ( retVal )
return retVal;
if ( !dirOnly )
retVal = shellCp ( pSrc );
return retVal;
}
static int
shellMkdir (char **pArgv)
{
int retVal = 0; /* assume valid return */
char *arg;
char *pArg;
char path[CCHMAXPATH];
char tmpPath[CCHMAXPATH];
char *pTmpPath = tmpPath;
/* All the options are simply ignored in this implementation */
while ( *pArgv && **pArgv == '-' ) {
if ( (*pArgv)[1] == 'm' ) {
pArgv++; /* skip the next argument (mode) */
}
pArgv++;
}
while ( *pArgv ) {
arg = *pArgv;
changeForwardSlashesTpBackSlashes ( arg );
pArg = arg;
pTmpPath = tmpPath;
while ( 1 ) {
/* create part of path */
while ( *pArg ) {
*pTmpPath++ = *pArg++;
if ( *pArg == '\\' )
break;
}
*pTmpPath = '\0';
/* check if directory alreay exists */
_getcwd ( path, sizeof (path) );
if (( _chdir ( tmpPath ) != -1 ) || ((tmpPath[1] == ':') && (tmpPath[2] == '\0'))) {
_chdir ( path );
} else {
if ( _mkdir ( tmpPath ) == -1 ) {
// while ( waitForDebug );
printf ( "%s: ", tmpPath );
perror ( "Could not create the directory" );
retVal = 3;
break;
}
}
if ( *pArg == '\0' ) /* complete path? */
break;
/* loop for next directory */
}
pArgv++;
}
return retVal;
}
static const char *
sh_GetLastErrorMessage()
{
static char buf[128];
ERRORID error = WinGetLastError(0);
switch (ERRORIDSEV(error))
{
case SEVERITY_ERROR:
{
sprintf( buf, "error %d", ERRORIDERROR(error));
break;
}
case SEVERITY_SEVERE:
{
sprintf( buf, "severe error %d", ERRORIDERROR(error));
break;
}
case SEVERITY_UNRECOVERABLE:
{
sprintf( buf, "unrecoverable error %d", ERRORIDERROR(error));
break;
}
}
return buf;
}
/*
* struct sh_FileData --
*
* A pointer to the sh_FileData structure is passed into sh_RecordFileData,
* which will fill in the fields.
*/
struct sh_FileData {
char pathName[CCHMAXPATH];
ULONG attrFile;
};
/*
* sh_RecordFileData --
*
* Record the pathname and attributes of the file in
* the sh_FileData structure pointed to by arg.
*
* Always return TRUE (successful completion).
*
* This function is intended to be passed into sh_EnumerateFiles
* to see if a certain pattern expands to exactly one file/directory,
* and if so, record its pathname and attributes.
*/
static BOOL
sh_RecordFileData(char *pathName, FILEFINDBUF3 *findData, void *arg)
{
struct sh_FileData *fData = (struct sh_FileData *) arg;
strcpy(fData->pathName, pathName);
fData->attrFile = findData->attrFile;
return TRUE;
}
static BOOL
sh_DoCopy(char *srcFileName,
ULONG srcFileAttributes,
char *dstFileName,
ULONG dstFileAttributes,
int force,
int recursive
)
{
if (dstFileAttributes != 0xFFFFFFFF) {
if ((dstFileAttributes & FILE_READONLY) && force) {
dstFileAttributes &= ~FILE_READONLY;
SetFileAttributes(dstFileName, dstFileAttributes);
}
}
if (srcFileAttributes & FILE_DIRECTORY) {
fprintf(stderr, "nsinstall: %s is a directory\n",
srcFileName);
return FALSE;
} else {
if (DosCopy(srcFileName, dstFileName, DCPY_EXISTING) != NO_ERROR) {
fprintf(stderr, "nsinstall: cannot copy %s to %s: %s\n",
srcFileName, dstFileName, sh_GetLastErrorMessage());
return FALSE;
}
}
return TRUE;
}
/*
* struct sh_CpCmdArg --
*
* A pointer to the sh_CpCmdArg structure is passed into sh_CpFileCmd.
* The sh_CpCmdArg contains information about the cp command, and
* provide a buffer for constructing the destination file name.
*/
struct sh_CpCmdArg {
int force; /* -f option, ok to overwrite an existing
* read-only destination file */
int recursive; /* -r or -R option, recursively copy
* directories. Note: this field is not used
* by nsinstall and should always be 0. */
char *dstFileName; /* a buffer for constructing the destination
* file name */
char *dstFileNameMarker; /* points to where in the dstFileName buffer
* we should write the file component of the
* destination file */
};
/*
* sh_CpFileCmd --
*
* Copy a file to the destination directory
*
* This function is intended to be passed into sh_EnumerateFiles to
* copy all the files specified by the pattern to the destination
* directory.
*
* Return TRUE if the file is successfully copied, and FALSE otherwise.
*/
static BOOL
sh_CpFileCmd(char *pathName, FILEFINDBUF3 *findData, void *cpArg)
{
BOOL retVal = TRUE;
struct sh_CpCmdArg *arg = (struct sh_CpCmdArg *) cpArg;
strcpy(arg->dstFileNameMarker, findData->achName);
return sh_DoCopy(pathName, findData->attrFile,
arg->dstFileName, GetFileAttributes(arg->dstFileName),
arg->force, arg->recursive);
}
static int
shellCp (char **pArgv)
{
int retVal = 0;
char **pSrc;
char **pDst;
struct sh_CpCmdArg arg;
struct sh_FileData dstData;
int dstIsDir = 0;
int n;
arg.force = 0;
arg.recursive = 0;
arg.dstFileName = dstData.pathName;
arg.dstFileNameMarker = 0;
while (*pArgv && **pArgv == '-') {
char *p = *pArgv;
while (*(++p)) {
if (*p == 'f') {
arg.force = 1;
}
}
pArgv++;
}
/* the first source file */
if (*pArgv) {
pSrc = pArgv++;
} else {
fprintf(stderr, "nsinstall: not enough arguments\n");
return 3;
}
/* get to the last token to find destination */
if (*pArgv) {
pDst = pArgv++;
} else {
fprintf(stderr, "nsinstall: not enough arguments\n");
return 3;
}
while (*pArgv) {
pDst = pArgv++;
}
/*
* The destination pattern must unambiguously expand to exactly
* one file or directory.
*/
changeForwardSlashesTpBackSlashes(*pDst);
sh_EnumerateFiles(*pDst, *pDst, sh_RecordFileData, &dstData, &n);
assert(n >= 0);
if (n == 1) {
/*
* Is the destination a file or directory?
*/
if (dstData.attrFile & FILE_DIRECTORY) {
dstIsDir = 1;
}
} else if (n > 1) {
fprintf(stderr, "nsinstall: %s: ambiguous destination file "
"or directory\n", *pDst);
return 3;
} else {
/*
* n == 0, meaning that destination file or directory does
* not exist. In this case the destination file directory
* name must be fully specified.
*/
char *p;
for (p = *pDst; *p; p++) {
if (*p == '*' || *p == '?') {
fprintf(stderr, "nsinstall: %s: No such file or directory\n",
*pDst);
return 3;
}
}
/*
* Do not include the trailing \, if any, unless it is a root
* directory (\ or X:\).
*/
if (p > *pDst && p[-1] == '\\' && p != *pDst + 1 && p[-2] != ':') {
p[-1] = '\0';
}
strcpy(dstData.pathName, *pDst);
dstData.attrFile = 0xFFFFFFFF;
}
/*
* If there are two or more source files, the destination has
* to be a directory.
*/
if (pDst - pSrc > 1 && !dstIsDir) {
fprintf(stderr, "nsinstall: cannot copy more than"
" one file to the same destination file\n");
return 3;
}
if (dstIsDir) {
arg.dstFileNameMarker = arg.dstFileName + strlen(arg.dstFileName);
/*
* Now arg.dstFileNameMarker is pointing to the null byte at the
* end of string. We want to make sure that there is a \ at the
* end of string, and arg.dstFileNameMarker should point right
* after that \.
*/
if (arg.dstFileNameMarker[-1] != '\\') {
*(arg.dstFileNameMarker++) = '\\';
}
}
if (!dstIsDir) {
struct sh_FileData srcData;
assert(pDst - pSrc == 1);
changeForwardSlashesTpBackSlashes(*pSrc);
sh_EnumerateFiles(*pSrc, *pSrc, sh_RecordFileData, &srcData, &n);
if (n == 0) {
fprintf(stderr, "nsinstall: %s: No such file or directory\n",
*pSrc);
retVal = 3;
} else if (n > 1) {
fprintf(stderr, "nsinstall: cannot copy more than one file or "
"directory to the same destination\n");
retVal = 3;
} else {
assert(n == 1);
if (sh_DoCopy(srcData.pathName, srcData.attrFile,
dstData.pathName, dstData.attrFile,
arg.force, arg.recursive) == FALSE) {
retVal = 3;
}
}
return retVal;
}
for ( ; *pSrc != *pDst; pSrc++) {
BOOL rv;
changeForwardSlashesTpBackSlashes(*pSrc);
rv = sh_EnumerateFiles(*pSrc, *pSrc, sh_CpFileCmd, &arg, &n);
if (rv == FALSE) {
retVal = 3;
} else {
if (n == 0) {
fprintf(stderr, "nsinstall: %s: No such file or directory\n",
*pSrc);
retVal = 3;
}
}
}
return retVal;
}
/*
* sh_EnumerateFiles --
*
* Enumerate all the files in the specified pattern, which is a pathname
* containing possibly wildcard characters such as * and ?. fileFcn
* is called on each file, passing the expanded file name, a pointer
* to the file's FILEFINDBUF3, and the arg pointer.
*
* It is assumed that there are no wildcard characters before the
* character pointed to by 'where'.
*
* On return, *nFiles stores the number of files enumerated. *nFiles is
* set to this number whether sh_EnumerateFiles or 'fileFcn' succeeds
* or not.
*
* Return TRUE if the files are successfully enumerated and all
* 'fileFcn' invocations succeeded. Return FALSE if something went
* wrong.
*/
static BOOL sh_EnumerateFiles(
const char *pattern,
const char *where,
sh_FileFcn fileFcn,
void *arg,
int *nFiles
)
{
FILEFINDBUF3 fileData = {0};
HDIR hSearch;
APIRET ulrc;
ULONG ulFindCount = 1;
const char *src;
char *dst;
char fileName[CCHMAXPATH];
char *fileNameMarker = fileName;
char *oldFileNameMarker;
BOOL hasWildcard = FALSE;
BOOL retVal = TRUE;
BOOL patternEndsInDotStar = FALSE;
BOOL patternEndsInDot = FALSE; /* a special case of
* patternEndsInDotStar */
int numDotsInPattern;
int len;
/*
* Windows expands patterns ending in ".", ".*", ".**", etc.
* differently from the glob expansion on Unix. For example,
* both "foo." and "foo.*" match "foo", and "*.*" matches
* everything, including filenames with no dots. So we need
* to throw away extra files returned by the FindNextFile()
* function. We require that a matched filename have at least
* the number of dots in the pattern.
*/
len = strlen(pattern);
if (len >= 2) {
/* Start from the end of pattern and go backward */
const char *p = &pattern[len - 1];
/* We can have zero or more *'s */
while (p >= pattern && *p == '*') {
p--;
}
if (p >= pattern && *p == '.') {
patternEndsInDotStar = TRUE;
if (p == &pattern[len - 1]) {
patternEndsInDot = TRUE;
}
p--;
numDotsInPattern = 1;
while (p >= pattern && *p != '\\') {
if (*p == '.') {
numDotsInPattern++;
}
p--;
}
}
}
*nFiles = 0;
/*
* Copy pattern to fileName, but only up to and not including
* the first \ after the first wildcard letter.
*
* Make fileNameMarker point to one of the following:
* - the start of fileName, if fileName does not contain any \.
* - right after the \ before the first wildcard letter, if there is
* a wildcard character.
* - right after the last \, if there is no wildcard character.
*/
dst = fileName;
src = pattern;
while (src < where) {
if (*src == '\\') {
oldFileNameMarker = fileNameMarker;
fileNameMarker = dst + 1;
}
*(dst++) = *(src++);
}
while (*src && *src != '*' && *src != '?') {
if (*src == '\\') {
oldFileNameMarker = fileNameMarker;
fileNameMarker = dst + 1;
}
*(dst++) = *(src++);
}
if (*src) {
/*
* Must have seen the first wildcard letter
*/
hasWildcard = TRUE;
while (*src && *src != '\\') {
*(dst++) = *(src++);
}
}
/* Now src points to either null or \ */
assert(*src == '\0' || *src == '\\');
assert(hasWildcard || *src == '\0');
*dst = '\0';
/*
* If the pattern does not contain any wildcard characters, then
* we don't need to go the FindFirstFile route.
*/
if (!hasWildcard) {
/*
* See if it is the root directory, \, or X:\.
*/
assert(!strcmp(fileName, pattern));
assert(strlen(fileName) >= 1);
if (dst[-1] == '\\' && (dst == fileName + 1 || dst[-2] == ':')) {
fileData.achName[0] = '\0';
} else {
/*
* Do not include the trailing \, if any
*/
if (dst[-1] == '\\') {
assert(*fileNameMarker == '\0');
dst[-1] = '\0';
fileNameMarker = oldFileNameMarker;
}
strcpy(fileData.achName, fileNameMarker);
}
fileData.attrFile = GetFileAttributes(fileName);
if (fileData.attrFile == 0xFFFFFFFF) {
return TRUE;
}
*nFiles = 1;
return (*fileFcn)(fileName, &fileData, arg);
}
hSearch = HDIR_CREATE;
ulrc = DosFindFirst(fileName, &hSearch, FILE_NORMAL, &fileData, sizeof(fileData),
&ulFindCount, FIL_STANDARD);
if (ulrc == ERROR_INVALID_HANDLE) {
return retVal;
}
do {
if (!strcmp(fileData.achName, ".")
|| !strcmp(fileData.achName, "..")) {
/*
* Skip over . and ..
*/
continue;
}
if (patternEndsInDotStar) {
int nDots = 0;
char *p = fileData.achName;
while (*p) {
if (*p == '.') {
nDots++;
}
p++;
}
/* Now p points to the null byte at the end of file name */
if (patternEndsInDot && (p == fileData.achName
|| p[-1] != '.')) {
/*
* File name does not end in dot. Skip this file.
* Note: windows file name probably cannot end in dot,
* but we do this check anyway.
*/
continue;
}
if (nDots < numDotsInPattern) {
/*
* Not enough dots in file name. Must be an extra
* file in matching .* pattern. Skip this file.
*/
continue;
}
}
strcpy(fileNameMarker, fileData.achName);
if (*src && *(src + 1)) {
/*
* More to go. Recurse.
*/
int n;
assert(*src == '\\');
where = fileName + strlen(fileName);
strcat(fileName, src);
sh_EnumerateFiles(fileName, where, fileFcn, arg, &n);
*nFiles += n;
} else {
assert(strchr(fileName, '*') == NULL);
assert(strchr(fileName, '?') == NULL);
(*nFiles)++;
if ((*fileFcn)(fileName, &fileData, arg) == FALSE) {
retVal = FALSE;
}
}
} while (DosFindNext(hSearch, &fileData, sizeof(fileData), &ulFindCount) == NO_ERROR);
DosFindClose(hSearch);
return retVal;
}
static ULONG GetFileAttributes(PSZ pszFileName)
{
FILESTATUS3 fsts3;
APIRET rc;
rc = DosQueryPathInfo(pszFileName,
FIL_STANDARD,
&fsts3,
sizeof(FILESTATUS3));
if (rc != NO_ERROR) {
return -1;
} /* endif */
return fsts3.attrFile;
}
static APIRET SetFileAttributes(PSZ pszFileName, ULONG ulFileAttributes)
{
return NULL;
}

View File

@@ -1,107 +0,0 @@
/* GLIB - Library of useful routines for C programming
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this library; if not, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
/* acconfig.h
This file is in the public domain.
Descriptive text for the C preprocessor macros that
the distributed Autoconf macros can define.
No software package will use all of them; autoheader copies the ones
your configure.in uses into your configuration header file templates.
The entries are in sort -df order: alphabetical, case insensitive,
ignoring punctuation (such as underscores). Although this order
can split up related entries, it makes it easier to check whether
a given entry is in the file.
Leave the following blank line there!! Autoheader needs it. */
/* Other stuff */
#undef ENABLE_MEM_CHECK
#undef ENABLE_MEM_PROFILE
#undef G_COMPILED_WITH_DEBUGGING
#undef G_THREADS_ENABLED
#undef GLIB_SIZEOF_GMUTEX
#undef GLIB_BYTE_CONTENTS_GMUTEX
#undef HAVE_BROKEN_WCTYPE
#undef HAVE_DOPRNT
#undef HAVE_FLOAT_H
#undef HAVE_GETPWUID_R
#undef HAVE_GETPWUID_R_POSIX
#undef HAVE_LIMITS_H
#undef HAVE_LONG_DOUBLE
#undef HAVE_POLL
#undef HAVE_PTHREAD_GETSPECIFIC_POSIX
#undef HAVE_PWD_H
#undef HAVE_SYS_PARAM_H
#undef HAVE_SYS_POLL_H
#undef HAVE_SYS_SELECT_H
#undef HAVE_SYS_TIME_H
#undef HAVE_SYS_TIMES_H
#undef HAVE_STRERROR
#undef HAVE_STRSIGNAL
#undef HAVE_UNISTD_H
#undef HAVE_VALUES_H
#undef HAVE_WCHAR_H
#undef HAVE_WCTYPE_H
#undef NO_FD_SET
#undef NO_SYS_ERRLIST
#undef NO_SYS_SIGLIST
#undef NO_SYS_SIGLIST_DECL
#undef WITH_SYMBOL_UNDERSCORE
#undef SIZEOF_CHAR
#undef SIZEOF_SHORT
#undef SIZEOF_LONG
#undef SIZEOF_INT
#undef SIZEOF_VOID_P
#undef G_VA_COPY
#undef G_VA_COPY_AS_ARRAY
#undef G_HAVE___INLINE
#undef G_HAVE___INLINE__
#undef G_HAVE_INLINE
#undef GLIB_MAJOR_VERSION
#undef GLIB_MINOR_VERSION
#undef GLIB_MICRO_VERSION
#undef GLIB_INTERFACE_AGE
#undef GLIB_BINARY_AGE
#undef WIN32
#undef NATIVE_WIN32
#undef G_THREAD_SOURCE
/* #undef PACKAGE */
/* #undef VERSION */
/* Leave that blank line there!! Autoheader needs it.
If you're adding to this file, keep in mind:
The entries are in sort -df order: alphabetical, case insensitive,
ignoring punctuation (such as underscores). */

View File

@@ -1,138 +0,0 @@
/* config.h.win32. Handcrafted for Microsoft C */
/* Define to empty if the keyword does not work. */
/* #undef const */
/* Define if you don't have vprintf but do have _doprnt. */
/* #undef HAVE_DOPRNT */
/* Define if you have <unistd.h>. */
/* #undef HAVE_UNISTD_H */
/* Define if you have the vprintf function. */
#define HAVE_VPRINTF 1
/* Define if you have the ANSI C header files. */
#define STDC_HEADERS 1
/* Define if your processor stores words with the most significant
byte first (like Motorola and SPARC, unlike Intel and VAX). */
/* #undef WORDS_BIGENDIAN */
/* #undef ENABLE_MEM_CHECK */
/* #undef ENABLE_MEM_PROFILE */
#define G_COMPILED_WITH_DEBUGGING "minimum"
/* #undef HAVE_BROKEN_WCTYPE */
/* #undef HAVE_DOPRNT */
#define HAVE_FLOAT_H 1
#define HAVE_LIMITS_H 1
/* #undef HAVE_LOCALTIME_R */
/* #undef HAVE_LONG_DOUBLE */
/* #undef HAVE_POLL */
/* #undef HAVE_PWD_H */
/* #undef HAVE_SYS_PARAM_H */
/* #undef HAVE_SYS_POLL_H */
/* #undef HAVE_SYS_SELECT_H */
/* #undef HAVE_SYS_TIME_H */
/* #undef HAVE_SYS_TIMES_H */
#define HAVE_STRERROR 1
/* #undef HAVE_STRSIGNAL */
/* #undef HAVE_UNISTD_H */
/* #undef HAVE_VSNPRINTF */
/* #undef HAVE_VALUES_H */
#define HAVE_VPRINTF 1
#define HAVE_WCHAR_H 1
#define HAVE_WCTYPE_H 1
/* #undef NO_FD_SET */
/* #undef NO_SYS_ERRLIST */
#define NO_SYS_SIGLIST 1
/* #undef G_VA_COPY */
/* #undef G_VA_COPY_AS_ARRAY */
#define G_HAVE___INLINE 1
#define GLIB_MAJOR_VERSION 1
#define GLIB_MINOR_VERSION 2
#define GLIB_MICRO_VERSION 0
#define GLIB_INTERFACE_AGE 0
#define GLIB_BINARY_AGE 0
#define G_THREAD_SOURCE "gthread-posix.c"
#define G_THREADS_IMPL_POSIX
#define HAVE_PTHREAD_GETSPECIFIC_POSIX 1
/* The number of bytes in a char. */
#define SIZEOF_CHAR 1
/* The number of bytes in a int. */
#define SIZEOF_INT 4
/* The number of bytes in a long. */
#define SIZEOF_LONG 4
/* The number of bytes in a long long. */
#define SIZEOF_LONG_LONG 8
/* The number of bytes in a short. */
#define SIZEOF_SHORT 2
/* The number of bytes in a void *. */
#define SIZEOF_VOID_P 4
/* Define if you have the atexit function. */
#define HAVE_ATEXIT 1
/* Define if you have the lstat function. */
/* #undef HAVE_LSTAT */
/* Define if you have the memmove function. */
#define HAVE_MEMMOVE 1
/* Define if you have the on_exit function. */
/* #undef HAVE_ON_EXIT */
/* Define if you have the strcasecmp function. */
/* #undef HAVE_STRCASECMP ^*/
/* Define if you have the strerror function. */
#define HAVE_STRERROR 1
/* Define if you have the strsignal function. */
/* #undef HAVE_STRSIGNAL */
/* Define if you have the vsnprintf function. */
/* #undef HAVE_VSNPRINTF */
/* Define if you have the <float.h> header file. */
#define HAVE_FLOAT_H 1
/* Define if you have the <limits.h> header file. */
#define HAVE_LIMITS_H 1
/* Define if you have the <pwd.h> header file. */
/* #undef HAVE_PWD_H */
/* Define if you have the <sys/param.h> header file. */
/* #undef HAVE_SYS_PARAM_H */
/* Define if you have the <sys/select.h> header file. */
/* #undef HAVE_SYS_SELECT_H */
/* Define if you have the <sys/time.h> header file. */
/* #undef HAVE_SYS_TIME_H */
/* Define if you have the <sys/times.h> header file. */
/* #undef HAVE_SYS_TIMES_H */
/* Define if you have the <unistd.h> header file. */
/* #undef HAVE_UNISTD_H */
/* Define if you have the <values.h> header file. */
/* #undef HAVE_VALUES_H */
/* Define if you have the w library (-lw). */
/* #undef HAVE_LIBW */

File diff suppressed because it is too large Load Diff

View File

@@ -1,173 +0,0 @@
/* glibconfig.h.win32 */
/* Handcrafted for Microsoft C. */
#ifndef GLIBCONFIG_H
#define GLIBCONFIG_H
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
#ifdef _MSC_VER
/* Make MSVC more pedantic, this is a recommended pragma list
* from _Win32_Programming_ by Rector and Newcomer.
*/
#pragma warning(error:4002)
#pragma warning(error:4003)
#pragma warning(1:4010)
#pragma warning(error:4013)
#pragma warning(1:4016)
#pragma warning(error:4020)
#pragma warning(error:4021)
#pragma warning(error:4027)
#pragma warning(error:4029)
#pragma warning(error:4033)
#pragma warning(error:4035)
#pragma warning(error:4045)
#pragma warning(error:4047)
#pragma warning(error:4049)
#pragma warning(error:4053)
#pragma warning(error:4071)
#pragma warning(disable:4101)
#pragma warning(error:4150)
#pragma warning(disable:4244) /* No possible loss of data warnings */
#pragma warning(disable:4305) /* No truncation from int to char warnings */
#endif /* _MSC_VER */
#include <limits.h>
#include <float.h>
#define G_MINFLOAT FLT_MIN
#define G_MAXFLOAT FLT_MAX
#define G_MINDOUBLE DBL_MIN
#define G_MAXDOUBLE DBL_MAX
#define G_MINSHORT SHRT_MIN
#define G_MAXSHORT SHRT_MAX
#define G_MININT INT_MIN
#define G_MAXINT INT_MAX
#define G_MINLONG LONG_MIN
#define G_MAXLONG LONG_MAX
typedef signed char gint8;
typedef unsigned char guint8;
typedef signed short gint16;
typedef unsigned short guint16;
typedef signed int gint32;
typedef unsigned int guint32;
#define G_HAVE_GINT64 1
typedef __int64 gint64;
typedef unsigned __int64 guint64;
#define G_GINT64_CONSTANT(val) (val##i64)
#define GPOINTER_TO_INT(p) ((gint)(p))
#define GPOINTER_TO_UINT(p) ((guint)(p))
#define GINT_TO_POINTER(i) ((gpointer)(i))
#define GUINT_TO_POINTER(u) ((gpointer)(u))
#define g_ATEXIT(proc) (atexit (proc))
#define g_memmove(d,s,n) G_STMT_START { memmove ((d), (s), (n)); } G_STMT_END
#define G_HAVE_ALLOCA 1
#define alloca _alloca
#define GLIB_MAJOR_VERSION 1
#define GLIB_MINOR_VERSION 2
#define GLIB_MICRO_VERSION 0
#ifdef __cplusplus
#define G_HAVE_INLINE 1
#else /* !__cplusplus */
#define G_HAVE___INLINE 1
#endif
#define G_THREADS_ENABLED
/*
* The following program can be used to determine the magic values below:
* #include <stdio.h>
* #include <pthread.h>
* main(int argc, char **argv)
* {
* int i;
* pthread_mutex_t m = PTHREAD_MUTEX_INITIALIZER;
* printf ("sizeof (pthread_mutex_t) = %d\n", sizeof (pthread_mutex_t));
* printf ("PTHREAD_MUTEX_INITIALIZER = ");
* for (i = 0; i < sizeof (pthread_mutex_t); i++)
* printf ("%u, ", (unsigned) ((char *) &m)[i]);
* printf ("\n");
* exit(0);
* }
*/
typedef struct _GStaticMutex GStaticMutex;
struct _GStaticMutex
{
struct _GMutex *runtime_mutex;
union {
/* The size of the pad array should be sizeof (pthread_mutext_t) */
/* This value corresponds to the 1999-01-24 version of pthreads-win32 */
char pad[36];
double dummy_double;
void *dummy_pointer;
long dummy_long;
} aligned_pad_u;
};
/* This should be NULL followed by the bytes in PTHREAD_MUTEX_INITIALIZER */
#define G_STATIC_MUTEX_INIT { NULL, { { 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } }
#define g_static_mutex_get_mutex(mutex) \
(g_thread_use_default_impl ? ((GMutex*) &((mutex)->aligned_pad_u)) : \
g_static_mutex_get_mutex_impl (&((mutex)->runtime_mutex)))
#define G_BYTE_ORDER G_LITTLE_ENDIAN
#define GINT16_TO_LE(val) ((gint16) (val))
#define GUINT16_TO_LE(val) ((guint16) (val))
#define GINT16_TO_BE(val) ((gint16) GUINT16_SWAP_LE_BE (val))
#define GUINT16_TO_BE(val) (GUINT16_SWAP_LE_BE (val))
#define GINT32_TO_LE(val) ((gint32) (val))
#define GUINT32_TO_LE(val) ((guint32) (val))
#define GINT32_TO_BE(val) ((gint32) GUINT32_SWAP_LE_BE (val))
#define GUINT32_TO_BE(val) (GUINT32_SWAP_LE_BE (val))
#define GINT64_TO_LE(val) ((gint64) (val))
#define GUINT64_TO_LE(val) ((guint64) (val))
#define GINT64_TO_BE(val) ((gint64) GUINT64_SWAP_LE_BE (val))
#define GUINT64_TO_BE(val) (GUINT64_SWAP_LE_BE (val))
#define GLONG_TO_LE(val) ((glong) GINT32_TO_LE (val))
#define GULONG_TO_LE(val) ((gulong) GUINT32_TO_LE (val))
#define GLONG_TO_BE(val) ((glong) GINT32_TO_BE (val))
#define GULONG_TO_BE(val) ((gulong) GUINT32_TO_BE (val))
#define GINT_TO_LE(val) ((gint) GINT32_TO_LE (val))
#define GUINT_TO_LE(val) ((guint) GUINT32_TO_LE (val))
#define GINT_TO_BE(val) ((gint) GINT32_TO_BE (val))
#define GUINT_TO_BE(val) ((guint) GUINT32_TO_BE (val))
#define GLIB_SYSDEF_POLLIN = 1
#define GLIB_SYSDEF_POLLOUT = 4
#define GLIB_SYSDEF_POLLPRI = 2
#define GLIB_SYSDEF_POLLERR = 8
#define GLIB_SYSDEF_POLLHUP = 16
#define GLIB_SYSDEF_POLLNVAL = 32
#define G_HAVE_WCHAR_H 1
#define G_HAVE_WCTYPE_H 1
/* Define if this is Win32, possibly using the Cygwin emulation layer. */
#define WIN32 1
/* Define if this is Win32 without Cygwin. */
#define NATIVE_WIN32 1
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* GLIBCONFIG_H */

View File

@@ -1,827 +0,0 @@
/**************************************************************************
IDL.h (IDL parse tree and namespace components)
Include wide character support before this, if necessary.
Copyright (C) 1998, 1999 Andrew T. Veliath
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this library; if not, write to the Free
Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
$Id: IDL.h,v 1.1 1999-04-08 20:04:26 mccabe%netscape.com Exp $
***************************************************************************/
#ifndef __IDL_H
#define __IDL_H
#include <glib.h>
#ifdef __cplusplus
extern "C" {
#endif
/* version */
#define LIBIDL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))
#define LIBIDL_MAJOR_VERSION 0
#define LIBIDL_MINOR_VERSION 6
#define LIBIDL_MICRO_VERSION 3
#define LIBIDL_VERSION_CODE LIBIDL_VERSION(0,6,3)
/* miscellaneous constants */
#define IDL_SUCCESS 0
#define IDL_ERROR 1
#define IDL_WARNING1 2
#define IDL_WARNING2 3
#define IDL_WARNING3 4
#define IDL_WARNINGMAX IDL_WARNING3
/* general parse flags */
#define IDLF_VERBOSE (1UL << 0)
#define IDLF_NO_EVAL_CONST (1UL << 1)
#define IDLF_COMBINE_REOPENED_MODULES (1UL << 2)
#define IDLF_PREFIX_FILENAME (1UL << 3)
#define IDLF_IGNORE_FORWARDS (1UL << 4)
#define IDLF_PEDANTIC (1UL << 5)
/* syntax extension parse flags */
#define IDLF_TYPECODES (1UL << 16)
#define IDLF_XPIDL (1UL << 17)
/* declaration specification flags */
#define IDLF_DECLSPEC_EXIST (1UL << 0)
#define IDLF_DECLSPEC_INHIBIT (1UL << 1)
/* output flags */
#define IDLF_OUTPUT_NO_NEWLINES (1UL << 0)
#define IDLF_OUTPUT_NO_QUALIFY_IDENTS (1UL << 1)
#define IDLF_OUTPUT_PROPERTIES (1UL << 2)
#define IDLF_OUTPUT_CODEFRAGS (1UL << 3)
#ifdef _WIN32
# define IDL_EXPORT __declspec (dllexport)
# define IDL_IMPORT __declspec (dllimport)
#else
# define IDL_EXPORT /* empty */
# define IDL_IMPORT extern
#endif
/* type casting checks */
#define IDL_check_cast_enable(boolean) do { \
IDL_IMPORT int __IDL_check_type_casts; \
__IDL_check_type_casts = (boolean); \
} while (0)
#define IDL_CHECK_CAST(tree, thetype, name) \
(IDL_check_type_cast(tree, thetype, \
__FILE__, __LINE__, \
G_GNUC_PRETTY_FUNCTION)->u.name)
#ifdef G_HAVE_GINT64
# if G_MAXLONG > 0xffffffffUL
# define IDL_LL "l"
# else
# define IDL_LL "ll"
# endif
typedef gint64 IDL_longlong_t;
typedef guint64 IDL_ulonglong_t;
#else
# define IDL_LL "l"
typedef long IDL_longlong_t;
typedef unsigned long IDL_ulonglong_t;
# warning 64-bit integer type not available, using 32-bit instead
#endif /* G_HAVE_GINT64 */
typedef unsigned int IDL_declspec_t;
typedef struct _IDL_tree_node IDL_tree_node;
typedef struct _IDL_tree_node * IDL_tree;
struct _IDL_LIST {
IDL_tree data;
IDL_tree prev;
IDL_tree next;
IDL_tree _tail; /* Internal use, may not be valid */
};
#define IDL_LIST(a) IDL_CHECK_CAST(a, IDLN_LIST, idl_list)
extern IDL_tree IDL_list_new (IDL_tree data);
extern IDL_tree IDL_list_concat (IDL_tree orig,
IDL_tree append);
extern IDL_tree IDL_list_remove (IDL_tree list,
IDL_tree p);
extern int IDL_list_length (IDL_tree list);
extern IDL_tree IDL_list_nth (IDL_tree list,
int n);
struct _IDL_GENTREE {
IDL_tree data;
GHashTable *siblings;
GHashTable *children;
GHashFunc hash_func;
GCompareFunc key_compare_func;
IDL_tree _import; /* Internal use, do not recurse */
char *_cur_prefix; /* Internal use */
};
#define IDL_GENTREE(a) IDL_CHECK_CAST(a, IDLN_GENTREE, idl_gentree)
extern IDL_tree IDL_gentree_new (GHashFunc hash_func,
GCompareFunc key_compare_func,
IDL_tree data);
extern IDL_tree IDL_gentree_new_sibling (IDL_tree from,
IDL_tree data);
extern IDL_tree IDL_gentree_chain_sibling (IDL_tree from,
IDL_tree data);
extern IDL_tree IDL_gentree_chain_child (IDL_tree from,
IDL_tree data);
struct _IDL_INTEGER {
IDL_longlong_t value;
};
#define IDL_INTEGER(a) IDL_CHECK_CAST(a, IDLN_INTEGER, idl_integer)
extern IDL_tree IDL_integer_new (IDL_longlong_t value);
struct _IDL_STRING {
char *value;
};
#define IDL_STRING(a) IDL_CHECK_CAST(a, IDLN_STRING, idl_string)
extern IDL_tree IDL_string_new (char *value);
struct _IDL_WIDE_STRING {
wchar_t *value;
};
#define IDL_WIDE_STRING(a) IDL_CHECK_CAST(a, IDLN_WIDE_STRING, idl_wide_string)
extern IDL_tree IDL_wide_string_new (wchar_t *value);
struct _IDL_CHAR {
char *value;
};
#define IDL_CHAR(a) IDL_CHECK_CAST(a, IDLN_CHAR, idl_char)
extern IDL_tree IDL_char_new (char *value);
struct _IDL_WIDE_CHAR {
wchar_t *value;
};
#define IDL_WIDE_CHAR(a) IDL_CHECK_CAST(a, IDLN_WIDE_CHAR, idl_wide_char)
extern IDL_tree IDL_wide_char_new (wchar_t *value);
struct _IDL_FIXED {
char *value;
};
#define IDL_FIXED(a) IDL_CHECK_CAST(a, IDLN_FIXED, idl_fixed)
extern IDL_tree IDL_fixed_new (char *value);
struct _IDL_FLOAT {
double value;
};
#define IDL_FLOAT(a) IDL_CHECK_CAST(a, IDLN_FLOAT, idl_float)
extern IDL_tree IDL_float_new (double value);
struct _IDL_BOOLEAN {
unsigned value;
};
#define IDL_BOOLEAN(a) IDL_CHECK_CAST(a, IDLN_BOOLEAN, idl_boolean)
extern IDL_tree IDL_boolean_new (unsigned value);
struct _IDL_IDENT {
char *str;
char *repo_id;
GSList *comments;
IDL_tree _ns_ref; /* Internal use, do not recurse */
unsigned _flags; /* Internal use */
#define IDLF_IDENT_CASE_MISMATCH_HIT (1UL << 0)
};
#define IDL_IDENT(a) IDL_CHECK_CAST(a, IDLN_IDENT, idl_ident)
#define IDL_IDENT_TO_NS(a) IDL_CHECK_CAST(a, IDLN_IDENT, idl_ident._ns_ref)
#define IDL_IDENT_REPO_ID(a) IDL_CHECK_CAST(a, IDLN_IDENT, idl_ident.repo_id)
extern IDL_tree IDL_ident_new (char *str);
extern void IDL_queue_new_ident_comment (const char *str);
enum IDL_float_type {
IDL_FLOAT_TYPE_FLOAT,
IDL_FLOAT_TYPE_DOUBLE,
IDL_FLOAT_TYPE_LONGDOUBLE
};
struct _IDL_TYPE_FLOAT {
enum IDL_float_type f_type;
};
#define IDL_TYPE_FLOAT(a) IDL_CHECK_CAST(a, IDLN_TYPE_FLOAT, idl_type_float)
extern IDL_tree IDL_type_float_new (enum IDL_float_type f_type);
struct _IDL_TYPE_FIXED {
IDL_tree positive_int_const;
IDL_tree integer_lit;
};
#define IDL_TYPE_FIXED(a) IDL_CHECK_CAST(a, IDLN_TYPE_FIXED, idl_type_fixed)
extern IDL_tree IDL_type_fixed_new (IDL_tree positive_int_const,
IDL_tree integer_lit);
enum IDL_integer_type {
IDL_INTEGER_TYPE_SHORT,
IDL_INTEGER_TYPE_LONG,
IDL_INTEGER_TYPE_LONGLONG
};
struct _IDL_TYPE_INTEGER {
unsigned f_signed : 1;
enum IDL_integer_type f_type;
};
#define IDL_TYPE_INTEGER(a) IDL_CHECK_CAST(a, IDLN_TYPE_INTEGER, idl_type_integer)
extern IDL_tree IDL_type_integer_new (unsigned f_signed,
enum IDL_integer_type f_type);
extern IDL_tree IDL_type_char_new (void);
extern IDL_tree IDL_type_wide_char_new (void);
extern IDL_tree IDL_type_boolean_new (void);
extern IDL_tree IDL_type_octet_new (void);
extern IDL_tree IDL_type_any_new (void);
extern IDL_tree IDL_type_object_new (void);
extern IDL_tree IDL_type_typecode_new (void);
struct _IDL_TYPE_STRING {
IDL_tree positive_int_const;
};
#define IDL_TYPE_STRING(a) IDL_CHECK_CAST(a, IDLN_TYPE_STRING, idl_type_string)
extern IDL_tree IDL_type_string_new (IDL_tree positive_int_const);
struct _IDL_TYPE_WIDE_STRING {
IDL_tree positive_int_const;
};
#define IDL_TYPE_WIDE_STRING(a) IDL_CHECK_CAST(a, IDLN_TYPE_WIDE_STRING, idl_type_wide_string)
extern IDL_tree IDL_type_wide_string_new (IDL_tree positive_int_const);
struct _IDL_TYPE_ENUM {
IDL_tree ident;
IDL_tree enumerator_list;
};
#define IDL_TYPE_ENUM(a) IDL_CHECK_CAST(a, IDLN_TYPE_ENUM, idl_type_enum)
extern IDL_tree IDL_type_enum_new (IDL_tree ident,
IDL_tree enumerator_list);
struct _IDL_TYPE_ARRAY {
IDL_tree ident;
IDL_tree size_list;
};
#define IDL_TYPE_ARRAY(a) IDL_CHECK_CAST(a, IDLN_TYPE_ARRAY, idl_type_array)
extern IDL_tree IDL_type_array_new (IDL_tree ident,
IDL_tree size_list);
struct _IDL_TYPE_SEQUENCE {
IDL_tree simple_type_spec;
IDL_tree positive_int_const;
};
#define IDL_TYPE_SEQUENCE(a) IDL_CHECK_CAST(a, IDLN_TYPE_SEQUENCE, idl_type_sequence)
extern IDL_tree IDL_type_sequence_new (IDL_tree simple_type_spec,
IDL_tree positive_int_const);
struct _IDL_TYPE_STRUCT {
IDL_tree ident;
IDL_tree member_list;
};
#define IDL_TYPE_STRUCT(a) IDL_CHECK_CAST(a, IDLN_TYPE_STRUCT, idl_type_struct)
extern IDL_tree IDL_type_struct_new (IDL_tree ident,
IDL_tree member_list);
struct _IDL_TYPE_UNION {
IDL_tree ident;
IDL_tree switch_type_spec;
IDL_tree switch_body;
};
#define IDL_TYPE_UNION(a) IDL_CHECK_CAST(a, IDLN_TYPE_UNION, idl_type_union)
extern IDL_tree IDL_type_union_new (IDL_tree ident,
IDL_tree switch_type_spec,
IDL_tree switch_body);
struct _IDL_MEMBER {
IDL_tree type_spec;
IDL_tree dcls;
};
#define IDL_MEMBER(a) IDL_CHECK_CAST(a, IDLN_MEMBER, idl_member)
extern IDL_tree IDL_member_new (IDL_tree type_spec,
IDL_tree dcls);
struct _IDL_NATIVE {
IDL_tree ident;
char *user_type; /* XPIDL extension */
};
#define IDL_NATIVE(a) IDL_CHECK_CAST(a, IDLN_NATIVE, idl_native)
extern IDL_tree IDL_native_new (IDL_tree ident);
struct _IDL_TYPE_DCL {
IDL_tree type_spec;
IDL_tree dcls;
};
#define IDL_TYPE_DCL(a) IDL_CHECK_CAST(a, IDLN_TYPE_DCL, idl_type_dcl)
extern IDL_tree IDL_type_dcl_new (IDL_tree type_spec,
IDL_tree dcls);
struct _IDL_CONST_DCL {
IDL_tree const_type;
IDL_tree ident;
IDL_tree const_exp;
};
#define IDL_CONST_DCL(a) IDL_CHECK_CAST(a, IDLN_CONST_DCL, idl_const_dcl)
extern IDL_tree IDL_const_dcl_new (IDL_tree const_type,
IDL_tree ident,
IDL_tree const_exp);
struct _IDL_EXCEPT_DCL {
IDL_tree ident;
IDL_tree members;
};
#define IDL_EXCEPT_DCL(a) IDL_CHECK_CAST(a, IDLN_EXCEPT_DCL, idl_except_dcl)
extern IDL_tree IDL_except_dcl_new (IDL_tree ident,
IDL_tree members);
struct _IDL_ATTR_DCL {
unsigned f_readonly : 1;
IDL_tree param_type_spec;
IDL_tree simple_declarations;
};
#define IDL_ATTR_DCL(a) IDL_CHECK_CAST(a, IDLN_ATTR_DCL, idl_attr_dcl)
extern IDL_tree IDL_attr_dcl_new (unsigned f_readonly,
IDL_tree param_type_spec,
IDL_tree simple_declarations);
struct _IDL_OP_DCL {
unsigned f_noscript : 1;
unsigned f_oneway : 1;
/* XPIDL extension (varags) */
unsigned f_varargs : 1;
IDL_tree op_type_spec;
IDL_tree ident;
IDL_tree parameter_dcls;
IDL_tree raises_expr;
IDL_tree context_expr;
};
#define IDL_OP_DCL(a) IDL_CHECK_CAST(a, IDLN_OP_DCL, idl_op_dcl)
extern IDL_tree IDL_op_dcl_new (unsigned f_oneway,
IDL_tree op_type_spec,
IDL_tree ident,
IDL_tree parameter_dcls,
IDL_tree raises_expr,
IDL_tree context_expr);
enum IDL_param_attr {
IDL_PARAM_IN,
IDL_PARAM_OUT,
IDL_PARAM_INOUT
};
struct _IDL_PARAM_DCL {
enum IDL_param_attr attr;
IDL_tree param_type_spec;
IDL_tree simple_declarator;
};
#define IDL_PARAM_DCL(a) IDL_CHECK_CAST(a, IDLN_PARAM_DCL, idl_param_dcl)
extern IDL_tree IDL_param_dcl_new (enum IDL_param_attr attr,
IDL_tree param_type_spec,
IDL_tree simple_declarator);
struct _IDL_CASE_STMT {
IDL_tree labels;
IDL_tree element_spec;
};
#define IDL_CASE_STMT(a) IDL_CHECK_CAST(a, IDLN_CASE_STMT, idl_case_stmt)
extern IDL_tree IDL_case_stmt_new (IDL_tree labels,
IDL_tree element_spec);
struct _IDL_INTERFACE {
IDL_tree ident;
IDL_tree inheritance_spec;
IDL_tree body;
};
#define IDL_INTERFACE(a) IDL_CHECK_CAST(a, IDLN_INTERFACE, idl_interface)
extern IDL_tree IDL_interface_new (IDL_tree ident,
IDL_tree inheritance_spec,
IDL_tree body);
struct _IDL_FORWARD_DCL {
IDL_tree ident;
};
#define IDL_FORWARD_DCL(a) IDL_CHECK_CAST(a, IDLN_FORWARD_DCL, idl_forward_dcl)
extern IDL_tree IDL_forward_dcl_new (IDL_tree ident);
struct _IDL_MODULE {
IDL_tree ident;
IDL_tree definition_list;
};
#define IDL_MODULE(a) IDL_CHECK_CAST(a, IDLN_MODULE, idl_module)
extern IDL_tree IDL_module_new (IDL_tree ident,
IDL_tree definition_list);
enum IDL_binop {
IDL_BINOP_OR,
IDL_BINOP_XOR,
IDL_BINOP_AND,
IDL_BINOP_SHR,
IDL_BINOP_SHL,
IDL_BINOP_ADD,
IDL_BINOP_SUB,
IDL_BINOP_MULT,
IDL_BINOP_DIV,
IDL_BINOP_MOD
};
struct _IDL_BINOP {
enum IDL_binop op;
IDL_tree left, right;
};
#define IDL_BINOP(a) IDL_CHECK_CAST(a, IDLN_BINOP, idl_binop)
extern IDL_tree IDL_binop_new (enum IDL_binop op,
IDL_tree left,
IDL_tree right);
enum IDL_unaryop {
IDL_UNARYOP_PLUS,
IDL_UNARYOP_MINUS,
IDL_UNARYOP_COMPLEMENT
};
struct _IDL_UNARYOP {
enum IDL_unaryop op;
IDL_tree operand;
};
#define IDL_UNARYOP(a) IDL_CHECK_CAST(a, IDLN_UNARYOP, idl_unaryop)
extern IDL_tree IDL_unaryop_new (enum IDL_unaryop op,
IDL_tree operand);
/* XPIDL code fragments extension. */
struct _IDL_CODEFRAG {
char *desc;
GSList *lines;
};
#define IDL_CODEFRAG(a) IDL_CHECK_CAST(a, IDLN_CODEFRAG, idl_codefrag)
extern IDL_tree IDL_codefrag_new (char *desc,
GSList *lines);
/*
* IDL_tree_type - Enumerations of node types
*
* Note this enumerator list is subject to change in the future. A program should not need
* more than a recompilation to adjust for a change in this list, so instead of using a
* statically initialized jumptable, allocate an array of size IDLN_LAST and assign the
* elements manually.
*/
typedef enum {
IDLN_NONE,
IDLN_ANY,
IDLN_LIST,
IDLN_GENTREE,
IDLN_INTEGER,
IDLN_STRING,
IDLN_WIDE_STRING,
IDLN_CHAR,
IDLN_WIDE_CHAR,
IDLN_FIXED,
IDLN_FLOAT,
IDLN_BOOLEAN,
IDLN_IDENT,
IDLN_TYPE_DCL,
IDLN_CONST_DCL,
IDLN_EXCEPT_DCL,
IDLN_ATTR_DCL,
IDLN_OP_DCL,
IDLN_PARAM_DCL,
IDLN_FORWARD_DCL,
IDLN_TYPE_INTEGER,
IDLN_TYPE_FLOAT,
IDLN_TYPE_FIXED,
IDLN_TYPE_CHAR,
IDLN_TYPE_WIDE_CHAR,
IDLN_TYPE_STRING,
IDLN_TYPE_WIDE_STRING,
IDLN_TYPE_BOOLEAN,
IDLN_TYPE_OCTET,
IDLN_TYPE_ANY,
IDLN_TYPE_OBJECT,
IDLN_TYPE_TYPECODE,
IDLN_TYPE_ENUM,
IDLN_TYPE_SEQUENCE,
IDLN_TYPE_ARRAY,
IDLN_TYPE_STRUCT,
IDLN_TYPE_UNION,
IDLN_MEMBER,
IDLN_NATIVE,
IDLN_CASE_STMT,
IDLN_INTERFACE,
IDLN_MODULE,
IDLN_BINOP,
IDLN_UNARYOP,
IDLN_CODEFRAG,
IDLN_LAST
} IDL_tree_type;
IDL_IMPORT const char * IDL_tree_type_names[];
struct _IDL_tree_node {
IDL_tree_type _type;
IDL_tree up; /* Do not recurse */
IDL_declspec_t declspec;
/* properties is an XPIDL extension. It is a hash table of
* case-insensitive string keys to string values. */
GHashTable *properties;
int refs;
char *_file; /* Internal use */
int _line; /* Internal use */
union {
struct _IDL_LIST idl_list;
struct _IDL_GENTREE idl_gentree;
struct _IDL_INTEGER idl_integer;
struct _IDL_STRING idl_string;
struct _IDL_WIDE_STRING idl_wide_string;
struct _IDL_CHAR idl_char;
struct _IDL_WIDE_CHAR idl_wide_char;
struct _IDL_FIXED idl_fixed;
struct _IDL_FLOAT idl_float;
struct _IDL_BOOLEAN idl_boolean;
struct _IDL_IDENT idl_ident;
struct _IDL_TYPE_DCL idl_type_dcl;
struct _IDL_CONST_DCL idl_const_dcl;
struct _IDL_EXCEPT_DCL idl_except_dcl;
struct _IDL_ATTR_DCL idl_attr_dcl;
struct _IDL_OP_DCL idl_op_dcl;
struct _IDL_PARAM_DCL idl_param_dcl;
struct _IDL_FORWARD_DCL idl_forward_dcl;
struct _IDL_TYPE_FLOAT idl_type_float;
struct _IDL_TYPE_FIXED idl_type_fixed;
struct _IDL_TYPE_INTEGER idl_type_integer;
struct _IDL_TYPE_ENUM idl_type_enum;
struct _IDL_TYPE_STRING idl_type_string;
struct _IDL_TYPE_WIDE_STRING idl_type_wide_string;
struct _IDL_TYPE_SEQUENCE idl_type_sequence;
struct _IDL_TYPE_ARRAY idl_type_array;
struct _IDL_TYPE_STRUCT idl_type_struct;
struct _IDL_TYPE_UNION idl_type_union;
struct _IDL_MEMBER idl_member;
struct _IDL_NATIVE idl_native;
struct _IDL_CASE_STMT idl_case_stmt;
struct _IDL_INTERFACE idl_interface;
struct _IDL_MODULE idl_module;
struct _IDL_BINOP idl_binop;
struct _IDL_UNARYOP idl_unaryop;
struct _IDL_CODEFRAG idl_codefrag;
} u;
};
#define IDL_NODE_TYPE(a) ((a)->_type)
#define IDL_NODE_TYPE_NAME(a) ((a)?IDL_tree_type_names[IDL_NODE_TYPE(a)]:"NULL")
#define IDL_NODE_UP(a) ((a)->up)
#define IDL_NODE_PROPERTIES(a) ((a)->properties)
#define IDL_NODE_DECLSPEC(a) ((a)->declspec)
#define IDL_NODE_REFS(a) ((a)->refs)
#define IDL_NODE_IS_LITERAL(a) \
(IDL_NODE_TYPE(a) == IDLN_INTEGER || \
IDL_NODE_TYPE(a) == IDLN_STRING || \
IDL_NODE_TYPE(a) == IDLN_WIDE_STRING || \
IDL_NODE_TYPE(a) == IDLN_CHAR || \
IDL_NODE_TYPE(a) == IDLN_WIDE_CHAR || \
IDL_NODE_TYPE(a) == IDLN_FIXED || \
IDL_NODE_TYPE(a) == IDLN_FLOAT || \
IDL_NODE_TYPE(a) == IDLN_BOOLEAN)
#define IDL_NODE_IS_TYPE(a) \
(IDL_NODE_TYPE(a) == IDLN_TYPE_INTEGER || \
IDL_NODE_TYPE(a) == IDLN_TYPE_STRING || \
IDL_NODE_TYPE(a) == IDLN_TYPE_WIDE_STRING || \
IDL_NODE_TYPE(a) == IDLN_TYPE_CHAR || \
IDL_NODE_TYPE(a) == IDLN_TYPE_WIDE_CHAR || \
IDL_NODE_TYPE(a) == IDLN_TYPE_FIXED || \
IDL_NODE_TYPE(a) == IDLN_TYPE_FLOAT || \
IDL_NODE_TYPE(a) == IDLN_TYPE_BOOLEAN || \
IDL_NODE_TYPE(a) == IDLN_TYPE_OCTET || \
IDL_NODE_TYPE(a) == IDLN_TYPE_ANY || \
IDL_NODE_TYPE(a) == IDLN_TYPE_OBJECT || \
IDL_NODE_TYPE(a) == IDLN_TYPE_TYPECODE || \
IDL_NODE_TYPE(a) == IDLN_TYPE_ENUM || \
IDL_NODE_TYPE(a) == IDLN_TYPE_ARRAY || \
IDL_NODE_TYPE(a) == IDLN_TYPE_SEQUENCE || \
IDL_NODE_TYPE(a) == IDLN_TYPE_STRUCT || \
IDL_NODE_TYPE(a) == IDLN_TYPE_UNION)
#define IDL_NODE_IS_SCOPED(a) \
(IDL_NODE_TYPE(a) == IDLN_IDENT || \
IDL_NODE_TYPE(a) == IDLN_INTERFACE || \
IDL_NODE_TYPE(a) == IDLN_MODULE || \
IDL_NODE_TYPE(a) == IDLN_EXCEPT_DCL || \
IDL_NODE_TYPE(a) == IDLN_OP_DCL || \
IDL_NODE_TYPE(a) == IDLN_TYPE_ENUM || \
IDL_NODE_TYPE(a) == IDLN_TYPE_STRUCT || \
IDL_NODE_TYPE(a) == IDLN_TYPE_UNION)
typedef struct _IDL_ns * IDL_ns;
struct _IDL_ns {
IDL_tree global;
IDL_tree file;
IDL_tree current;
GHashTable *inhibits;
GHashTable *filename_hash;
};
#define IDL_NS(a) (*(a))
typedef enum {
IDL_INPUT_REASON_INIT,
IDL_INPUT_REASON_FILL,
IDL_INPUT_REASON_ABORT,
IDL_INPUT_REASON_FINISH
} IDL_input_reason;
union IDL_input_data {
struct {
const char *filename;
} init;
struct {
char *buffer;
size_t max_size;
} fill;
};
typedef int (*IDL_input_callback) (IDL_input_reason reason,
union IDL_input_data *data,
gpointer user_data);
typedef int (*IDL_msg_callback) (int level,
int num,
int line,
const char *filename,
const char *message);
typedef struct _IDL_tree_func_state IDL_tree_func_state;
typedef struct _IDL_tree_func_data IDL_tree_func_data;
/* Traversal state data. Recursive walks chain states. */
struct _IDL_tree_func_state {
IDL_tree_func_state *up;
IDL_tree start;
IDL_tree_func_data *bottom;
};
/* This holds a list of the up hierarchy traversed, beginning from traversal. This is
* useful since nodes referenced after initial definition will have a different traversal
* path than the actual up path. */
struct _IDL_tree_func_data {
IDL_tree_func_state *state;
IDL_tree_func_data *up;
IDL_tree tree;
};
typedef gboolean (*IDL_tree_func) (IDL_tree_func_data *tnfd,
gpointer user_data);
extern IDL_tree IDL_check_type_cast (const IDL_tree var,
IDL_tree_type type,
const char *file,
int line,
const char *function);
extern const char * IDL_get_libver_string (void);
extern const char * IDL_get_IDLver_string (void);
extern int IDL_parse_filename (const char *filename,
const char *cpp_args,
IDL_msg_callback msg_cb,
IDL_tree *tree, IDL_ns *ns,
unsigned long parse_flags,
int max_msg_level);
extern int IDL_parse_filename_with_input (const char *filename,
IDL_input_callback input_cb,
gpointer input_cb_user_data,
IDL_msg_callback msg_cb,
IDL_tree *tree, IDL_ns *ns,
unsigned long parse_flags,
int max_msg_level);
extern int IDL_ns_prefix (IDL_ns ns,
const char *s);
extern void IDL_ns_ID (IDL_ns ns,
const char *s);
extern void IDL_ns_version (IDL_ns ns,
const char *s);
extern int IDL_inhibit_get (void);
extern void IDL_inhibit_push (void);
extern void IDL_inhibit_pop (void);
extern void IDL_file_set (const char *filename,
int line);
extern void IDL_file_get (const char **filename,
int *line);
extern IDL_tree IDL_get_parent_node (IDL_tree p,
IDL_tree_type type,
int *scope_levels);
extern IDL_tree IDL_tree_get_scope (IDL_tree p);
extern int IDL_tree_get_node_info (IDL_tree tree,
char **who,
char **what);
extern void IDL_tree_error (IDL_tree p,
const char *fmt,
...);
extern void IDL_tree_warning (IDL_tree p,
int level,
const char *fmt,
...);
extern const char * IDL_tree_property_get (IDL_tree tree,
const char *key);
extern void IDL_tree_property_set (IDL_tree tree,
const char *key,
const char *value);
extern gboolean IDL_tree_property_remove (IDL_tree tree,
const char *key);
extern void IDL_tree_properties_copy (IDL_tree from_tree,
IDL_tree to_tree);
extern void IDL_tree_walk (IDL_tree p,
IDL_tree_func_data *current,
IDL_tree_func pre_tree_func,
IDL_tree_func post_tree_func,
gpointer user_data);
extern void IDL_tree_walk_in_order (IDL_tree p,
IDL_tree_func tree_func,
gpointer user_data);
extern void IDL_tree_free (IDL_tree root);
extern void IDL_tree_to_IDL (IDL_tree p,
IDL_ns ns,
FILE *output,
unsigned long output_flags);
extern char * IDL_do_escapes (const char *s);
extern IDL_tree IDL_resolve_const_exp (IDL_tree p,
IDL_tree_type type);
extern IDL_ns IDL_ns_new (void);
extern void IDL_ns_free (IDL_ns ns);
extern IDL_tree IDL_ns_resolve_this_scope_ident (IDL_ns ns,
IDL_tree scope,
IDL_tree ident);
extern IDL_tree IDL_ns_resolve_ident (IDL_ns ns,
IDL_tree ident);
extern IDL_tree IDL_ns_lookup_this_scope (IDL_ns ns,
IDL_tree scope,
IDL_tree ident,
gboolean *conflict);
extern IDL_tree IDL_ns_lookup_cur_scope (IDL_ns ns,
IDL_tree ident,
gboolean *conflict);
extern IDL_tree IDL_ns_place_new (IDL_ns ns,
IDL_tree ident);
extern void IDL_ns_push_scope (IDL_ns ns,
IDL_tree ident);
extern void IDL_ns_pop_scope (IDL_ns ns);
extern IDL_tree IDL_ns_qualified_ident_new (IDL_tree nsid);
extern char * IDL_ns_ident_to_qstring (IDL_tree ns_ident,
const char *join,
int scope_levels);
extern int IDL_ns_scope_levels_from_here (IDL_ns ns,
IDL_tree ident,
IDL_tree parent);
extern char * IDL_ns_ident_make_repo_id (IDL_ns ns,
IDL_tree p,
const char *p_prefix,
int *major,
int *minor);
#ifdef __cplusplus
}
#endif
#endif /* __IDL_H */

View File

@@ -1,64 +0,0 @@
@echo off
if "%MOZ_TOOLS%" == "" goto no_moz_tools
echo.
echo MOZ_TOOLS is set to %MOZ_TOOLS%
echo It should NOT be set to anything in your cygwin
echo directory, such as c:\cygwin or c:\cygwin\bin
echo where C:\cygwin represents where you installed cygwin.
echo In that case files will be overwritten.
echo.
echo It should be set to some empty directory.
echo. e.g.
echo. mkdir c:\moz_tools
echo. set MOZ_TOOLS=c:\moz_tools
echo.
echo Please verify this.
echo.
pause
echo copying exes and dlls to %MOZ_TOOLS%\bin
if not exist %MOZ_TOOLS%\bin\NUL mkdir %MOZ_TOOLS%\bin >NUL
copy bin\x86\* %MOZ_TOOLS%\bin >NUL
echo copying include files to %MOZ_TOOLS%\include
if not exist %MOZ_TOOLS%\include\NUL mkdir %MOZ_TOOLS%\include >NUL
copy include\* %MOZ_TOOLS%\include >NUL
echo copying include files to %MOZ_TOOLS%\include\libIDL
if not exist %MOZ_TOOLS%\include\libIDL\NUL mkdir %MOZ_TOOLS%\include\libIDL >NUL
copy include\libIDL\* %MOZ_TOOLS%\include\libIDL >NUL
echo copying lib files to %MOZ_TOOLS%\lib
if not exist %MOZ_TOOLS%\lib\NUL mkdir %MOZ_TOOLS%\lib >NUL
copy lib\* %MOZ_TOOLS%\lib >NUL
echo.
echo done copying
echo.
echo make sure that MOZ_TOOLS\bin is on your path
echo.
goto done
:no_moz_tools
echo.
echo. ERROR!
echo.
echo You need to set MOZ_TOOLS in your environment.
echo MOZ_TOOLS should be the name of a directory that
echo you create to hold these tools.
echo.
echo. e.g.
echo. mkdir c:\moz_tools
echo. set MOZ_TOOLS=c:\moz_tools
echo.
echo MOZ_TOOLS should be set permanently so that it is
echo available to the build system whenever mozilla is building.
echo.
echo.
echo Please set MOZ_TOOLS and run install.bat again
echo.
:done
pause

Binary file not shown.

View File

@@ -1,12 +0,0 @@
Sources for glib are available from gnome.org via cvs. See cvs
checkout instructions at http://www.gnome.org - or use
export CVSROOT=:pserver:anonymous@anoncvs.gnome.org:/cvs/gnome
cvs login (no password)
cvs -z3 checkout glib
or grap a package of the sources we're currently using from
ftp://ftp.mozilla.org/pub/mozilla/libraries/source/
These sources correspond to the GLIB_1_2_0 tag on the gnome cvs
server.

View File

@@ -1,14 +0,0 @@
Sources for libIDL are available from gnome.org via cvs. See cvs
checkout instructions at http://www.gnome.org - or use
export CVSROOT=:pserver:anonymous@anoncvs.gnome.org:/cvs/gnome
cvs login (no password)
cvs -z3 checkout ORBit
(libIDL files are in ORBit/libIDL)
or grap a package of the sources we're currently using from
ftp://ftp.mozilla.org/pub/mozilla/libraries/source/
These sources correspond to the LIBIDL_V0_6_3 tag on the gnome cvs
server.

View File

@@ -1,7 +0,0 @@
This directory contains the source files for nsinstall.exe,
which is used to build the Mozilla client on Win32.
To build nsinstall.exe, issue the command:
nmake /f nsinstall.mak
The output is Release\nsinstall.exe. Copy it to a directory
on your Path.

View File

@@ -1,697 +0,0 @@
/*
* The nsinstall command for Win32
*
* Our gmake makefiles use the nsinstall command to create the
* object directories or installing headers and libs to ns/dist.
* The shmsdos shell has nsinstall as a built-in command. However,
* if we use another shell like MKS toolkit's sh, we need to have
* the nsinstall command separately.
*
* This file was generated by just taking the part of shmsdos.c
* needed by nsinstall and deleting the recursive directory copy code.
*
* To build, say
* nmake /f nsinstall.mak
*/
#include <direct.h>
#include <stdio.h>
#include <string.h>
#include <assert.h>
#include <windows.h>
#pragma hdrstop
/*
* sh_FileFcn --
*
* A function that operates on a file. The pathname is either
* absolute or relative to the current directory, and contains
* no wildcard characters such as * and ?. Additional arguments
* can be passed to the function via the arg pointer.
*/
typedef BOOL (*sh_FileFcn)(
char *pathName,
WIN32_FIND_DATA *fileData,
void *arg);
static int shellCp (char **pArgv);
static int shellNsinstall (char **pArgv);
static int shellMkdir (char **pArgv);
static BOOL sh_EnumerateFiles(const char *pattern, const char *where,
sh_FileFcn fileFcn, void *arg, int *nFiles);
static const char *sh_GetLastErrorMessage(void);
static BOOL sh_DoCopy(char *srcFileName, DWORD srcFileAttributes,
char *dstFileName, DWORD dstFileAttributes,
int force, int recursive);
/* changes all forward slashes in token to back slashes */
void changeForwardSlashesTpBackSlashes ( char *arg )
{
if ( arg == NULL )
return;
while ( *arg ) {
if ( *arg == '/' )
*arg = '\\';
arg++;
}
}
int main(int argc, char *argv[ ])
{
return shellNsinstall ( argv + 1 );
}
static int
shellNsinstall (char **pArgv)
{
int retVal = 0; /* exit status */
int dirOnly = 0; /* 1 if and only if -D is specified */
char **pSrc;
char **pDst;
/*
* Process the command-line options. We ignore the
* options except for -D. Some options, such as -m,
* are followed by an argument. We need to skip the
* argument too.
*/
while ( *pArgv && **pArgv == '-' ) {
char c = (*pArgv)[1]; /* The char after '-' */
if ( c == 'D' ) {
dirOnly = 1;
} else if ( c == 'm' ) {
pArgv++; /* skip the next argument */
}
pArgv++;
}
if ( !dirOnly ) {
/* There are files to install. Get source files */
if ( *pArgv ) {
pSrc = pArgv++;
} else {
fprintf( stderr, "nsinstall: not enough arguments\n");
return 3;
}
}
/* Get to last token to find destination directory */
if ( *pArgv ) {
pDst = pArgv++;
if ( dirOnly && *pArgv ) {
fprintf( stderr, "nsinstall: too many arguments with -D\n");
return 3;
}
} else {
fprintf( stderr, "nsinstall: not enough arguments\n");
return 3;
}
while ( *pArgv )
pDst = pArgv++;
retVal = shellMkdir ( pDst );
if ( retVal )
return retVal;
if ( !dirOnly )
retVal = shellCp ( pSrc );
return retVal;
}
static int
shellMkdir (char **pArgv)
{
int retVal = 0; /* assume valid return */
char *arg;
char *pArg;
char path[_MAX_PATH];
char tmpPath[_MAX_PATH];
char *pTmpPath = tmpPath;
/* All the options are simply ignored in this implementation */
while ( *pArgv && **pArgv == '-' ) {
if ( (*pArgv)[1] == 'm' ) {
pArgv++; /* skip the next argument (mode) */
}
pArgv++;
}
while ( *pArgv ) {
arg = *pArgv;
changeForwardSlashesTpBackSlashes ( arg );
pArg = arg;
pTmpPath = tmpPath;
while ( 1 ) {
/* create part of path */
while ( *pArg ) {
*pTmpPath++ = *pArg++;
if ( *pArg == '\\' )
break;
}
*pTmpPath = '\0';
/* check if directory alreay exists */
_getcwd ( path, sizeof (path) );
if ( _chdir ( tmpPath ) != -1 ) {
_chdir ( path );
} else {
if ( _mkdir ( tmpPath ) == -1 ) {
// while ( waitForDebug );
printf ( "%s: ", tmpPath );
perror ( "Could not create the directory" );
retVal = 3;
break;
}
}
if ( *pArg == '\0' ) /* complete path? */
break;
/* loop for next directory */
}
pArgv++;
}
return retVal;
}
static const char *
sh_GetLastErrorMessage()
{
static char buf[128];
FormatMessage(
FORMAT_MESSAGE_FROM_SYSTEM,
NULL,
GetLastError(),
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), /* default language */
buf,
sizeof(buf),
NULL
);
return buf;
}
/*
* struct sh_FileData --
*
* A pointer to the sh_FileData structure is passed into sh_RecordFileData,
* which will fill in the fields.
*/
struct sh_FileData {
char pathName[_MAX_PATH];
DWORD dwFileAttributes;
};
/*
* sh_RecordFileData --
*
* Record the pathname and attributes of the file in
* the sh_FileData structure pointed to by arg.
*
* Always return TRUE (successful completion).
*
* This function is intended to be passed into sh_EnumerateFiles
* to see if a certain pattern expands to exactly one file/directory,
* and if so, record its pathname and attributes.
*/
static BOOL
sh_RecordFileData(char *pathName, WIN32_FIND_DATA *findData, void *arg)
{
struct sh_FileData *fData = (struct sh_FileData *) arg;
strcpy(fData->pathName, pathName);
fData->dwFileAttributes = findData->dwFileAttributes;
return TRUE;
}
static BOOL
sh_DoCopy(char *srcFileName,
DWORD srcFileAttributes,
char *dstFileName,
DWORD dstFileAttributes,
int force,
int recursive
)
{
if (dstFileAttributes != 0xFFFFFFFF) {
if ((dstFileAttributes & FILE_ATTRIBUTE_READONLY) && force) {
dstFileAttributes &= ~FILE_ATTRIBUTE_READONLY;
SetFileAttributes(dstFileName, dstFileAttributes);
}
}
if (srcFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
fprintf(stderr, "nsinstall: %s is a directory\n",
srcFileName);
return FALSE;
} else {
if (!CopyFile(srcFileName, dstFileName, FALSE)) {
fprintf(stderr, "nsinstall: cannot copy %s to %s: %s\n",
srcFileName, dstFileName, sh_GetLastErrorMessage());
return FALSE;
}
}
return TRUE;
}
/*
* struct sh_CpCmdArg --
*
* A pointer to the sh_CpCmdArg structure is passed into sh_CpFileCmd.
* The sh_CpCmdArg contains information about the cp command, and
* provide a buffer for constructing the destination file name.
*/
struct sh_CpCmdArg {
int force; /* -f option, ok to overwrite an existing
* read-only destination file */
int recursive; /* -r or -R option, recursively copy
* directories. Note: this field is not used
* by nsinstall and should always be 0. */
char *dstFileName; /* a buffer for constructing the destination
* file name */
char *dstFileNameMarker; /* points to where in the dstFileName buffer
* we should write the file component of the
* destination file */
};
/*
* sh_CpFileCmd --
*
* Copy a file to the destination directory
*
* This function is intended to be passed into sh_EnumerateFiles to
* copy all the files specified by the pattern to the destination
* directory.
*
* Return TRUE if the file is successfully copied, and FALSE otherwise.
*/
static BOOL
sh_CpFileCmd(char *pathName, WIN32_FIND_DATA *findData, void *cpArg)
{
BOOL retVal = TRUE;
struct sh_CpCmdArg *arg = (struct sh_CpCmdArg *) cpArg;
strcpy(arg->dstFileNameMarker, findData->cFileName);
return sh_DoCopy(pathName, findData->dwFileAttributes,
arg->dstFileName, GetFileAttributes(arg->dstFileName),
arg->force, arg->recursive);
}
static int
shellCp (char **pArgv)
{
int retVal = 0;
char **pSrc;
char **pDst;
struct sh_CpCmdArg arg;
struct sh_FileData dstData;
int dstIsDir = 0;
int n;
arg.force = 0;
arg.recursive = 0;
arg.dstFileName = dstData.pathName;
arg.dstFileNameMarker = 0;
while (*pArgv && **pArgv == '-') {
char *p = *pArgv;
while (*(++p)) {
if (*p == 'f') {
arg.force = 1;
}
}
pArgv++;
}
/* the first source file */
if (*pArgv) {
pSrc = pArgv++;
} else {
fprintf(stderr, "nsinstall: not enough arguments\n");
return 3;
}
/* get to the last token to find destination */
if (*pArgv) {
pDst = pArgv++;
} else {
fprintf(stderr, "nsinstall: not enough arguments\n");
return 3;
}
while (*pArgv) {
pDst = pArgv++;
}
/*
* The destination pattern must unambiguously expand to exactly
* one file or directory.
*/
changeForwardSlashesTpBackSlashes(*pDst);
sh_EnumerateFiles(*pDst, *pDst, sh_RecordFileData, &dstData, &n);
assert(n >= 0);
if (n == 1) {
/*
* Is the destination a file or directory?
*/
if (dstData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
dstIsDir = 1;
}
} else if (n > 1) {
fprintf(stderr, "nsinstall: %s: ambiguous destination file "
"or directory\n", *pDst);
return 3;
} else {
/*
* n == 0, meaning that destination file or directory does
* not exist. In this case the destination file directory
* name must be fully specified.
*/
char *p;
for (p = *pDst; *p; p++) {
if (*p == '*' || *p == '?') {
fprintf(stderr, "nsinstall: %s: No such file or directory\n",
*pDst);
return 3;
}
}
/*
* Do not include the trailing \, if any, unless it is a root
* directory (\ or X:\).
*/
if (p > *pDst && p[-1] == '\\' && p != *pDst + 1 && p[-2] != ':') {
p[-1] = '\0';
}
strcpy(dstData.pathName, *pDst);
dstData.dwFileAttributes = 0xFFFFFFFF;
}
/*
* If there are two or more source files, the destination has
* to be a directory.
*/
if (pDst - pSrc > 1 && !dstIsDir) {
fprintf(stderr, "nsinstall: cannot copy more than"
" one file to the same destination file\n");
return 3;
}
if (dstIsDir) {
arg.dstFileNameMarker = arg.dstFileName + strlen(arg.dstFileName);
/*
* Now arg.dstFileNameMarker is pointing to the null byte at the
* end of string. We want to make sure that there is a \ at the
* end of string, and arg.dstFileNameMarker should point right
* after that \.
*/
if (arg.dstFileNameMarker[-1] != '\\') {
*(arg.dstFileNameMarker++) = '\\';
}
}
if (!dstIsDir) {
struct sh_FileData srcData;
assert(pDst - pSrc == 1);
changeForwardSlashesTpBackSlashes(*pSrc);
sh_EnumerateFiles(*pSrc, *pSrc, sh_RecordFileData, &srcData, &n);
if (n == 0) {
fprintf(stderr, "nsinstall: %s: No such file or directory\n",
*pSrc);
retVal = 3;
} else if (n > 1) {
fprintf(stderr, "nsinstall: cannot copy more than one file or "
"directory to the same destination\n");
retVal = 3;
} else {
assert(n == 1);
if (sh_DoCopy(srcData.pathName, srcData.dwFileAttributes,
dstData.pathName, dstData.dwFileAttributes,
arg.force, arg.recursive) == FALSE) {
retVal = 3;
}
}
return retVal;
}
for ( ; *pSrc != *pDst; pSrc++) {
BOOL rv;
changeForwardSlashesTpBackSlashes(*pSrc);
rv = sh_EnumerateFiles(*pSrc, *pSrc, sh_CpFileCmd, &arg, &n);
if (rv == FALSE) {
retVal = 3;
} else {
if (n == 0) {
fprintf(stderr, "nsinstall: %s: No such file or directory\n",
*pSrc);
retVal = 3;
}
}
}
return retVal;
}
/*
* sh_EnumerateFiles --
*
* Enumerate all the files in the specified pattern, which is a pathname
* containing possibly wildcard characters such as * and ?. fileFcn
* is called on each file, passing the expanded file name, a pointer
* to the file's WIN32_FILE_DATA, and the arg pointer.
*
* It is assumed that there are no wildcard characters before the
* character pointed to by 'where'.
*
* On return, *nFiles stores the number of files enumerated. *nFiles is
* set to this number whether sh_EnumerateFiles or 'fileFcn' succeeds
* or not.
*
* Return TRUE if the files are successfully enumerated and all
* 'fileFcn' invocations succeeded. Return FALSE if something went
* wrong.
*/
static BOOL sh_EnumerateFiles(
const char *pattern,
const char *where,
sh_FileFcn fileFcn,
void *arg,
int *nFiles
)
{
WIN32_FIND_DATA fileData;
HANDLE hSearch;
const char *src;
char *dst;
char fileName[_MAX_PATH];
char *fileNameMarker = fileName;
char *oldFileNameMarker;
BOOL hasWildcard = FALSE;
BOOL retVal = TRUE;
BOOL patternEndsInDotStar = FALSE;
BOOL patternEndsInDot = FALSE; /* a special case of
* patternEndsInDotStar */
int numDotsInPattern;
int len;
/*
* Windows expands patterns ending in ".", ".*", ".**", etc.
* differently from the glob expansion on Unix. For example,
* both "foo." and "foo.*" match "foo", and "*.*" matches
* everything, including filenames with no dots. So we need
* to throw away extra files returned by the FindNextFile()
* function. We require that a matched filename have at least
* the number of dots in the pattern.
*/
len = strlen(pattern);
if (len >= 2) {
/* Start from the end of pattern and go backward */
const char *p = &pattern[len - 1];
/* We can have zero or more *'s */
while (p >= pattern && *p == '*') {
p--;
}
if (p >= pattern && *p == '.') {
patternEndsInDotStar = TRUE;
if (p == &pattern[len - 1]) {
patternEndsInDot = TRUE;
}
p--;
numDotsInPattern = 1;
while (p >= pattern && *p != '\\') {
if (*p == '.') {
numDotsInPattern++;
}
p--;
}
}
}
*nFiles = 0;
/*
* Copy pattern to fileName, but only up to and not including
* the first \ after the first wildcard letter.
*
* Make fileNameMarker point to one of the following:
* - the start of fileName, if fileName does not contain any \.
* - right after the \ before the first wildcard letter, if there is
* a wildcard character.
* - right after the last \, if there is no wildcard character.
*/
dst = fileName;
src = pattern;
while (src < where) {
if (*src == '\\') {
oldFileNameMarker = fileNameMarker;
fileNameMarker = dst + 1;
}
*(dst++) = *(src++);
}
while (*src && *src != '*' && *src != '?') {
if (*src == '\\') {
oldFileNameMarker = fileNameMarker;
fileNameMarker = dst + 1;
}
*(dst++) = *(src++);
}
if (*src) {
/*
* Must have seen the first wildcard letter
*/
hasWildcard = TRUE;
while (*src && *src != '\\') {
*(dst++) = *(src++);
}
}
/* Now src points to either null or \ */
assert(*src == '\0' || *src == '\\');
assert(hasWildcard || *src == '\0');
*dst = '\0';
/*
* If the pattern does not contain any wildcard characters, then
* we don't need to go the FindFirstFile route.
*/
if (!hasWildcard) {
/*
* See if it is the root directory, \, or X:\.
*/
assert(!strcmp(fileName, pattern));
assert(strlen(fileName) >= 1);
if (dst[-1] == '\\' && (dst == fileName + 1 || dst[-2] == ':')) {
fileData.cFileName[0] = '\0';
} else {
/*
* Do not include the trailing \, if any
*/
if (dst[-1] == '\\') {
assert(*fileNameMarker == '\0');
dst[-1] = '\0';
fileNameMarker = oldFileNameMarker;
}
strcpy(fileData.cFileName, fileNameMarker);
}
fileData.dwFileAttributes = GetFileAttributes(fileName);
if (fileData.dwFileAttributes == 0xFFFFFFFF) {
return TRUE;
}
*nFiles = 1;
return (*fileFcn)(fileName, &fileData, arg);
}
hSearch = FindFirstFile(fileName, &fileData);
if (hSearch == INVALID_HANDLE_VALUE) {
return retVal;
}
do {
if (!strcmp(fileData.cFileName, ".")
|| !strcmp(fileData.cFileName, "..")) {
/*
* Skip over . and ..
*/
continue;
}
if (patternEndsInDotStar) {
int nDots = 0;
char *p = fileData.cFileName;
while (*p) {
if (*p == '.') {
nDots++;
}
p++;
}
/* Now p points to the null byte at the end of file name */
if (patternEndsInDot && (p == fileData.cFileName
|| p[-1] != '.')) {
/*
* File name does not end in dot. Skip this file.
* Note: windows file name probably cannot end in dot,
* but we do this check anyway.
*/
continue;
}
if (nDots < numDotsInPattern) {
/*
* Not enough dots in file name. Must be an extra
* file in matching .* pattern. Skip this file.
*/
continue;
}
}
strcpy(fileNameMarker, fileData.cFileName);
if (*src && *(src + 1)) {
/*
* More to go. Recurse.
*/
int n;
assert(*src == '\\');
where = fileName + strlen(fileName);
strcat(fileName, src);
sh_EnumerateFiles(fileName, where, fileFcn, arg, &n);
*nFiles += n;
} else {
assert(strchr(fileName, '*') == NULL);
assert(strchr(fileName, '?') == NULL);
(*nFiles)++;
if ((*fileFcn)(fileName, &fileData, arg) == FALSE) {
retVal = FALSE;
}
}
} while (FindNextFile(hSearch, &fileData));
FindClose(hSearch);
return retVal;
}

View File

@@ -1,141 +0,0 @@
# NMAKE file for building nsinstall.exe.
#
# This file is edited from an NMAKE file generated by
# Microsoft Developer Studio, Format Version 4.20
#
# To build, say
# nmake /f nsinstall.mak CFG=Release
# or
# nmake /f nsinstall.mak CFG=Debug
# If CFG is omitted, a release build is assumed.
!IF "$(CFG)" == ""
CFG=Release
!MESSAGE No configuration specified. Defaulting Release.
!ENDIF
!IF "$(CFG)" != "Release" && "$(CFG)" != "Debug"
!MESSAGE Invalid configuration "$(CFG)" specified.
!MESSAGE You can specify a configuration when running NMAKE on this makefile
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "nsinstall.mak" CFG="Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "Release" (based on "Win32 Console Application")
!MESSAGE "Debug" (based on "Win32 Console Application")
!MESSAGE
!ERROR An invalid configuration is specified.
!ENDIF
!IF "$(OS)" == "Windows_NT"
NULL=
!ELSE
NULL=nul
!ENDIF
################################################################################
# Begin Project
CPP=cl.exe
RSC=rc.exe
!IF "$(CFG)" == "Release"
OUTDIR=.\Release
INTDIR=.\Release
ALL : "$(OUTDIR)\nsinstall.exe"
CLEAN :
-@erase "$(INTDIR)\nsinstall.obj"
-@erase "$(OUTDIR)\nsinstall.exe"
"$(OUTDIR)" :
if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
CPP_PROJ=/nologo /ML /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE"\
/Fp"$(INTDIR)/nsinstall.pch" /YX /Fo"$(INTDIR)/" /c
CPP_OBJS=.\Release/
CPP_SBRS=.\.
BSC32=bscmake.exe
BSC32_FLAGS=/nologo /o"$(OUTDIR)/nsinstall.bsc"
BSC32_SBRS= \
LINK32=link.exe
LINK32_FLAGS=/nologo\
/subsystem:console /incremental:no /pdb:"$(OUTDIR)/nsinstall.pdb"\
/out:"$(OUTDIR)/nsinstall.exe"
LINK32_OBJS= \
"$(INTDIR)\nsinstall.obj"
"$(OUTDIR)\nsinstall.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
$(LINK32) @<<
$(LINK32_FLAGS) $(LINK32_OBJS)
<<
!ELSEIF "$(CFG)" == "Debug"
OUTDIR=.\Debug
INTDIR=.\Debug
ALL : "$(OUTDIR)\nsinstall.exe"
CLEAN :
-@erase "$(INTDIR)\nsinstall.obj"
-@erase "$(INTDIR)\vc40.idb"
-@erase "$(INTDIR)\vc40.pdb"
-@erase "$(OUTDIR)\nsinstall.exe"
-@erase "$(OUTDIR)\nsinstall.ilk"
-@erase "$(OUTDIR)\nsinstall.pdb"
"$(OUTDIR)" :
if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
CPP_PROJ=/nologo /MD /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "DEBUG"\
/D "_CONSOLE" /Fp"$(INTDIR)/nsinstall.pch" /YX /Fo"$(INTDIR)/"\
/Fd"$(INTDIR)/" /c
CPP_OBJS=.\Debug/
CPP_SBRS=.\.
BSC32=bscmake.exe
BSC32_FLAGS=/nologo /o"$(OUTDIR)/nsinstall.bsc"
BSC32_SBRS= \
LINK32=link.exe
LINK32_FLAGS=/nologo\
/subsystem:console /incremental:yes /pdb:"$(OUTDIR)/nsinstall.pdb" /debug\
/out:"$(OUTDIR)/nsinstall.exe"
LINK32_OBJS= \
"$(INTDIR)\nsinstall.obj"
"$(OUTDIR)\nsinstall.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
$(LINK32) @<<
$(LINK32_FLAGS) $(LINK32_OBJS)
<<
!ENDIF
.c{$(CPP_OBJS)}.obj:
$(CPP) $(CPP_PROJ) $<
.c{$(CPP_SBRS)}.sbr:
$(CPP) $(CPP_PROJ) $<
################################################################################
# Begin Target
################################################################################
# Begin Source File
SOURCE=.\nsinstall.c
DEP_CPP_SHMSD=\
{$(INCLUDE)}"\sys\stat.h"\
{$(INCLUDE)}"\sys\types.h"\
"$(INTDIR)\nsinstall.obj" : $(SOURCE) $(DEP_CPP_SHMSD) "$(INTDIR)"
# End Source File
# End Target
# End Project
################################################################################

View File

@@ -1,504 +0,0 @@
GNU LESSER GENERAL PUBLIC LICENSE
Version 2.1, February 1999
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
[This is the first released version of the Lesser GPL. It also counts
as the successor of the GNU Library Public License, version 2, hence
the version number 2.1.]
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
Licenses are intended to guarantee your freedom to share and change
free software--to make sure the software is free for all its users.
This license, the Lesser General Public License, applies to some
specially designated software packages--typically libraries--of the
Free Software Foundation and other authors who decide to use it. You
can use it too, but we suggest you first think carefully about whether
this license or the ordinary General Public License is the better
strategy to use in any particular case, based on the explanations below.
When we speak of free software, we are referring to freedom of use,
not price. Our General Public Licenses are designed to make sure that
you have the freedom to distribute copies of free software (and charge
for this service if you wish); that you receive source code or can get
it if you want it; that you can change the software and use pieces of
it in new free programs; and that you are informed that you can do
these things.
To protect your rights, we need to make restrictions that forbid
distributors to deny you these rights or to ask you to surrender these
rights. These restrictions translate to certain responsibilities for
you if you distribute copies of the library or if you modify it.
For example, if you distribute copies of the library, whether gratis
or for a fee, you must give the recipients all the rights that we gave
you. You must make sure that they, too, receive or can get the source
code. If you link other code with the library, you must provide
complete object files to the recipients, so that they can relink them
with the library after making changes to the library and recompiling
it. And you must show them these terms so they know their rights.
We protect your rights with a two-step method: (1) we copyright the
library, and (2) we offer you this license, which gives you legal
permission to copy, distribute and/or modify the library.
To protect each distributor, we want to make it very clear that
there is no warranty for the free library. Also, if the library is
modified by someone else and passed on, the recipients should know
that what they have is not the original version, so that the original
author's reputation will not be affected by problems that might be
introduced by others.
Finally, software patents pose a constant threat to the existence of
any free program. We wish to make sure that a company cannot
effectively restrict the users of a free program by obtaining a
restrictive license from a patent holder. Therefore, we insist that
any patent license obtained for a version of the library must be
consistent with the full freedom of use specified in this license.
Most GNU software, including some libraries, is covered by the
ordinary GNU General Public License. This license, the GNU Lesser
General Public License, applies to certain designated libraries, and
is quite different from the ordinary General Public License. We use
this license for certain libraries in order to permit linking those
libraries into non-free programs.
When a program is linked with a library, whether statically or using
a shared library, the combination of the two is legally speaking a
combined work, a derivative of the original library. The ordinary
General Public License therefore permits such linking only if the
entire combination fits its criteria of freedom. The Lesser General
Public License permits more lax criteria for linking other code with
the library.
We call this license the "Lesser" General Public License because it
does Less to protect the user's freedom than the ordinary General
Public License. It also provides other free software developers Less
of an advantage over competing non-free programs. These disadvantages
are the reason we use the ordinary General Public License for many
libraries. However, the Lesser license provides advantages in certain
special circumstances.
For example, on rare occasions, there may be a special need to
encourage the widest possible use of a certain library, so that it becomes
a de-facto standard. To achieve this, non-free programs must be
allowed to use the library. A more frequent case is that a free
library does the same job as widely used non-free libraries. In this
case, there is little to gain by limiting the free library to free
software only, so we use the Lesser General Public License.
In other cases, permission to use a particular library in non-free
programs enables a greater number of people to use a large body of
free software. For example, permission to use the GNU C Library in
non-free programs enables many more people to use the whole GNU
operating system, as well as its variant, the GNU/Linux operating
system.
Although the Lesser General Public License is Less protective of the
users' freedom, it does ensure that the user of a program that is
linked with the Library has the freedom and the wherewithal to run
that program using a modified version of the Library.
The precise terms and conditions for copying, distribution and
modification follow. Pay close attention to the difference between a
"work based on the library" and a "work that uses the library". The
former contains code derived from the library, whereas the latter must
be combined with the library in order to run.
GNU LESSER GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License Agreement applies to any software library or other
program which contains a notice placed by the copyright holder or
other authorized party saying it may be distributed under the terms of
this Lesser General Public License (also called "this License").
Each licensee is addressed as "you".
A "library" means a collection of software functions and/or data
prepared so as to be conveniently linked with application programs
(which use some of those functions and data) to form executables.
The "Library", below, refers to any such software library or work
which has been distributed under these terms. A "work based on the
Library" means either the Library or any derivative work under
copyright law: that is to say, a work containing the Library or a
portion of it, either verbatim or with modifications and/or translated
straightforwardly into another language. (Hereinafter, translation is
included without limitation in the term "modification".)
"Source code" for a work means the preferred form of the work for
making modifications to it. For a library, complete source code means
all the source code for all modules it contains, plus any associated
interface definition files, plus the scripts used to control compilation
and installation of the library.
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running a program using the Library is not restricted, and output from
such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for
writing it). Whether that is true depends on what the Library does
and what the program that uses the Library does.
1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an
appropriate copyright notice and disclaimer of warranty; keep intact
all the notices that refer to this License and to the absence of any
warranty; and distribute a copy of this License along with the
Library.
You may charge a fee for the physical act of transferring a copy,
and you may at your option offer warranty protection in exchange for a
fee.
2. You may modify your copy or copies of the Library or any portion
of it, thus forming a work based on the Library, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) The modified work must itself be a software library.
b) You must cause the files modified to carry prominent notices
stating that you changed the files and the date of any change.
c) You must cause the whole of the work to be licensed at no
charge to all third parties under the terms of this License.
d) If a facility in the modified Library refers to a function or a
table of data to be supplied by an application program that uses
the facility, other than as an argument passed when the facility
is invoked, then you must make a good faith effort to ensure that,
in the event an application does not supply such function or
table, the facility still operates, and performs whatever part of
its purpose remains meaningful.
(For example, a function in a library to compute square roots has
a purpose that is entirely well-defined independent of the
application. Therefore, Subsection 2d requires that any
application-supplied function or table used by this function must
be optional: if the application does not supply it, the square
root function must still compute square roots.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Library,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Library, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote
it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Library.
In addition, mere aggregation of another work not based on the Library
with the Library (or with a work based on the Library) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may opt to apply the terms of the ordinary GNU General Public
License instead of this License to a given copy of the Library. To do
this, you must alter all the notices that refer to this License, so
that they refer to the ordinary GNU General Public License, version 2,
instead of to this License. (If a newer version than version 2 of the
ordinary GNU General Public License has appeared, then you can specify
that version instead if you wish.) Do not make any other change in
these notices.
Once this change is made in a given copy, it is irreversible for
that copy, so the ordinary GNU General Public License applies to all
subsequent copies and derivative works made from that copy.
This option is useful when you wish to copy part of the code of
the Library into a program that is not a library.
4. You may copy and distribute the Library (or a portion or
derivative of it, under Section 2) in object code or executable form
under the terms of Sections 1 and 2 above provided that you accompany
it with the complete corresponding machine-readable source code, which
must be distributed under the terms of Sections 1 and 2 above on a
medium customarily used for software interchange.
If distribution of object code is made by offering access to copy
from a designated place, then offering equivalent access to copy the
source code from the same place satisfies the requirement to
distribute the source code, even though third parties are not
compelled to copy the source along with the object code.
5. A program that contains no derivative of any portion of the
Library, but is designed to work with the Library by being compiled or
linked with it, is called a "work that uses the Library". Such a
work, in isolation, is not a derivative work of the Library, and
therefore falls outside the scope of this License.
However, linking a "work that uses the Library" with the Library
creates an executable that is a derivative of the Library (because it
contains portions of the Library), rather than a "work that uses the
library". The executable is therefore covered by this License.
Section 6 states terms for distribution of such executables.
When a "work that uses the Library" uses material from a header file
that is part of the Library, the object code for the work may be a
derivative work of the Library even though the source code is not.
Whether this is true is especially significant if the work can be
linked without the Library, or if the work is itself a library. The
threshold for this to be true is not precisely defined by law.
If such an object file uses only numerical parameters, data
structure layouts and accessors, and small macros and small inline
functions (ten lines or less in length), then the use of the object
file is unrestricted, regardless of whether it is legally a derivative
work. (Executables containing this object code plus portions of the
Library will still fall under Section 6.)
Otherwise, if the work is a derivative of the Library, you may
distribute the object code for the work under the terms of Section 6.
Any executables containing that work also fall under Section 6,
whether or not they are linked directly with the Library itself.
6. As an exception to the Sections above, you may also combine or
link a "work that uses the Library" with the Library to produce a
work containing portions of the Library, and distribute that work
under terms of your choice, provided that the terms permit
modification of the work for the customer's own use and reverse
engineering for debugging such modifications.
You must give prominent notice with each copy of the work that the
Library is used in it and that the Library and its use are covered by
this License. You must supply a copy of this License. If the work
during execution displays copyright notices, you must include the
copyright notice for the Library among them, as well as a reference
directing the user to the copy of this License. Also, you must do one
of these things:
a) Accompany the work with the complete corresponding
machine-readable source code for the Library including whatever
changes were used in the work (which must be distributed under
Sections 1 and 2 above); and, if the work is an executable linked
with the Library, with the complete machine-readable "work that
uses the Library", as object code and/or source code, so that the
user can modify the Library and then relink to produce a modified
executable containing the modified Library. (It is understood
that the user who changes the contents of definitions files in the
Library will not necessarily be able to recompile the application
to use the modified definitions.)
b) Use a suitable shared library mechanism for linking with the
Library. A suitable mechanism is one that (1) uses at run time a
copy of the library already present on the user's computer system,
rather than copying library functions into the executable, and (2)
will operate properly with a modified version of the library, if
the user installs one, as long as the modified version is
interface-compatible with the version that the work was made with.
c) Accompany the work with a written offer, valid for at
least three years, to give the same user the materials
specified in Subsection 6a, above, for a charge no more
than the cost of performing this distribution.
d) If distribution of the work is made by offering access to copy
from a designated place, offer equivalent access to copy the above
specified materials from the same place.
e) Verify that the user has already received a copy of these
materials or that you have already sent this user a copy.
For an executable, the required form of the "work that uses the
Library" must include any data and utility programs needed for
reproducing the executable from it. However, as a special exception,
the materials to be distributed need not include anything that is
normally distributed (in either source or binary form) with the major
components (compiler, kernel, and so on) of the operating system on
which the executable runs, unless that component itself accompanies
the executable.
It may happen that this requirement contradicts the license
restrictions of other proprietary libraries that do not normally
accompany the operating system. Such a contradiction means you cannot
use both them and the Library together in an executable that you
distribute.
7. You may place library facilities that are a work based on the
Library side-by-side in a single library together with other library
facilities not covered by this License, and distribute such a combined
library, provided that the separate distribution of the work based on
the Library and of the other library facilities is otherwise
permitted, and provided that you do these two things:
a) Accompany the combined library with a copy of the same work
based on the Library, uncombined with any other library
facilities. This must be distributed under the terms of the
Sections above.
b) Give prominent notice with the combined library of the fact
that part of it is a work based on the Library, and explaining
where to find the accompanying uncombined form of the same work.
8. You may not copy, modify, sublicense, link with, or distribute
the Library except as expressly provided under this License. Any
attempt otherwise to copy, modify, sublicense, link with, or
distribute the Library is void, and will automatically terminate your
rights under this License. However, parties who have received copies,
or rights, from you under this License will not have their licenses
terminated so long as such parties remain in full compliance.
9. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Library or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Library (or any work based on the
Library), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Library or works based on it.
10. Each time you redistribute the Library (or any work based on the
Library), the recipient automatically receives a license from the
original licensor to copy, distribute, link with or modify the Library
subject to these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties with
this License.
11. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Library at all. For example, if a patent
license would not permit royalty-free redistribution of the Library by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Library.
If any portion of this section is held invalid or unenforceable under any
particular circumstance, the balance of the section is intended to apply,
and the section as a whole is intended to apply in other circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
12. If the distribution and/or use of the Library is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Library under this License may add
an explicit geographical distribution limitation excluding those countries,
so that distribution is permitted only in or among countries not thus
excluded. In such case, this License incorporates the limitation as if
written in the body of this License.
13. The Free Software Foundation may publish revised and/or new
versions of the Lesser General Public License from time to time.
Such new versions will be similar in spirit to the present version,
but may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Library
specifies a version number of this License which applies to it and
"any later version", you have the option of following the terms and
conditions either of that version or of any later version published by
the Free Software Foundation. If the Library does not specify a
license version number, you may choose any version ever published by
the Free Software Foundation.
14. If you wish to incorporate parts of the Library into other free
programs whose distribution conditions are incompatible with these,
write to the author to ask for permission. For software which is
copyrighted by the Free Software Foundation, write to the Free
Software Foundation; we sometimes make exceptions for this. Our
decision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharing
and reuse of software generally.
NO WARRANTY
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Libraries
If you develop a new library, and you want it to be of the greatest
possible use to the public, we recommend making it free software that
everyone can redistribute and change. You can do so by permitting
redistribution under these terms (or, alternatively, under the terms of the
ordinary General Public License).
To apply these terms, attach the following notices to the library. It is
safest to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least the
"copyright" line and a pointer to where the full notice is found.
<one line to give the library's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Also add information on how to contact you by electronic and paper mail.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the library, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
<signature of Ty Coon>, 1 April 1990
Ty Coon, President of Vice
That's all there is to it!

View File

@@ -1,481 +0,0 @@
GNU LIBRARY GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1991 Free Software Foundation, Inc.
675 Mass Ave, Cambridge, MA 02139, USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
[This is the first released version of the library GPL. It is
numbered 2 because it goes with version 2 of the ordinary GPL.]
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
Licenses are intended to guarantee your freedom to share and change
free software--to make sure the software is free for all its users.
This license, the Library General Public License, applies to some
specially designated Free Software Foundation software, and to any
other libraries whose authors decide to use it. You can use it for
your libraries, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if
you distribute copies of the library, or if you modify it.
For example, if you distribute copies of the library, whether gratis
or for a fee, you must give the recipients all the rights that we gave
you. You must make sure that they, too, receive or can get the source
code. If you link a program with the library, you must provide
complete object files to the recipients so that they can relink them
with the library, after making changes to the library and recompiling
it. And you must show them these terms so they know their rights.
Our method of protecting your rights has two steps: (1) copyright
the library, and (2) offer you this license which gives you legal
permission to copy, distribute and/or modify the library.
Also, for each distributor's protection, we want to make certain
that everyone understands that there is no warranty for this free
library. If the library is modified by someone else and passed on, we
want its recipients to know that what they have is not the original
version, so that any problems introduced by others will not reflect on
the original authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that companies distributing free
software will individually obtain patent licenses, thus in effect
transforming the program into proprietary software. To prevent this,
we have made it clear that any patent must be licensed for everyone's
free use or not licensed at all.
Most GNU software, including some libraries, is covered by the ordinary
GNU General Public License, which was designed for utility programs. This
license, the GNU Library General Public License, applies to certain
designated libraries. This license is quite different from the ordinary
one; be sure to read it in full, and don't assume that anything in it is
the same as in the ordinary license.
The reason we have a separate public license for some libraries is that
they blur the distinction we usually make between modifying or adding to a
program and simply using it. Linking a program with a library, without
changing the library, is in some sense simply using the library, and is
analogous to running a utility program or application program. However, in
a textual and legal sense, the linked executable is a combined work, a
derivative of the original library, and the ordinary General Public License
treats it as such.
Because of this blurred distinction, using the ordinary General
Public License for libraries did not effectively promote software
sharing, because most developers did not use the libraries. We
concluded that weaker conditions might promote sharing better.
However, unrestricted linking of non-free programs would deprive the
users of those programs of all benefit from the free status of the
libraries themselves. This Library General Public License is intended to
permit developers of non-free programs to use free libraries, while
preserving your freedom as a user of such programs to change the free
libraries that are incorporated in them. (We have not seen how to achieve
this as regards changes in header files, but we have achieved it as regards
changes in the actual functions of the Library.) The hope is that this
will lead to faster development of free libraries.
The precise terms and conditions for copying, distribution and
modification follow. Pay close attention to the difference between a
"work based on the library" and a "work that uses the library". The
former contains code derived from the library, while the latter only
works together with the library.
Note that it is possible for a library to be covered by the ordinary
General Public License rather than by this special one.
GNU LIBRARY GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License Agreement applies to any software library which
contains a notice placed by the copyright holder or other authorized
party saying it may be distributed under the terms of this Library
General Public License (also called "this License"). Each licensee is
addressed as "you".
A "library" means a collection of software functions and/or data
prepared so as to be conveniently linked with application programs
(which use some of those functions and data) to form executables.
The "Library", below, refers to any such software library or work
which has been distributed under these terms. A "work based on the
Library" means either the Library or any derivative work under
copyright law: that is to say, a work containing the Library or a
portion of it, either verbatim or with modifications and/or translated
straightforwardly into another language. (Hereinafter, translation is
included without limitation in the term "modification".)
"Source code" for a work means the preferred form of the work for
making modifications to it. For a library, complete source code means
all the source code for all modules it contains, plus any associated
interface definition files, plus the scripts used to control compilation
and installation of the library.
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running a program using the Library is not restricted, and output from
such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for
writing it). Whether that is true depends on what the Library does
and what the program that uses the Library does.
1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an
appropriate copyright notice and disclaimer of warranty; keep intact
all the notices that refer to this License and to the absence of any
warranty; and distribute a copy of this License along with the
Library.
You may charge a fee for the physical act of transferring a copy,
and you may at your option offer warranty protection in exchange for a
fee.
2. You may modify your copy or copies of the Library or any portion
of it, thus forming a work based on the Library, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) The modified work must itself be a software library.
b) You must cause the files modified to carry prominent notices
stating that you changed the files and the date of any change.
c) You must cause the whole of the work to be licensed at no
charge to all third parties under the terms of this License.
d) If a facility in the modified Library refers to a function or a
table of data to be supplied by an application program that uses
the facility, other than as an argument passed when the facility
is invoked, then you must make a good faith effort to ensure that,
in the event an application does not supply such function or
table, the facility still operates, and performs whatever part of
its purpose remains meaningful.
(For example, a function in a library to compute square roots has
a purpose that is entirely well-defined independent of the
application. Therefore, Subsection 2d requires that any
application-supplied function or table used by this function must
be optional: if the application does not supply it, the square
root function must still compute square roots.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Library,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Library, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote
it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Library.
In addition, mere aggregation of another work not based on the Library
with the Library (or with a work based on the Library) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may opt to apply the terms of the ordinary GNU General Public
License instead of this License to a given copy of the Library. To do
this, you must alter all the notices that refer to this License, so
that they refer to the ordinary GNU General Public License, version 2,
instead of to this License. (If a newer version than version 2 of the
ordinary GNU General Public License has appeared, then you can specify
that version instead if you wish.) Do not make any other change in
these notices.
Once this change is made in a given copy, it is irreversible for
that copy, so the ordinary GNU General Public License applies to all
subsequent copies and derivative works made from that copy.
This option is useful when you wish to copy part of the code of
the Library into a program that is not a library.
4. You may copy and distribute the Library (or a portion or
derivative of it, under Section 2) in object code or executable form
under the terms of Sections 1 and 2 above provided that you accompany
it with the complete corresponding machine-readable source code, which
must be distributed under the terms of Sections 1 and 2 above on a
medium customarily used for software interchange.
If distribution of object code is made by offering access to copy
from a designated place, then offering equivalent access to copy the
source code from the same place satisfies the requirement to
distribute the source code, even though third parties are not
compelled to copy the source along with the object code.
5. A program that contains no derivative of any portion of the
Library, but is designed to work with the Library by being compiled or
linked with it, is called a "work that uses the Library". Such a
work, in isolation, is not a derivative work of the Library, and
therefore falls outside the scope of this License.
However, linking a "work that uses the Library" with the Library
creates an executable that is a derivative of the Library (because it
contains portions of the Library), rather than a "work that uses the
library". The executable is therefore covered by this License.
Section 6 states terms for distribution of such executables.
When a "work that uses the Library" uses material from a header file
that is part of the Library, the object code for the work may be a
derivative work of the Library even though the source code is not.
Whether this is true is especially significant if the work can be
linked without the Library, or if the work is itself a library. The
threshold for this to be true is not precisely defined by law.
If such an object file uses only numerical parameters, data
structure layouts and accessors, and small macros and small inline
functions (ten lines or less in length), then the use of the object
file is unrestricted, regardless of whether it is legally a derivative
work. (Executables containing this object code plus portions of the
Library will still fall under Section 6.)
Otherwise, if the work is a derivative of the Library, you may
distribute the object code for the work under the terms of Section 6.
Any executables containing that work also fall under Section 6,
whether or not they are linked directly with the Library itself.
6. As an exception to the Sections above, you may also compile or
link a "work that uses the Library" with the Library to produce a
work containing portions of the Library, and distribute that work
under terms of your choice, provided that the terms permit
modification of the work for the customer's own use and reverse
engineering for debugging such modifications.
You must give prominent notice with each copy of the work that the
Library is used in it and that the Library and its use are covered by
this License. You must supply a copy of this License. If the work
during execution displays copyright notices, you must include the
copyright notice for the Library among them, as well as a reference
directing the user to the copy of this License. Also, you must do one
of these things:
a) Accompany the work with the complete corresponding
machine-readable source code for the Library including whatever
changes were used in the work (which must be distributed under
Sections 1 and 2 above); and, if the work is an executable linked
with the Library, with the complete machine-readable "work that
uses the Library", as object code and/or source code, so that the
user can modify the Library and then relink to produce a modified
executable containing the modified Library. (It is understood
that the user who changes the contents of definitions files in the
Library will not necessarily be able to recompile the application
to use the modified definitions.)
b) Accompany the work with a written offer, valid for at
least three years, to give the same user the materials
specified in Subsection 6a, above, for a charge no more
than the cost of performing this distribution.
c) If distribution of the work is made by offering access to copy
from a designated place, offer equivalent access to copy the above
specified materials from the same place.
d) Verify that the user has already received a copy of these
materials or that you have already sent this user a copy.
For an executable, the required form of the "work that uses the
Library" must include any data and utility programs needed for
reproducing the executable from it. However, as a special exception,
the source code distributed need not include anything that is normally
distributed (in either source or binary form) with the major
components (compiler, kernel, and so on) of the operating system on
which the executable runs, unless that component itself accompanies
the executable.
It may happen that this requirement contradicts the license
restrictions of other proprietary libraries that do not normally
accompany the operating system. Such a contradiction means you cannot
use both them and the Library together in an executable that you
distribute.
7. You may place library facilities that are a work based on the
Library side-by-side in a single library together with other library
facilities not covered by this License, and distribute such a combined
library, provided that the separate distribution of the work based on
the Library and of the other library facilities is otherwise
permitted, and provided that you do these two things:
a) Accompany the combined library with a copy of the same work
based on the Library, uncombined with any other library
facilities. This must be distributed under the terms of the
Sections above.
b) Give prominent notice with the combined library of the fact
that part of it is a work based on the Library, and explaining
where to find the accompanying uncombined form of the same work.
8. You may not copy, modify, sublicense, link with, or distribute
the Library except as expressly provided under this License. Any
attempt otherwise to copy, modify, sublicense, link with, or
distribute the Library is void, and will automatically terminate your
rights under this License. However, parties who have received copies,
or rights, from you under this License will not have their licenses
terminated so long as such parties remain in full compliance.
9. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Library or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Library (or any work based on the
Library), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Library or works based on it.
10. Each time you redistribute the Library (or any work based on the
Library), the recipient automatically receives a license from the
original licensor to copy, distribute, link with or modify the Library
subject to these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
11. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Library at all. For example, if a patent
license would not permit royalty-free redistribution of the Library by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Library.
If any portion of this section is held invalid or unenforceable under any
particular circumstance, the balance of the section is intended to apply,
and the section as a whole is intended to apply in other circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
12. If the distribution and/or use of the Library is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Library under this License may add
an explicit geographical distribution limitation excluding those countries,
so that distribution is permitted only in or among countries not thus
excluded. In such case, this License incorporates the limitation as if
written in the body of this License.
13. The Free Software Foundation may publish revised and/or new
versions of the Library General Public License from time to time.
Such new versions will be similar in spirit to the present version,
but may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Library
specifies a version number of this License which applies to it and
"any later version", you have the option of following the terms and
conditions either of that version or of any later version published by
the Free Software Foundation. If the Library does not specify a
license version number, you may choose any version ever published by
the Free Software Foundation.
14. If you wish to incorporate parts of the Library into other free
programs whose distribution conditions are incompatible with these,
write to the author to ask for permission. For software which is
copyrighted by the Free Software Foundation, write to the Free
Software Foundation; we sometimes make exceptions for this. Our
decision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharing
and reuse of software generally.
NO WARRANTY
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.
END OF TERMS AND CONDITIONS
Appendix: How to Apply These Terms to Your New Libraries
If you develop a new library, and you want it to be of the greatest
possible use to the public, we recommend making it free software that
everyone can redistribute and change. You can do so by permitting
redistribution under these terms (or, alternatively, under the terms of the
ordinary General Public License).
To apply these terms, attach the following notices to the library. It is
safest to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least the
"copyright" line and a pointer to where the full notice is found.
<one line to give the library's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this library; if not, write to the Free
Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
Also add information on how to contact you by electronic and paper mail.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the library, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
<signature of Ty Coon>, 1 April 1990
Ty Coon, President of Vice
That's all there is to it!

View File

@@ -1,8 +0,0 @@
These libraries were compiled using .NET/VC7. The original
sources can be found at ftp://ftp.gtk.org/pub/gtk/v1.2/glib-1.2.10.tar.gz &
ftp://ftp.mozilla.org/pub/mozilla/libraries/source/libIDL-0.6.8.tar.gz.
The patches used to build can be found at
http://bugzilla.mozilla.org/show_bug.cgi?id=123743 .
- cls, 2002/10/18

File diff suppressed because it is too large Load Diff

View File

@@ -1,174 +0,0 @@
/* glibconfig.h.win32 */
/* Handcrafted for Microsoft C. */
#ifndef GLIBCONFIG_H
#define GLIBCONFIG_H
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
#ifdef _MSC_VER
/* Make MSVC more pedantic, this is a recommended pragma list
* from _Win32_Programming_ by Rector and Newcomer.
*/
#pragma warning(error:4002)
#pragma warning(error:4003)
#pragma warning(1:4010)
#pragma warning(error:4013)
#pragma warning(1:4016)
#pragma warning(error:4020)
#pragma warning(error:4021)
#pragma warning(error:4027)
#pragma warning(error:4029)
#pragma warning(error:4033)
#pragma warning(error:4035)
#pragma warning(error:4045)
#pragma warning(error:4047)
#pragma warning(error:4049)
#pragma warning(error:4053)
#pragma warning(error:4071)
#pragma warning(disable:4101)
#pragma warning(error:4150)
#pragma warning(disable:4244) /* No possible loss of data warnings */
#pragma warning(disable:4305) /* No truncation from int to char warnings */
#endif /* _MSC_VER */
#include <limits.h>
#include <float.h>
#define G_MINFLOAT FLT_MIN
#define G_MAXFLOAT FLT_MAX
#define G_MINDOUBLE DBL_MIN
#define G_MAXDOUBLE DBL_MAX
#define G_MINSHORT SHRT_MIN
#define G_MAXSHORT SHRT_MAX
#define G_MININT INT_MIN
#define G_MAXINT INT_MAX
#define G_MINLONG LONG_MIN
#define G_MAXLONG LONG_MAX
typedef signed char gint8;
typedef unsigned char guint8;
typedef signed short gint16;
typedef unsigned short guint16;
typedef signed int gint32;
typedef unsigned int guint32;
#define G_HAVE_GINT64 1
typedef __int64 gint64;
typedef unsigned __int64 guint64;
#define G_GINT64_CONSTANT(val) (val##i64)
#define GPOINTER_TO_INT(p) ((gint)(p))
#define GPOINTER_TO_UINT(p) ((guint)(p))
#define GINT_TO_POINTER(i) ((gpointer)(i))
#define GUINT_TO_POINTER(u) ((gpointer)(u))
#define g_ATEXIT(proc) (atexit (proc))
#define g_memmove(d,s,n) G_STMT_START { memmove ((d), (s), (n)); } G_STMT_END
#define G_HAVE_ALLOCA 1
#define alloca _alloca
#define GLIB_MAJOR_VERSION 1
#define GLIB_MINOR_VERSION 2
#define GLIB_MICRO_VERSION 10
#ifdef __cplusplus
#define G_HAVE_INLINE 1
#else /* !__cplusplus */
#define G_HAVE___INLINE 1
#endif
#define G_THREADS_ENABLED
/*
* The following program can be used to determine the magic values below:
* #include <stdio.h>
* #include <pthread.h>
* main(int argc, char **argv)
* {
* int i;
* pthread_mutex_t m = PTHREAD_MUTEX_INITIALIZER;
* printf ("sizeof (pthread_mutex_t) = %d\n", sizeof (pthread_mutex_t));
* printf ("PTHREAD_MUTEX_INITIALIZER = ");
* for (i = 0; i < sizeof (pthread_mutex_t); i++)
* printf ("%u, ", ((unsigned char *) &m)[i]);
* printf ("\n");
* exit(0);
* }
*/
#define G_THREADS_IMPL_POSIX
typedef struct _GStaticMutex GStaticMutex;
struct _GStaticMutex
{
struct _GMutex *runtime_mutex;
union {
/* The size of the pad array should be sizeof (pthread_mutext_t) */
/* This value corresponds to the 1999-04-07 version of pthreads-win32 */
char pad[4];
double dummy_double;
void *dummy_pointer;
long dummy_long;
} aligned_pad_u;
};
/* This should be NULL followed by the bytes in PTHREAD_MUTEX_INITIALIZER */
#define G_STATIC_MUTEX_INIT { NULL, { { 255, 255, 255, 255 } } }
#define g_static_mutex_get_mutex(mutex) \
(g_thread_use_default_impl ? ((GMutex*) &((mutex)->aligned_pad_u)) : \
g_static_mutex_get_mutex_impl (&((mutex)->runtime_mutex)))
#define G_BYTE_ORDER G_LITTLE_ENDIAN
#define GINT16_TO_LE(val) ((gint16) (val))
#define GUINT16_TO_LE(val) ((guint16) (val))
#define GINT16_TO_BE(val) ((gint16) GUINT16_SWAP_LE_BE (val))
#define GUINT16_TO_BE(val) (GUINT16_SWAP_LE_BE (val))
#define GINT32_TO_LE(val) ((gint32) (val))
#define GUINT32_TO_LE(val) ((guint32) (val))
#define GINT32_TO_BE(val) ((gint32) GUINT32_SWAP_LE_BE (val))
#define GUINT32_TO_BE(val) (GUINT32_SWAP_LE_BE (val))
#define GINT64_TO_LE(val) ((gint64) (val))
#define GUINT64_TO_LE(val) ((guint64) (val))
#define GINT64_TO_BE(val) ((gint64) GUINT64_SWAP_LE_BE (val))
#define GUINT64_TO_BE(val) (GUINT64_SWAP_LE_BE (val))
#define GLONG_TO_LE(val) ((glong) GINT32_TO_LE (val))
#define GULONG_TO_LE(val) ((gulong) GUINT32_TO_LE (val))
#define GLONG_TO_BE(val) ((glong) GINT32_TO_BE (val))
#define GULONG_TO_BE(val) ((gulong) GUINT32_TO_BE (val))
#define GINT_TO_LE(val) ((gint) GINT32_TO_LE (val))
#define GUINT_TO_LE(val) ((guint) GUINT32_TO_LE (val))
#define GINT_TO_BE(val) ((gint) GINT32_TO_BE (val))
#define GUINT_TO_BE(val) ((guint) GUINT32_TO_BE (val))
#define GLIB_SYSDEF_POLLIN = 1
#define GLIB_SYSDEF_POLLOUT = 4
#define GLIB_SYSDEF_POLLPRI = 2
#define GLIB_SYSDEF_POLLERR = 8
#define GLIB_SYSDEF_POLLHUP = 16
#define GLIB_SYSDEF_POLLNVAL = 32
#define G_HAVE_WCHAR_H 1
#define G_HAVE_WCTYPE_H 1
/* Define if this is Win32, possibly using the Cygwin emulation layer. */
#define WIN32 1
/* Define if this is Win32 without Cygwin. */
#define NATIVE_WIN32 1
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* GLIBCONFIG_H */

View File

@@ -1,851 +0,0 @@
/**************************************************************************
IDL.h (IDL parse tree and namespace components)
Copyright (C) 1998, 1999 Andrew T. Veliath
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this library; if not, write to the Free
Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
$Id: IDL.h,v 1.1 2002-10-18 08:31:49 seawood%netscape.com Exp $
***************************************************************************/
#ifndef __IDL_H
#define __IDL_H
#include <glib.h>
/* Try to find wchar_t support */
#include <stdlib.h>
#if 1 /* HAVE_WCHAR_H */
# include <wchar.h>
#endif
#if 0 /* HAVE_WCSTR_H */
# include <wcstr.h>
#endif
#ifdef __cplusplus
extern "C" {
#endif
/* version */
#define LIBIDL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))
#define LIBIDL_MAJOR_VERSION 0
#define LIBIDL_MINOR_VERSION 6
#define LIBIDL_MICRO_VERSION 8
#define LIBIDL_VERSION_CODE LIBIDL_VERSION(0,6,8)
/* miscellaneous constants */
#define IDL_SUCCESS 0
#define IDL_ERROR 1
#define IDL_WARNING1 2
#define IDL_WARNING2 3
#define IDL_WARNING3 4
#define IDL_WARNINGMAX IDL_WARNING3
/* general parse flags */
#define IDLF_VERBOSE (1UL << 0)
#define IDLF_NO_EVAL_CONST (1UL << 1)
#define IDLF_COMBINE_REOPENED_MODULES (1UL << 2)
#define IDLF_PREFIX_FILENAME (1UL << 3)
#define IDLF_IGNORE_FORWARDS (1UL << 4)
#define IDLF_PEDANTIC (1UL << 5)
#define IDLF_INHIBIT_TAG_ONLY (1UL << 6)
#define IDLF_INHIBIT_INCLUDES (1UL << 7)
/* syntax extension parse flags */
#define IDLF_TYPECODES (1UL << 16)
#define IDLF_XPIDL (1UL << 17)
#define IDLF_PROPERTIES (1UL << 18)
#define IDLF_CODEFRAGS (1UL << 19)
/* declaration specification flags */
#define IDLF_DECLSPEC_EXIST (1UL << 0)
#define IDLF_DECLSPEC_INHIBIT (1UL << 1)
/* output flags */
#define IDLF_OUTPUT_NO_NEWLINES (1UL << 0)
#define IDLF_OUTPUT_NO_QUALIFY_IDENTS (1UL << 1)
#define IDLF_OUTPUT_PROPERTIES (1UL << 2)
#define IDLF_OUTPUT_CODEFRAGS (1UL << 3)
#ifdef _WIN32
# define IDL_EXPORT __declspec (dllexport)
# define IDL_IMPORT __declspec (dllimport)
#else
# define IDL_EXPORT /* empty */
# define IDL_IMPORT extern
#endif
/* type casting checks */
#define IDL_check_cast_enable(boolean) do { \
IDL_IMPORT int __IDL_check_type_casts; \
__IDL_check_type_casts = (boolean); \
} while (0)
#define IDL_CHECK_CAST(tree, thetype, name) \
(IDL_check_type_cast(tree, thetype, \
__FILE__, __LINE__, \
G_GNUC_PRETTY_FUNCTION)->u.name)
#ifdef G_HAVE_GINT64
# if G_MAXLONG > 0xffffffffUL
# define IDL_LL "l"
# else
# define IDL_LL "ll"
# endif
typedef gint64 IDL_longlong_t;
typedef guint64 IDL_ulonglong_t;
#else
# define IDL_LL "l"
typedef long IDL_longlong_t;
typedef unsigned long IDL_ulonglong_t;
# warning 64-bit integer type not available, using 32-bit instead
#endif /* G_HAVE_GINT64 */
typedef unsigned int IDL_declspec_t;
typedef struct _IDL_tree_node IDL_tree_node;
typedef struct _IDL_tree_node * IDL_tree;
struct _IDL_LIST {
IDL_tree data;
IDL_tree prev;
IDL_tree next;
IDL_tree _tail; /* Internal use, may not be valid */
};
#define IDL_LIST(a) IDL_CHECK_CAST(a, IDLN_LIST, idl_list)
extern IDL_tree IDL_list_new (IDL_tree data);
extern IDL_tree IDL_list_concat (IDL_tree orig,
IDL_tree append);
extern IDL_tree IDL_list_remove (IDL_tree list,
IDL_tree p);
extern int IDL_list_length (IDL_tree list);
extern IDL_tree IDL_list_nth (IDL_tree list,
int n);
struct _IDL_GENTREE {
IDL_tree data;
GHashTable *siblings;
GHashTable *children;
GHashFunc hash_func;
GCompareFunc key_compare_func;
IDL_tree _import; /* Internal use, do not recurse */
char *_cur_prefix; /* Internal use */
};
#define IDL_GENTREE(a) IDL_CHECK_CAST(a, IDLN_GENTREE, idl_gentree)
extern IDL_tree IDL_gentree_new (GHashFunc hash_func,
GCompareFunc key_compare_func,
IDL_tree data);
extern IDL_tree IDL_gentree_new_sibling (IDL_tree from,
IDL_tree data);
extern IDL_tree IDL_gentree_chain_sibling (IDL_tree from,
IDL_tree data);
extern IDL_tree IDL_gentree_chain_child (IDL_tree from,
IDL_tree data);
struct _IDL_INTEGER {
IDL_longlong_t value;
};
#define IDL_INTEGER(a) IDL_CHECK_CAST(a, IDLN_INTEGER, idl_integer)
extern IDL_tree IDL_integer_new (IDL_longlong_t value);
struct _IDL_STRING {
char *value;
};
#define IDL_STRING(a) IDL_CHECK_CAST(a, IDLN_STRING, idl_string)
extern IDL_tree IDL_string_new (char *value);
struct _IDL_WIDE_STRING {
wchar_t *value;
};
#define IDL_WIDE_STRING(a) IDL_CHECK_CAST(a, IDLN_WIDE_STRING, idl_wide_string)
extern IDL_tree IDL_wide_string_new (wchar_t *value);
struct _IDL_CHAR {
char *value;
};
#define IDL_CHAR(a) IDL_CHECK_CAST(a, IDLN_CHAR, idl_char)
extern IDL_tree IDL_char_new (char *value);
struct _IDL_WIDE_CHAR {
wchar_t *value;
};
#define IDL_WIDE_CHAR(a) IDL_CHECK_CAST(a, IDLN_WIDE_CHAR, idl_wide_char)
extern IDL_tree IDL_wide_char_new (wchar_t *value);
struct _IDL_FIXED {
char *value;
};
#define IDL_FIXED(a) IDL_CHECK_CAST(a, IDLN_FIXED, idl_fixed)
extern IDL_tree IDL_fixed_new (char *value);
struct _IDL_FLOAT {
double value;
};
#define IDL_FLOAT(a) IDL_CHECK_CAST(a, IDLN_FLOAT, idl_float)
extern IDL_tree IDL_float_new (double value);
struct _IDL_BOOLEAN {
unsigned value;
};
#define IDL_BOOLEAN(a) IDL_CHECK_CAST(a, IDLN_BOOLEAN, idl_boolean)
extern IDL_tree IDL_boolean_new (unsigned value);
struct _IDL_IDENT {
char *str;
char *repo_id;
GSList *comments;
IDL_tree _ns_ref; /* Internal use, do not recurse */
unsigned _flags; /* Internal use */
#define IDLF_IDENT_CASE_MISMATCH_HIT (1UL << 0)
};
#define IDL_IDENT(a) IDL_CHECK_CAST(a, IDLN_IDENT, idl_ident)
#define IDL_IDENT_TO_NS(a) IDL_CHECK_CAST(a, IDLN_IDENT, idl_ident._ns_ref)
#define IDL_IDENT_REPO_ID(a) IDL_CHECK_CAST(a, IDLN_IDENT, idl_ident.repo_id)
extern IDL_tree IDL_ident_new (char *str);
extern void IDL_queue_new_ident_comment (const char *str);
enum IDL_float_type {
IDL_FLOAT_TYPE_FLOAT,
IDL_FLOAT_TYPE_DOUBLE,
IDL_FLOAT_TYPE_LONGDOUBLE
};
struct _IDL_TYPE_FLOAT {
enum IDL_float_type f_type;
};
#define IDL_TYPE_FLOAT(a) IDL_CHECK_CAST(a, IDLN_TYPE_FLOAT, idl_type_float)
extern IDL_tree IDL_type_float_new (enum IDL_float_type f_type);
struct _IDL_TYPE_FIXED {
IDL_tree positive_int_const;
IDL_tree integer_lit;
};
#define IDL_TYPE_FIXED(a) IDL_CHECK_CAST(a, IDLN_TYPE_FIXED, idl_type_fixed)
extern IDL_tree IDL_type_fixed_new (IDL_tree positive_int_const,
IDL_tree integer_lit);
enum IDL_integer_type {
IDL_INTEGER_TYPE_SHORT,
IDL_INTEGER_TYPE_LONG,
IDL_INTEGER_TYPE_LONGLONG
};
struct _IDL_TYPE_INTEGER {
unsigned f_signed : 1;
enum IDL_integer_type f_type;
};
#define IDL_TYPE_INTEGER(a) IDL_CHECK_CAST(a, IDLN_TYPE_INTEGER, idl_type_integer)
extern IDL_tree IDL_type_integer_new (unsigned f_signed,
enum IDL_integer_type f_type);
extern IDL_tree IDL_type_char_new (void);
extern IDL_tree IDL_type_wide_char_new (void);
extern IDL_tree IDL_type_boolean_new (void);
extern IDL_tree IDL_type_octet_new (void);
extern IDL_tree IDL_type_any_new (void);
extern IDL_tree IDL_type_object_new (void);
extern IDL_tree IDL_type_typecode_new (void);
struct _IDL_TYPE_STRING {
IDL_tree positive_int_const;
};
#define IDL_TYPE_STRING(a) IDL_CHECK_CAST(a, IDLN_TYPE_STRING, idl_type_string)
extern IDL_tree IDL_type_string_new (IDL_tree positive_int_const);
struct _IDL_TYPE_WIDE_STRING {
IDL_tree positive_int_const;
};
#define IDL_TYPE_WIDE_STRING(a) IDL_CHECK_CAST(a, IDLN_TYPE_WIDE_STRING, idl_type_wide_string)
extern IDL_tree IDL_type_wide_string_new (IDL_tree positive_int_const);
struct _IDL_TYPE_ENUM {
IDL_tree ident;
IDL_tree enumerator_list;
};
#define IDL_TYPE_ENUM(a) IDL_CHECK_CAST(a, IDLN_TYPE_ENUM, idl_type_enum)
extern IDL_tree IDL_type_enum_new (IDL_tree ident,
IDL_tree enumerator_list);
struct _IDL_TYPE_ARRAY {
IDL_tree ident;
IDL_tree size_list;
};
#define IDL_TYPE_ARRAY(a) IDL_CHECK_CAST(a, IDLN_TYPE_ARRAY, idl_type_array)
extern IDL_tree IDL_type_array_new (IDL_tree ident,
IDL_tree size_list);
struct _IDL_TYPE_SEQUENCE {
IDL_tree simple_type_spec;
IDL_tree positive_int_const;
};
#define IDL_TYPE_SEQUENCE(a) IDL_CHECK_CAST(a, IDLN_TYPE_SEQUENCE, idl_type_sequence)
extern IDL_tree IDL_type_sequence_new (IDL_tree simple_type_spec,
IDL_tree positive_int_const);
struct _IDL_TYPE_STRUCT {
IDL_tree ident;
IDL_tree member_list;
};
#define IDL_TYPE_STRUCT(a) IDL_CHECK_CAST(a, IDLN_TYPE_STRUCT, idl_type_struct)
extern IDL_tree IDL_type_struct_new (IDL_tree ident,
IDL_tree member_list);
struct _IDL_TYPE_UNION {
IDL_tree ident;
IDL_tree switch_type_spec;
IDL_tree switch_body;
};
#define IDL_TYPE_UNION(a) IDL_CHECK_CAST(a, IDLN_TYPE_UNION, idl_type_union)
extern IDL_tree IDL_type_union_new (IDL_tree ident,
IDL_tree switch_type_spec,
IDL_tree switch_body);
struct _IDL_MEMBER {
IDL_tree type_spec;
IDL_tree dcls;
};
#define IDL_MEMBER(a) IDL_CHECK_CAST(a, IDLN_MEMBER, idl_member)
extern IDL_tree IDL_member_new (IDL_tree type_spec,
IDL_tree dcls);
struct _IDL_NATIVE {
IDL_tree ident;
char *user_type; /* XPIDL extension */
};
#define IDL_NATIVE(a) IDL_CHECK_CAST(a, IDLN_NATIVE, idl_native)
extern IDL_tree IDL_native_new (IDL_tree ident);
struct _IDL_TYPE_DCL {
IDL_tree type_spec;
IDL_tree dcls;
};
#define IDL_TYPE_DCL(a) IDL_CHECK_CAST(a, IDLN_TYPE_DCL, idl_type_dcl)
extern IDL_tree IDL_type_dcl_new (IDL_tree type_spec,
IDL_tree dcls);
struct _IDL_CONST_DCL {
IDL_tree const_type;
IDL_tree ident;
IDL_tree const_exp;
};
#define IDL_CONST_DCL(a) IDL_CHECK_CAST(a, IDLN_CONST_DCL, idl_const_dcl)
extern IDL_tree IDL_const_dcl_new (IDL_tree const_type,
IDL_tree ident,
IDL_tree const_exp);
struct _IDL_EXCEPT_DCL {
IDL_tree ident;
IDL_tree members;
};
#define IDL_EXCEPT_DCL(a) IDL_CHECK_CAST(a, IDLN_EXCEPT_DCL, idl_except_dcl)
extern IDL_tree IDL_except_dcl_new (IDL_tree ident,
IDL_tree members);
struct _IDL_ATTR_DCL {
unsigned f_readonly : 1;
IDL_tree param_type_spec;
IDL_tree simple_declarations;
};
#define IDL_ATTR_DCL(a) IDL_CHECK_CAST(a, IDLN_ATTR_DCL, idl_attr_dcl)
extern IDL_tree IDL_attr_dcl_new (unsigned f_readonly,
IDL_tree param_type_spec,
IDL_tree simple_declarations);
struct _IDL_OP_DCL {
unsigned __f_noscript : 1; /* Deprecated */
unsigned f_oneway : 1;
/* XPIDL extension (varags) */
unsigned f_varargs : 1;
IDL_tree op_type_spec;
IDL_tree ident;
IDL_tree parameter_dcls;
IDL_tree raises_expr;
IDL_tree context_expr;
};
#define IDL_OP_DCL(a) IDL_CHECK_CAST(a, IDLN_OP_DCL, idl_op_dcl)
extern IDL_tree IDL_op_dcl_new (unsigned f_oneway,
IDL_tree op_type_spec,
IDL_tree ident,
IDL_tree parameter_dcls,
IDL_tree raises_expr,
IDL_tree context_expr);
enum IDL_param_attr {
IDL_PARAM_IN,
IDL_PARAM_OUT,
IDL_PARAM_INOUT
};
struct _IDL_PARAM_DCL {
enum IDL_param_attr attr;
IDL_tree param_type_spec;
IDL_tree simple_declarator;
};
#define IDL_PARAM_DCL(a) IDL_CHECK_CAST(a, IDLN_PARAM_DCL, idl_param_dcl)
extern IDL_tree IDL_param_dcl_new (enum IDL_param_attr attr,
IDL_tree param_type_spec,
IDL_tree simple_declarator);
struct _IDL_CASE_STMT {
IDL_tree labels;
IDL_tree element_spec;
};
#define IDL_CASE_STMT(a) IDL_CHECK_CAST(a, IDLN_CASE_STMT, idl_case_stmt)
extern IDL_tree IDL_case_stmt_new (IDL_tree labels,
IDL_tree element_spec);
struct _IDL_INTERFACE {
IDL_tree ident;
IDL_tree inheritance_spec;
IDL_tree body;
};
#define IDL_INTERFACE(a) IDL_CHECK_CAST(a, IDLN_INTERFACE, idl_interface)
extern IDL_tree IDL_interface_new (IDL_tree ident,
IDL_tree inheritance_spec,
IDL_tree body);
struct _IDL_FORWARD_DCL {
IDL_tree ident;
};
#define IDL_FORWARD_DCL(a) IDL_CHECK_CAST(a, IDLN_FORWARD_DCL, idl_forward_dcl)
extern IDL_tree IDL_forward_dcl_new (IDL_tree ident);
struct _IDL_MODULE {
IDL_tree ident;
IDL_tree definition_list;
};
#define IDL_MODULE(a) IDL_CHECK_CAST(a, IDLN_MODULE, idl_module)
extern IDL_tree IDL_module_new (IDL_tree ident,
IDL_tree definition_list);
enum IDL_binop {
IDL_BINOP_OR,
IDL_BINOP_XOR,
IDL_BINOP_AND,
IDL_BINOP_SHR,
IDL_BINOP_SHL,
IDL_BINOP_ADD,
IDL_BINOP_SUB,
IDL_BINOP_MULT,
IDL_BINOP_DIV,
IDL_BINOP_MOD
};
struct _IDL_BINOP {
enum IDL_binop op;
IDL_tree left, right;
};
#define IDL_BINOP(a) IDL_CHECK_CAST(a, IDLN_BINOP, idl_binop)
extern IDL_tree IDL_binop_new (enum IDL_binop op,
IDL_tree left,
IDL_tree right);
enum IDL_unaryop {
IDL_UNARYOP_PLUS,
IDL_UNARYOP_MINUS,
IDL_UNARYOP_COMPLEMENT
};
struct _IDL_UNARYOP {
enum IDL_unaryop op;
IDL_tree operand;
};
#define IDL_UNARYOP(a) IDL_CHECK_CAST(a, IDLN_UNARYOP, idl_unaryop)
extern IDL_tree IDL_unaryop_new (enum IDL_unaryop op,
IDL_tree operand);
/* XPIDL code fragments extension. */
struct _IDL_CODEFRAG {
char *desc;
GSList *lines;
};
#define IDL_CODEFRAG(a) IDL_CHECK_CAST(a, IDLN_CODEFRAG, idl_codefrag)
extern IDL_tree IDL_codefrag_new (char *desc,
GSList *lines);
/*
* IDL_tree_type - Enumerations of node types
*
* Note this enumerator list is subject to change in the future. A program should not need
* more than a recompilation to adjust for a change in this list, so instead of using a
* statically initialized jumptable, allocate an array of size IDLN_LAST and assign the
* elements manually.
*/
typedef enum {
IDLN_NONE,
IDLN_ANY,
IDLN_LIST,
IDLN_GENTREE,
IDLN_INTEGER,
IDLN_STRING,
IDLN_WIDE_STRING,
IDLN_CHAR,
IDLN_WIDE_CHAR,
IDLN_FIXED,
IDLN_FLOAT,
IDLN_BOOLEAN,
IDLN_IDENT,
IDLN_TYPE_DCL,
IDLN_CONST_DCL,
IDLN_EXCEPT_DCL,
IDLN_ATTR_DCL,
IDLN_OP_DCL,
IDLN_PARAM_DCL,
IDLN_FORWARD_DCL,
IDLN_TYPE_INTEGER,
IDLN_TYPE_FLOAT,
IDLN_TYPE_FIXED,
IDLN_TYPE_CHAR,
IDLN_TYPE_WIDE_CHAR,
IDLN_TYPE_STRING,
IDLN_TYPE_WIDE_STRING,
IDLN_TYPE_BOOLEAN,
IDLN_TYPE_OCTET,
IDLN_TYPE_ANY,
IDLN_TYPE_OBJECT,
IDLN_TYPE_TYPECODE,
IDLN_TYPE_ENUM,
IDLN_TYPE_SEQUENCE,
IDLN_TYPE_ARRAY,
IDLN_TYPE_STRUCT,
IDLN_TYPE_UNION,
IDLN_MEMBER,
IDLN_NATIVE,
IDLN_CASE_STMT,
IDLN_INTERFACE,
IDLN_MODULE,
IDLN_BINOP,
IDLN_UNARYOP,
IDLN_CODEFRAG,
IDLN_LAST
} IDL_tree_type;
IDL_IMPORT const char * IDL_tree_type_names[];
struct _IDL_tree_node {
IDL_tree_type _type;
IDL_tree up; /* Do not recurse */
IDL_declspec_t declspec;
GHashTable *properties;
int refs;
char *_file; /* Internal use */
int _line; /* Internal use */
union {
struct _IDL_LIST idl_list;
struct _IDL_GENTREE idl_gentree;
struct _IDL_INTEGER idl_integer;
struct _IDL_STRING idl_string;
struct _IDL_WIDE_STRING idl_wide_string;
struct _IDL_CHAR idl_char;
struct _IDL_WIDE_CHAR idl_wide_char;
struct _IDL_FIXED idl_fixed;
struct _IDL_FLOAT idl_float;
struct _IDL_BOOLEAN idl_boolean;
struct _IDL_IDENT idl_ident;
struct _IDL_TYPE_DCL idl_type_dcl;
struct _IDL_CONST_DCL idl_const_dcl;
struct _IDL_EXCEPT_DCL idl_except_dcl;
struct _IDL_ATTR_DCL idl_attr_dcl;
struct _IDL_OP_DCL idl_op_dcl;
struct _IDL_PARAM_DCL idl_param_dcl;
struct _IDL_FORWARD_DCL idl_forward_dcl;
struct _IDL_TYPE_FLOAT idl_type_float;
struct _IDL_TYPE_FIXED idl_type_fixed;
struct _IDL_TYPE_INTEGER idl_type_integer;
struct _IDL_TYPE_ENUM idl_type_enum;
struct _IDL_TYPE_STRING idl_type_string;
struct _IDL_TYPE_WIDE_STRING idl_type_wide_string;
struct _IDL_TYPE_SEQUENCE idl_type_sequence;
struct _IDL_TYPE_ARRAY idl_type_array;
struct _IDL_TYPE_STRUCT idl_type_struct;
struct _IDL_TYPE_UNION idl_type_union;
struct _IDL_MEMBER idl_member;
struct _IDL_NATIVE idl_native;
struct _IDL_CASE_STMT idl_case_stmt;
struct _IDL_INTERFACE idl_interface;
struct _IDL_MODULE idl_module;
struct _IDL_BINOP idl_binop;
struct _IDL_UNARYOP idl_unaryop;
struct _IDL_CODEFRAG idl_codefrag;
} u;
/* Fields for application use */
guint32 flags;
gpointer data;
};
#define IDL_NODE_TYPE(a) ((a)->_type)
#define IDL_NODE_TYPE_NAME(a) ((a)?IDL_tree_type_names[IDL_NODE_TYPE(a)]:"NULL")
#define IDL_NODE_UP(a) ((a)->up)
#define IDL_NODE_PROPERTIES(a) ((a)->properties)
#define IDL_NODE_DECLSPEC(a) ((a)->declspec)
#define IDL_NODE_REFS(a) ((a)->refs)
#define IDL_NODE_IS_LITERAL(a) \
(IDL_NODE_TYPE(a) == IDLN_INTEGER || \
IDL_NODE_TYPE(a) == IDLN_STRING || \
IDL_NODE_TYPE(a) == IDLN_WIDE_STRING || \
IDL_NODE_TYPE(a) == IDLN_CHAR || \
IDL_NODE_TYPE(a) == IDLN_WIDE_CHAR || \
IDL_NODE_TYPE(a) == IDLN_FIXED || \
IDL_NODE_TYPE(a) == IDLN_FLOAT || \
IDL_NODE_TYPE(a) == IDLN_BOOLEAN)
#define IDL_NODE_IS_TYPE(a) \
(IDL_NODE_TYPE(a) == IDLN_TYPE_INTEGER || \
IDL_NODE_TYPE(a) == IDLN_TYPE_STRING || \
IDL_NODE_TYPE(a) == IDLN_TYPE_WIDE_STRING || \
IDL_NODE_TYPE(a) == IDLN_TYPE_CHAR || \
IDL_NODE_TYPE(a) == IDLN_TYPE_WIDE_CHAR || \
IDL_NODE_TYPE(a) == IDLN_TYPE_FIXED || \
IDL_NODE_TYPE(a) == IDLN_TYPE_FLOAT || \
IDL_NODE_TYPE(a) == IDLN_TYPE_BOOLEAN || \
IDL_NODE_TYPE(a) == IDLN_TYPE_OCTET || \
IDL_NODE_TYPE(a) == IDLN_TYPE_ANY || \
IDL_NODE_TYPE(a) == IDLN_TYPE_OBJECT || \
IDL_NODE_TYPE(a) == IDLN_TYPE_TYPECODE || \
IDL_NODE_TYPE(a) == IDLN_TYPE_ENUM || \
IDL_NODE_TYPE(a) == IDLN_TYPE_ARRAY || \
IDL_NODE_TYPE(a) == IDLN_TYPE_SEQUENCE || \
IDL_NODE_TYPE(a) == IDLN_TYPE_STRUCT || \
IDL_NODE_TYPE(a) == IDLN_TYPE_UNION)
#define IDL_NODE_IS_SCOPED(a) \
(IDL_NODE_TYPE(a) == IDLN_IDENT || \
IDL_NODE_TYPE(a) == IDLN_INTERFACE || \
IDL_NODE_TYPE(a) == IDLN_MODULE || \
IDL_NODE_TYPE(a) == IDLN_EXCEPT_DCL || \
IDL_NODE_TYPE(a) == IDLN_OP_DCL || \
IDL_NODE_TYPE(a) == IDLN_TYPE_ENUM || \
IDL_NODE_TYPE(a) == IDLN_TYPE_STRUCT || \
IDL_NODE_TYPE(a) == IDLN_TYPE_UNION)
typedef struct _IDL_ns * IDL_ns;
struct _IDL_ns {
IDL_tree global;
IDL_tree file;
IDL_tree current;
GHashTable *inhibits;
GHashTable *filename_hash;
};
#define IDL_NS(a) (*(a))
typedef enum {
IDL_INPUT_REASON_INIT,
IDL_INPUT_REASON_FILL,
IDL_INPUT_REASON_ABORT,
IDL_INPUT_REASON_FINISH
} IDL_input_reason;
union IDL_input_data {
struct {
const char *filename;
} init;
struct {
char *buffer;
size_t max_size;
} fill;
};
typedef int (*IDL_input_callback) (IDL_input_reason reason,
union IDL_input_data *data,
gpointer user_data);
typedef int (*IDL_msg_callback) (int level,
int num,
int line,
const char *filename,
const char *message);
typedef struct _IDL_tree_func_state IDL_tree_func_state;
typedef struct _IDL_tree_func_data IDL_tree_func_data;
/* Traversal state data. Recursive walks chain states. */
struct _IDL_tree_func_state {
IDL_tree_func_state *up;
IDL_tree start;
IDL_tree_func_data *bottom;
};
/* This holds a list of the up hierarchy traversed, beginning from traversal. This is
* useful since nodes referenced after initial definition will have a different traversal
* path than the actual up path. */
struct _IDL_tree_func_data {
IDL_tree_func_state *state;
IDL_tree_func_data *up;
IDL_tree tree;
gint step;
gpointer data; /* Application data */
};
typedef gboolean (*IDL_tree_func) (IDL_tree_func_data *tnfd,
gpointer user_data);
extern IDL_tree IDL_check_type_cast (const IDL_tree var,
IDL_tree_type type,
const char *file,
int line,
const char *function);
extern const char * IDL_get_libver_string (void);
extern const char * IDL_get_IDLver_string (void);
extern int IDL_parse_filename (const char *filename,
const char *cpp_args,
IDL_msg_callback msg_cb,
IDL_tree *tree, IDL_ns *ns,
unsigned long parse_flags,
int max_msg_level);
extern int IDL_parse_filename_with_input (const char *filename,
IDL_input_callback input_cb,
gpointer input_cb_user_data,
IDL_msg_callback msg_cb,
IDL_tree *tree, IDL_ns *ns,
unsigned long parse_flags,
int max_msg_level);
extern int IDL_ns_prefix (IDL_ns ns,
const char *s);
extern void IDL_ns_ID (IDL_ns ns,
const char *s);
extern void IDL_ns_version (IDL_ns ns,
const char *s);
extern int IDL_inhibit_get (void);
extern void IDL_inhibit_push (void);
extern void IDL_inhibit_pop (void);
extern void IDL_file_set (const char *filename,
int line);
extern void IDL_file_get (const char **filename,
int *line);
extern IDL_tree IDL_get_parent_node (IDL_tree p,
IDL_tree_type type,
int *scope_levels);
extern IDL_tree IDL_tree_get_scope (IDL_tree p);
extern int IDL_tree_get_node_info (IDL_tree tree,
char **who,
char **what);
extern void IDL_tree_error (IDL_tree p,
const char *fmt,
...)
G_GNUC_PRINTF (2, 3);
extern void IDL_tree_warning (IDL_tree p,
int level,
const char *fmt,
...)
G_GNUC_PRINTF (3, 4);
extern const char * IDL_tree_property_get (IDL_tree tree,
const char *key);
extern void IDL_tree_property_set (IDL_tree tree,
const char *key,
const char *value);
extern gboolean IDL_tree_property_remove (IDL_tree tree,
const char *key);
extern void IDL_tree_properties_copy (IDL_tree from_tree,
IDL_tree to_tree);
extern void IDL_tree_remove_inhibits (IDL_tree *tree,
IDL_ns ns);
extern void IDL_tree_walk (IDL_tree p,
IDL_tree_func_data *current,
IDL_tree_func pre_tree_func,
IDL_tree_func post_tree_func,
gpointer user_data);
extern void IDL_tree_walk_in_order (IDL_tree p,
IDL_tree_func tree_func,
gpointer user_data);
extern void IDL_tree_free (IDL_tree root);
extern void IDL_tree_to_IDL (IDL_tree p,
IDL_ns ns,
FILE *output,
unsigned long output_flags);
extern GString * IDL_tree_to_IDL_string (IDL_tree p,
IDL_ns ns,
unsigned long output_flags);
extern gchar * IDL_do_escapes (const char *s);
extern IDL_tree IDL_resolve_const_exp (IDL_tree p,
IDL_tree_type type);
extern IDL_ns IDL_ns_new (void);
extern void IDL_ns_free (IDL_ns ns);
extern IDL_tree IDL_ns_resolve_this_scope_ident (IDL_ns ns,
IDL_tree scope,
IDL_tree ident);
extern IDL_tree IDL_ns_resolve_ident (IDL_ns ns,
IDL_tree ident);
extern IDL_tree IDL_ns_lookup_this_scope (IDL_ns ns,
IDL_tree scope,
IDL_tree ident,
gboolean *conflict);
extern IDL_tree IDL_ns_lookup_cur_scope (IDL_ns ns,
IDL_tree ident,
gboolean *conflict);
extern IDL_tree IDL_ns_place_new (IDL_ns ns,
IDL_tree ident);
extern void IDL_ns_push_scope (IDL_ns ns,
IDL_tree ident);
extern void IDL_ns_pop_scope (IDL_ns ns);
extern IDL_tree IDL_ns_qualified_ident_new (IDL_tree nsid);
extern gchar * IDL_ns_ident_to_qstring (IDL_tree ns_ident,
const char *join,
int scope_levels);
extern int IDL_ns_scope_levels_from_here (IDL_ns ns,
IDL_tree ident,
IDL_tree parent);
extern gchar * IDL_ns_ident_make_repo_id (IDL_ns ns,
IDL_tree p,
const char *p_prefix,
int *major,
int *minor);
#ifdef __cplusplus
}
#endif
#endif /* __IDL_H */

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

View File

@@ -1,40 +0,0 @@
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Author" CONTENT="Rick Elliott">
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
<TITLE>Product Branding Issues</TITLE>
</HEAD>
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
<H3>
Product Branding Instructions</H3>
Under the terms of the Unlimited Localization Program, you must remove
or replace all trademarked Netscape terms, brand names, icons, images,
etc.&nbsp; These trademarks are listed on the page found at the following
URL:
<P><A HREF="http://home.netscape.com/misc/trademarks.html#trademarks">http://home.netscape.com/misc/trademarks.html#trademarks</A>
<P>Please refer to that page for details.&nbsp; You may not release a localized
version of the Netscape Communicator with these trademarks left in the
product.
<BR>&nbsp;
<CENTER><TABLE COLS=2 WIDTH="50%" >
<TR>
<TD>
<CENTER>[<A HREF="usingKit.html#branding">BACK</A>]</CENTER>
</TD>
<TD>
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
</TD>
</TR>
</TABLE></CENTER>
<CENTER><BR>
<FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape Communications
Corp. All Rights Reserved</FONT></FONT></CENTER>
</BODY>
</HTML>

View File

@@ -1,100 +0,0 @@
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Author" CONTENT="Rick Elliott">
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
<TITLE>Getting Started</TITLE>
</HEAD>
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
<H2>
<A NAME="getting started"></A>2. Getting Started</H2>
Before you can begin using the Windows Installer Localization Kit, you
must install it and setup your working directories. This is a simple matter
of unzipping the compressed kit file(s) into the proper directories. Your
system must also meet certain requirements to run the tools needed to perform
the localization steps described below.
<P>
<HR WIDTH="50%">
<H3>
<A NAME="sysreqs"></A>System Requirements</H3>
There few system requirements for the kit in the strictest sense; however,
your choice of tools will have their own set of requirements.&nbsp; The
most likely minimum configuration will be as follows:
<UL>
<LI>
100% IBM compatible PC</LI>
<LI>
Pentium<SUP><FONT SIZE=-1>&reg;</FONT></SUP> processor</LI>
<LI>
Microsoft<SUP><FONT SIZE=-1>&reg;</FONT></SUP> Windows NT 3.51 or 4.0 (localized
versions will help testing but aren't required)</LI>
<LI>
16 MB RAM</LI>
<LI>
30 MB available hard disk space</LI>
<LI>
InstallShield International version 3.0 or other install builder software</LI>
<LI>
A visual resource editor, such as those provided with Microsoft<SUP><FONT SIZE=-1>&reg;</FONT></SUP>
Visual C++, Borland<SUP><FONT SIZE=-1>&reg;</FONT></SUP> C++, etc.</LI>
<LI>
An active Internet connection and the ability to ftp (send and receive)
large files</LI>
<LI>
A Web browser (say, for example, Netscape Communicator ;-)</LI>
</UL>
<H3>
<HR WIDTH="50%"></H3>
<H3>
<A NAME="install"></A>Installing the Kit</H3>
It is recommended that you install the Windows Installer Localization Kit
into the same directory as your other Netscape/Mozilla localization kits:
in other words, install this kit into your <B>kitRoot </B>directory.&nbsp;
Place this localization kit's .ZIP file in that directory and UNZIP it
with the -d parameter:
<P>PKUNZIP -d <I>filename</I>
<UL><B>Example:&nbsp; <TT>PKUNZIP -d instkit</TT></B></UL>
<HR WIDTH="50%">
<H3>
<A NAME="configtool"></A>Configuring Your Tools</H3>
Please refer to your Installshield or other install builder tool's documentation
for set up and usage instructions.
<BR>&nbsp;
<CENTER><TABLE COLS=3 WIDTH="50%" >
<TR>
<TD>
<CENTER>[<A HREF="nomenclature.html">BACK</A>]</CENTER>
</TD>
<TD>
<CENTER>[<A HREF="usingKit.html">NEXT</A>]</CENTER>
</TD>
<TD>
<CENTER>[<A HREF="toc.html">CONTENTS]</A></CENTER>
</TD>
</TR>
</TABLE></CENTER>
<CENTER></CENTER>
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
</BODY>
</HTML>

View File

@@ -1,203 +0,0 @@
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (Win95; I) [Netscape]">
<META NAME="Author" CONTENT="Rick Elliott">
<TITLE>ISO Locale codes</TITLE>
</HEAD>
<BODY>
<CENTER>
<H1>
ISO Language and Country Codes</H1></CENTER>
2 letter language codes are derived from the ISO 639 standard; country
codes are from ISO 3166. Here are the codes for the locales currently supported
by the L10n kits. If an entry also includes the country code then you must
use that as well when creating the locale directory or naming a file.
<H3>
ISO Language and Country Codes table</H3>
<TABLE BORDER=5 >
<TR>
<TD><U>Language Name</U></TD>
<TD><U>Language Code</U></TD>
<TD><U>Country Code</U></TD>
</TR>
<TR>
<TD>
<CENTER>Chinese (Traditional)</CENTER>
</TD>
<TD>
<CENTER>zh</CENTER>
</TD>
<TD>
<CENTER>CN</CENTER>
</TD>
</TR>
<TR>
<TD>
<CENTER>Chinese (Simplified)</CENTER>
</TD>
<TD>
<CENTER>zh</CENTER>
</TD>
<TD>
<CENTER>TW</CENTER>
</TD>
</TR>
<TR>
<TD>
<CENTER>Danish</CENTER>
</TD>
<TD>
<CENTER>da</CENTER>
</TD>
<TD>
<CENTER>DK</CENTER>
</TD>
</TR>
<TR>
<TD>
<CENTER>Dutch</CENTER>
</TD>
<TD>
<CENTER>nl</CENTER>
</TD>
<TD>
<CENTER>NL</CENTER>
</TD>
</TR>
<TR>
<TD>
<CENTER>French</CENTER>
</TD>
<TD>
<CENTER>fr</CENTER>
</TD>
<TD>
<CENTER>FR</CENTER>
</TD>
</TR>
<TR>
<TD>
<CENTER>German</CENTER>
</TD>
<TD>
<CENTER>de</CENTER>
</TD>
<TD>
<CENTER>DE</CENTER>
</TD>
</TR>
<TR>
<TD>
<CENTER>Italian</CENTER>
</TD>
<TD>
<CENTER>it</CENTER>
</TD>
<TD>
<CENTER>IT</CENTER>
</TD>
</TR>
<TR>
<TD>
<CENTER>Japanese</CENTER>
</TD>
<TD>
<CENTER>ja</CENTER>
</TD>
<TD>
<CENTER>JP</CENTER>
</TD>
</TR>
<TR>
<TD>
<CENTER>Korean</CENTER>
</TD>
<TD>
<CENTER>ko</CENTER>
</TD>
<TD>
<CENTER>KR</CENTER>
</TD>
</TR>
<TR>
<TD>
<CENTER>Portuguese</CENTER>
</TD>
<TD>
<CENTER>pt</CENTER>
</TD>
<TD>
<CENTER>BR</CENTER>
</TD>
</TR>
<TR>
<TD>
<CENTER>Spanish</CENTER>
</TD>
<TD>
<CENTER>es</CENTER>
</TD>
<TD>
<CENTER>ES</CENTER>
</TD>
</TR>
<TR>
<TD>
<CENTER>Swedish</CENTER>
</TD>
<TD>
<CENTER>sv</CENTER>
</TD>
<TD>
<CENTER>SE</CENTER>
</TD>
</TR>
</TABLE>
<CENTER><BR>
<FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1997, Copyright Netscape Communications
Corp. All Rights Reserved</FONT></FONT></CENTER>
</BODY>
</HTML>

View File

@@ -1,99 +0,0 @@
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Author" CONTENT="Rick Elliott">
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
<TITLE>Kit Overview</TITLE>
</HEAD>
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
<H3>
<A NAME="kitoverview"></A>Kit Overview</H3>
This kit is primarily intended for knowledgeable developers who are familiar
with the localization process, with InstallShield or other installation
programs, and with Windows resource editors.&nbsp; There are two basic
approaches you can take to create an installer for your localized Communicator,
Navigator or Mozilla derivative product:
<OL>
<LI>
Use an existing Communicator or Navigator Export product installer as a
base and add your localized files, or</LI>
<LI>
Create your own install program and use the registry setting information
provided by the kit.</LI>
</OL>
<UL>
<H4>
<A NAME="method1"></A>Overview of Method 1.</H4>
For this method you will need the following components:
<BR>&nbsp;
<UL>
<LI>
Your own copy of InstallShield version 3 International</LI>
<LI>
The appropriate version of a Netscape Communicator or Navigator installer.</LI>
<LI>
This localization kit.</LI>
<LI>
A text editor.</LI>
<LI>
A resource editor (e.g., MSDEV)</LI>
</UL>
<P>You will start with an Export version of a Netscape Communicator or
Navigator installer.&nbsp; Then, you will extract the localizable components
and modify them as desired.&nbsp; You will localize a number of strings
contained in .INI files using a text editor. You will use a resource editor
or the Netscape Translation Tools to localize STRINGTABLE and DIALOG resource
types contained in two .DLLs. Once the localizable components of the installer
are finished, you will reassemble the installer using the InstallShield
EXE BUILDER tool, including your localized Communicator, Navigator or Mozilla
derivative product.&nbsp; This process is detailed in the next section.</UL>
<UL>
<H4>
<A NAME="method2"></A>Overview of Method 2.</H4>
For this method you will need the following components:
<BR>&nbsp;
<UL>
<LI>
Your own copy of any install builder software</LI>
<LI>
This localization kit</LI>
</UL>
<P>You will create your own installation program in whatever fashion you
wish.&nbsp; In order for your localized product to function properly, your
installer will need to implement certain <A HREF="registrySettings.html">Windows
registry settings</A>.</UL>
&nbsp;
<CENTER><TABLE COLS=3 WIDTH="50%" >
<TR>
<TD>
<CENTER>[<A HREF="projectOverview.html">BACK</A>]</CENTER>
</TD>
<TD>
<CENTER>[<A HREF="kitStruct.html">NEXT</A>]</CENTER>
</TD>
<TD>
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
</TD>
</TR>
</TABLE></CENTER>
&nbsp;
<CENTER><FONT SIZE=-1>&nbsp;1998, Copyright Netscape Communications Corp.
All Rights Reserved</FONT></CENTER>
</BODY>
</HTML>

View File

@@ -1,63 +0,0 @@
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Author" CONTENT="Rick Elliott">
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
<TITLE>Kit Structure</TITLE>
</HEAD>
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
<H3>
<A NAME="kitstruct"></A>Kit Structure and Organization</H3>
When you install this localization kit you will find a number of new directories
on your hard disk. Each directory is named so as to be fairly self-explanatory,
but the following diagram and description may help avoid any confusion
you may have about what's what.
<H4>
<IMG SRC="l10ntree.jpg" BORDER=0 HEIGHT=98 WIDTH=177></H4>
<H4>
Description of Kit Directories</H4>
<UL>
<LI>
The <B><TT>kitRoot</TT> </B>directory is wherever you install the Netscape
Localization Kits.</LI>
<LI>
The <B><TT>l10nkits</TT> </B>directory contains the tools (if any) and
documentation you need to complete your work.</LI>
<LI>
Since this kit concerns the Windows client product (as opposed to our server
products) all the relevant documentation and tools are found under the
<B><TT>client\windows </TT></B>directory.</LI>
<LI>
The <B><TT>docs</TT> </B>directory contains documentation on the kit, including
the file you are reading now.</LI>
</UL>
&nbsp;
<CENTER><TABLE COLS=3 WIDTH="50%" >
<TR>
<TD>
<CENTER>[<A HREF="kitOverview.html">BACK</A>]</CENTER>
</TD>
<TD>
<CENTER>[<A HREF="nomenclature.html">NEXT</A>]</CENTER>
</TD>
<TD>
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
</TD>
</TR>
</TABLE></CENTER>
<CENTER>&nbsp;</CENTER>
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
</BODY>
</HTML>

View File

@@ -1,51 +0,0 @@
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
<META NAME="Author" CONTENT="Rick Elliott">
<TITLE>Localize AIM.INI</TITLE>
</HEAD>
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
<H4>
Localization notes for AIM.INI</H4>
<B>General Notes:</B>
<UL>
<LI>
Only translate the strings which are shown in <B>bold</B> type face below.</LI>
<LI>
Change Netscape trademarks to your own product name(s).</LI>
</UL>
<B>Specific Notes:</B>
<P>
File Copy String=<B>Copying Netscape AOL Instant Messenger Service files...</B>
<P>
Installation String=<B>Installing Netscape AOL Instant Messenger Service files...</B>
<P>
Configuration String=<B>Configuring Netscape AOL Instant Messenger Service...</B>
<P>
<CENTER><TABLE COLS=2 WIDTH="50%" >
<TR>
<TD>
<CENTER>[<A HREF="localize_these_files.html#table2">BACK</A>]</CENTER>
</TD>
<TD>
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
</TD>
</TR>
</TABLE></CENTER>
<P>
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
</BODY>
</HTML>

View File

@@ -1,65 +0,0 @@
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
<META NAME="Author" CONTENT="Rick Elliott">
<TITLE>Localize CD.INI</TITLE>
</HEAD>
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
<H4>
Localization notes for CD.INI</H4>
<B>General Notes:</B>
<UL>
<LI>
Only translate the strings which are shown in <B>bold</B> type face below.</LI>
<LI>
Update the product version number as appropriate.</LI>
<LI>
Modify the locale code according to the ISO 639 and ISO 3166 standards.
(See the <A HREF="reference.html">Reference section</A> for details).</LI>
<LI>
You may need to move the placement of "%s" variables in your translation.</LI>
<LI>
Do not exceed the length of US string for Deinstall Dialog Wait Message.</LI>
<LI>
Change Netscape trademarks to your own product name(s).</LI>
</UL>
<B>Specific Notes:</B>
<P>Product Setup Title1= <B>Deinstaller</B>
<P>Product Version=<B>4.03 </B>(<B>en</B>)
<P>Deinstall Dialog Message=<B>Are you sure you want to deinstall</B> <B>Netscape
Communicator 4.03</B> ?
<P>Deinstall Dialog Wait Message=<B>Parsing</B> <B>Netscape Communicator
4.03&nbsp; deinstall log file</B> %s (<B>this will take several minutes)...</B>
<P>&nbsp;
<CENTER><TABLE COLS=2 WIDTH="50%" >
<TR>
<TD>
<CENTER>[<A HREF="localize_these_files.html#table2">BACK</A>]</CENTER>
</TD>
<TD>
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
</TD>
</TR>
</TABLE></CENTER>
<CENTER>&nbsp;</CENTER>
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
&nbsp;
<BR>&nbsp;
</BODY>
</HTML>

View File

@@ -1,62 +0,0 @@
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
<META NAME="Author" CONTENT="Rick Elliott">
<TITLE>Localize COSMO.INI</TITLE>
</HEAD>
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
<H4>
Localization notes for COSMO.INI</H4>
<B>General Notes:</B>
<UL>
<LI>
Only translate the strings which are shown in <B>bold</B> type face below.</LI>
<LI>
Update the product version number as appropriate.</LI>
<LI>
Modify the locale code according to the ISO 639 and ISO 3166 standards.
(See the <A HREF="reference.html">Reference section</A> for details).</LI>
</UL>
<B>Specific Notes:</B>
<BR>&nbsp;
<BR>Installation String=<B>Installing Cosmo Player files...</B>
<P>Configuration String=<B>Configuring Cosmo Player...</B>
<P>File Copy String=<B>Copying Cosmo Player files...&nbsp;</B>
<P>Description=<B>VRML 2.0 support&nbsp;</B>
<P>[Registry Entries-Reg2]
<BR>HKEY Value=<B>4.03 </B>(<B>en</B>)
<P>[Registry Entries-Reg3]
<BR>HKEY Key Path=Software\Netscape\Cosmo\<B>4.03</B> (<B>en</B>)
<P>[Registry Entries-Reg4]
<BR>HKEY Key Path=Software\Netscape\Cosmo\<B>4.03 </B>(<B>en</B>)\Main
<BR>&nbsp;
<CENTER><TABLE COLS=2 WIDTH="50%" >
<TR>
<TD>
<CENTER>[<A HREF="localize_these_files.html#table2">BACK</A>]</CENTER>
</TD>
<TD>
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
</TD>
</TR>
</TABLE></CENTER>
<CENTER>&nbsp;</CENTER>
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
&nbsp;
<BR>&nbsp;
</BODY>
</HTML>

View File

@@ -1,32 +0,0 @@
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
<META NAME="Author" CONTENT="Rick Elliott">
<TITLE>Localize _ISUSER.DLL</TITLE>
</HEAD>
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
<H4>
Localization notes for _ISUSER.DLL</H4>
All dialogs in this .DLL can be localized.
<BR>&nbsp;
<CENTER><TABLE COLS=2 WIDTH="50%" >
<TR>
<TD>
<CENTER>[<A HREF="localize_these_files.html#table1">BACK</A>]</CENTER>
</TD>
<TD>
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
</TD>
</TR>
</TABLE></CENTER>
<CENTER>&nbsp;</CENTER>
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
&nbsp;
</BODY>
</HTML>

View File

@@ -1,45 +0,0 @@
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
<META NAME="Author" CONTENT="Rick Elliott">
<TITLE>Localize MMEDIA.INI</TITLE>
</HEAD>
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
<H4>
Localization notes for MMEDIA.INI</H4>
<B>General Notes:</B>
<UL>
<LI>
Only translate the strings which are shown in <B>bold</B> type face below.</LI>
</UL>
<B>Specific Notes:</B>
<P>Installation String=<B>Installing Audio/Video Playback files...</B>
<P>Configuration String=<B>Configuring Audio/Video Playback...</B>
<P>File Copy String=<B>Copying Audio/Video Playback files...</B>
<P>Description=<B>Support for multi-media web pages</B>
<P>
<CENTER><TABLE COLS=2 WIDTH="50%" >
<TR>
<TD>
<CENTER>[<A HREF="localize_these_files.html#table2">BACK</A>]</CENTER>
</TD>
<TD>
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
</TD>
</TR>
</TABLE></CENTER>
<P>
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
</BODY>
</HTML>

View File

@@ -1,68 +0,0 @@
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
<TITLE>Localizing MPLAY32.INI</TITLE>
</HEAD>
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
<H4>
Localization notes for MPLAY32.INI</H4>
<B>General Notes:</B>
<UL>
<LI>
Only translate the strings which are shown in <B>bold</B> type face below.</LI>
<LI>
Update the product version number as appropriate.</LI>
<LI>
Modify the locale code according to the ISO 639 and ISO 3166 standards.
(See the <A HREF="reference.html">Reference section</A> for details).</LI>
<LI>
Change Netscape trademarks to your own product name(s).</LI>
</UL>
<B>Specific Notes:</B>
<P>Installation String=<B>Installing Netscape Media Player files...</B>
<P>Configuration String=<B>Configuring Netscape Media Player...</B>
<P>File Copy String=<B>Copying Netscape Media Player files...</B>
<P>Description=<B>Streaming audio support</B>
<P>[Default Folder-Icon2]
<BR>ProgramFolder=[Default Folder]\<B>Utilities</B>
<P>[Registry Entries-Reg2]
<BR>HKEY Value=<B>4.03 </B>(<B>en</B>)
<P>[Registry Entries-Reg3]
<BR>HKEY Key Path=Software\Netscape\Media Player\<B>4.03 </B>(<B>en</B>)
<P>[Registry Entries-Reg4]
<BR>HKEY Key Path=Software\Netscape\Media Player\<B>4.03 </B>(<B>en</B>)\Main
<P>[Registry Entries-Reg5]
<BR>HKEY Key Path=Software\Netscape\Media Player\<B>4.03</B> (<B>en</B>)\Main
<BR>&nbsp;
<CENTER><TABLE COLS=2 WIDTH="50%" >
<TR>
<TD>
<CENTER>[<A HREF="localize_these_files.html#table2">BACK</A>]</CENTER>
</TD>
<TD>
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
</TD>
</TR>
</TABLE></CENTER>
<CENTER>&nbsp;<BR>
<FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape Communications
Corp. All Rights Reserved</FONT></FONT></CENTER>
&nbsp;
</BODY>
</HTML>

View File

@@ -1,154 +0,0 @@
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
<META NAME="Author" CONTENT="Rick Elliott">
<TITLE>Localize NAV40.INI</TITLE>
</HEAD>
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
<H4>
Localization notes for NAV40.INI</H4>
<B>General Notes:</B>
<UL>
<LI>
Do not exceed the length of English string if possible.</LI>
<LI>
Modify the locale code according to the ISO 639 and ISO 3166 standards.
(See the <A HREF="reference.html">Reference section</A> for details).</LI>
<LI>
The "Utilities" folder name may be localized.</LI>
<LI>
"Item name" is the name that will appear under the associated icon; these
may be localized.</LI>
<LI>
You may need to move the placement of "%s" variables in your translation.</LI>
<LI>
Change Netscape trademarks to your own product name(s).</LI>
</UL>
<B>Specific Notes:</B>
<P>Installation String=<B>Installing Netscape Communicator 4.03 files...</B>
<P>Configuration String=<B>Configuring Netscape Communicator 4.03...</B>
<P>File Copy String=<B>Copying Netscape Communicator 4.03 files...</B>
<P>Description=<B>Contains Collabra, Composer, Messenger, and Navigator</B>.
<P>Warn Previous Version Message=<B>Setup has detected a previous installation
of</B> %s. <B>If you installed plugins or helper applications with a previous
installation, you will need to reinstall them to this version of</B> <B>Communicator.</B>
<P>[Navigator 1]
<BR>Message=<B>Setup has detected that an instance of Navigator is currently
running. Please quit Navigator before running Setup.</B>
<P>[Navigator 2]
<BR>Message=<B>Setup has detected that an instance of Navigator is currently
running. Please quit</B> <B>Navigator before running Setup.</B>
<P>[Navigator 3]
<BR>Message=<B>Setup has detected that an instance of Navigator is currently
running. Please quit</B> <B>Navigator before running Setup.</B>
<P>[NSMail Notifier]
<BR>Message=<B>Installation cannot continue because the Mail Notification
program is currently running. Use your right mouse button to click the
Mail icon next to the task bar clock and select 'Exit' to disable Mail
Notification, then run the installer again.</B>
<P>[Navigator 4.05 32]
<BR>HKEY Key Path=Software\Netscape\Netscape Navigator\4.05 (<B>en</B>)\Main
<P>[Navigator 4.04 32]
<BR>HKEY Key Path=Software\Netscape\Netscape Navigator\4.04 (<B>en</B>)\Main
<P>[Navigator 4.03 32]
<BR>HKEY Key Path=Software\Netscape\Netscape Navigator\4.03 (<B>en</B>)\Main
<P>[Navigator 4.02 32]
<BR>HKEY Key Path=Software\Netscape\Netscape Navigator\4.02 (<B>en</B>)\Main
<P>[Navigator 4.01 32]
<BR>HKEY Key Path=Software\Netscape\Netscape Navigator\4.01 (<B>en</B>)\Main
<P>[Navigator 4.0 32]
<BR>HKEY Key Path=Software\Netscape\Netscape Navigator\4.0 (<B>en</B>)\Main
<P>[Navigator 4.0b6 32]
<BR>HKEY Key Path=Software\Netscape\Netscape Navigator\4.0b6 (<B>en</B>)\Main
<P>[Navigator 4.0b5 32]
<BR>HKEY Key Path=Software\Netscape\Netscape Navigator\4.0b5 (<B>en</B>)\Main
<P>[Navigator 4.0b4 32]
<BR>HKEY Key Path=Software\Netscape\Netscape Navigator\4.0b4 (<B>en</B>)\Main
<P>[Navigator 4.0b3 32]
<BR>HKEY Key Path=Software\Netscape\Netscape Navigator\4.0b3 [<B>en</B>]\Main
<P>[Default Folder-Icon11]
<BR>ItemName=<B>User Profile Manager</B>
<P>[Default Folder-Icon12]
<BR>ProgramFolder=[Default Folder]\<B>Utilities</B>
<BR>ItemName=<B>User Profile Manager</B>
<P>[Default Folder-Icon13]
<BR>ItemName=<B>Netscape Mail Notification</B>
<P>[Default Folder-Icon14]
<BR>ProgramFolder=[Default Folder]\<B>Utilities</B>
<BR>ItemName=<B>Netscape Mail Notification</B>
<P>[Registry Entries-R14]
<BR>HKEY Key Path=Software\Netscape\Netscape Navigator\4.03 (<B>en</B>)
<P>[Registry Entries-R15]
<BR>HKEY Key Path=Software\Netscape\Netscape Navigator\4.03 (<B>en</B>)\Main
<P>[Registry Entries-R16]
<BR>HKEY Key Path=Software\Netscape\Netscape Navigator\4.03 (<B>en</B>)\Main
<P>[Registry Entries-R17]
<BR>HKEY Key Path=Software\Netscape\Netscape Navigator\4.03 (<B>en</B>)\Main
<P>[Registry Entries-R18]
<BR>HKEY Key Path=Software\Netscape\Netscape Navigator\4.03 (<B>en</B>)\Main
<P>[Registry Entries-R19]
<BR>HKEY Key Path=Software\Netscape\Netscape Navigator\4.03 (<B>en</B>)\Main
<P>[Registry Entries-R37]
<BR>HKEY Value=4.03 (<B>en</B>)
<P>[Registry Entries-R38]
<BR>HKEY Key Path=Software\Netscape\Netcaster\4.03 (<B>en</B>)\Main
<P>[Registry Entries-R39]
<BR>HKEY Key Path=Software\Netscape\Netcaster\4.03 (<B>en</B>)\Main
<CENTER><TABLE COLS=2 WIDTH="50%" >
<TR>
<TD>
<CENTER>[<A HREF="localize_these_files.html#table2">BACK</A>]</CENTER>
</TD>
<TD>
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
</TD>
</TR>
</TABLE></CENTER>
<CENTER></CENTER>
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
</BODY>
</HTML>

View File

@@ -1,49 +0,0 @@
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
<META NAME="Author" CONTENT="Rick Elliott">
<TITLE>Localize NETCAST.INI</TITLE>
</HEAD>
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
<H4>
Localization notes for NETCAST.INI</H4>
<B>General Notes:</B>
<UL>
<LI>
Only translate the strings which are shown in <B>bold</B> type face below.</LI>
<LI>
Change Netscape trademarks to your own product name(s).</LI>
</UL>
<B>Specific Notes:</B>
<P>
Installation String=<B>Installing Netscape Netcaster files...</B>
<P>
Configuration String=<B>Configuring Netscape Netcaster...</B>
<P>
File Copy String=<B>Copying Netscape Netcaster files...</B>
<P>
<CENTER><TABLE COLS=2 WIDTH="50%" >
<TR>
<TD>
<CENTER>[<A HREF="localize_these_files.html#table2">BACK</A>]</CENTER>
</TD>
<TD>
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
</TD>
</TR>
</TABLE></CENTER>
<P>
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
</BODY>
</HTML>

View File

@@ -1,67 +0,0 @@
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
<META NAME="Author" CONTENT="Rick Elliott">
<TITLE>Localizing NSCONF.INI</TITLE>
</HEAD>
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
<H4>
Localization notes for NSCONF.INI</H4>
<B>General Notes:</B>
<UL>
<LI>
Only translate the strings which are shown in <B>bold</B> type face below.</LI>
<LI>
Update the product version number as appropriate.</LI>
<LI>
Modify the locale code according to the ISO 639 and ISO 3166 standards.
(See the <A HREF="reference.html">Reference section</A> for details).</LI>
<LI>
Change Netscape trademarks to your own product name(s).</LI>
</UL>
<B>Specific Notes:</B>
<P>Installation String=<B>Installing Netscape Conference files...</B>
<P>Configuration String=<B>Configuring Netscape Conference...</B>
<P>File Copy String=<B>Copying Netscape Conference files...</B>
<P>Description=<B>Real-time collaboration and audio conferencing</B>
<P>[Registry Entries-Reg17]
<BR>HKEY Value=<B>4.03</B> (<B>en</B>)
<P>[Registry Entries-Reg18]
<BR>HKEY Key Path=Software\Netscape\Conference\<B>4.03 </B>(<B>en</B>)
<P>[Registry Entries-Reg19]
<BR>HKEY Key Path=Software\Netscape\Conference\<B>4.03</B> (<B>en</B>)\Main
<P>[Registry Entries-Reg20]
<BR>HKEY Key Path=Software\Netscape\Conference\<B>4.03</B> (<B>en</B>)\Main<BR>
<BR>
<CENTER><TABLE COLS=2 WIDTH="50%" >
<TR>
<TD>
<CENTER>[<A HREF="localize_these_files.html#table2">BACK</A>]</CENTER>
</TD>
<TD>
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
</TD>
</TR>
</TABLE></CENTER>
<CENTER></CENTER>
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
&nbsp;
</BODY>
</HTML>

View File

@@ -1,71 +0,0 @@
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
<META NAME="Author" CONTENT="Rick Elliott">
<TITLE>Localize RSUTIL.DLL</TITLE>
</HEAD>
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
<H4>
Localization notes for RSUTIL.DLL</H4>
<B>STRINGTABLES</B><B></B>
<P><B><FONT COLOR="#FF0000">Do not translate the following strings:</FONT></B>
<P>STRING ID:
<BR><I>1&nbsp;</I>
<BR><I>17 18 19&nbsp;</I>
<BR><I>20 21 22 23 24 25 26 27 28 29&nbsp;</I>
<BR><I>30 31 32 33 34 35 36 37 38 39&nbsp;</I>
<BR><I>40 41 42 43 44 45 46 47 48 49&nbsp;</I>
<BR><I>50 51 52 53 54 55 56 57 58 59&nbsp;</I>
<BR><I>60 61 62 63 64 65 66 67 68 69&nbsp;</I>
<BR><I>70 71 72 73 74 75 76 77 78 79&nbsp;</I>
<BR><I>80 81 82 83 85 86 88&nbsp;</I>
<BR><I>90 91 92 95 97 98 99</I>
<BR><I>100 101 102 103 104 105 106 107 108 109</I>
<BR><I>110 111 112 113 114</I>
<BR><I>122 123 126 127 129</I>
<BR><I>132 133 134 135 136 137 138 139</I>
<BR><I>140 145 149</I>
<BR><I>151 153 154 155 156 157 158 159</I>
<BR><I>162 163 164 165 166 167 169&nbsp;</I>
<BR><I>170 171 172 173 174 175 176 177 178 179</I>
<BR><I>180 181 182 183 184 185 187 188</I>
<BR><I>190 192 193 194 195 196 197 198 199</I>
<BR><I>200 201 202 203 204 205 206 207 208 209</I>
<BR><I>210 211 212 213 214 215 216 217 218 219</I>
<BR><I>220 221 222 226 227 228 229&nbsp;</I>
<BR><I>230 232 233 234 235 236 237 238 239</I>
<BR><I>240 241 242 243 244 245 246 247 248 249</I>
<BR><I>250 251 252 253 254 255 256 257&nbsp;</I>
<BR><I>260 261 263 264 265 266 267 269</I>
<BR><I>270 271 272 273 274 275 276 277 278 279</I>
<BR><I>280 281 282 283</I>
<BR>&nbsp;
<BR>
<HR WIDTH="50%">
<BR><B>ICONS</B>
<BR>Replace any trademarked icons, as described in the universal localization
program license agreement, with your own icons.
<BR>&nbsp;
<CENTER><TABLE COLS=2 WIDTH="50%" >
<TR>
<TD>
<CENTER>[<A HREF="localize_these_files.html#table1">BACK</A>]</CENTER>
</TD>
<TD>
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
</TD>
</TR>
</TABLE></CENTER>
<CENTER>&nbsp;</CENTER>
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
&nbsp;
</BODY>
</HTML>

View File

@@ -1,138 +0,0 @@
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
<META NAME="Author" CONTENT="Rick Elliott">
<TITLE>Localize SETUP.INI</TITLE>
</HEAD>
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
<H4>
Localization notes for SETUP.INI</H4>
<B>General Notes:</B>
<UL>
<LI>
Only translate the strings which are shown in bold type face below.</LI>
<LI>
The "StartCopy Dialog Message" should be less than 256 bytes long.</LI>
<LI>
For the "Multiple Components" section, both the key and the value may be
localized (optional).</LI>
<LI>
If the key "Multimedia Support" is localized then next section name should
be identical to the localized key.</LI>
<LI>
Change Netscape trademarks to your own product name(s).</LI>
<LI>
Update the version number as appropriate.</LI>
<LI>
Modify the locale code according to the ISO 639 and ISO 3166 standards.
(See the <A HREF="reference.html">Reference section</A> for details).</LI>
</UL>
<B>Specific Notes:</B>
<P>Product Setup Title1= <B>Setup</B>
<P>Product Version=<B>4.03 </B>(<B>en</B>)
<P>Deinstall Version=<B>4.03 </B>(<B>en</B>)
<P>License Dialog Title=<B>Software License Agreement</B>
<P>License Dialog Message=<B>Please read the following license agreement.
Use the scroll bar to view the rest of this agreement.</B>
<P>License Dialog Question=<B>Do you accept all the terms of the preceding
license agreement? If so, click on the Yes button. If you select No, Setup
will close.</B>
<P>License Icon Description=<B>License Agreement</B>
<P>Welcome Dialog Title=<B>Netscape Communicator 4.03 Setup</B>
<P>Welcome Dialog Message=<B>Welcome to Netscape Communicator 4.03 Setup</B>.
<P>SetupType Dialog Title=<B>Setup Type</B>
<P>SetupType Dialog Message=<B>Select the type of setup you prefer.</B>
<P>Insufficient Space Dialog Title=<B>Insufficient Space</B>
<P>Insufficient Space Dialog Message=<B>The path below contains insufficient
space.</B>
<P>Path Dialog Title=<B>Choose Destination Location</B>
<P>Path Dialog Message=<B>Please enter the location where you would like
to install </B>Netscape Communicator 4.03
<BR><B>components. You may type a new directory name or click the Browse
button to find a new location.</B>
<P>Options Dialog Title=<B>Netscape Communicator 4.03 Options</B>
<P>Options Dialog Message=<B>Check the components you would like to install.</B>
<P>Associations Dialog Title=<B>Setup Associations</B>
<P>Associations Dialog Message=<B>Check the extensions you would like Communicator
to set up. These extensions will be associated with Communicator components.</B>
<P>Select Folder Dialog Title=<B>Select Program Folder</B>
<P>StartCopy Dialog Title=<B>Start Copying Files</B>
<P>StartCopy Dialog Message=<B>Setup has enough information to start copying
the program files. If you want to review or change settings, click Back.
If you are satisfied with the current settings, click Install to begin
copying files.</B>
<P>Readme Dialog Prompt=<B>Would you like to view the README file now?</B>
<P>Finish Dialog Prompt=<B>Setup is complete. You may run Netscape Communicator
4.03 by double-clicking on one of the icons in the folder.</B>
<P>Reboot Dialog Title=<B>Restarting Windows</B>
<P>Reboot Dialog Message=<B>Setup has finished copying files to your computer.
Before you can use the program, you must restart Windows or your computer.</B>
<P>Exit Dialog Message=<B>Are you sure you want to exit setup?</B>
<P>Error Resource Message1=<B>Could not load Resource: </B>%s
<BR>Error Resource Message2=<B>Attempted to fix the problem. Please restart
the setup application.</B>
<BR>Error Resource Message3=<B>Could not get module handle of rsutil.dll.
System memory could be corrupted. Please reboot and try again.</B>
<P>[Multiple Components]
<BR><B>Multimedia Support</B>=<B>Extension modules for Netscape Communicator
4.03</B>
<P>[<B>Multimedia Support</B>]
<BR>Default Path=
<BR>&nbsp;
<CENTER><TABLE COLS=2 WIDTH="50%" >
<TR>
<TD>
<CENTER>[<A HREF="localize_these_files.html#table1">BACK</A>]</CENTER>
</TD>
<TD>
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
</TD>
</TR>
</TABLE></CENTER>
<CENTER>&nbsp;</CENTER>
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
&nbsp;
</BODY>
</HTML>

View File

@@ -1,55 +0,0 @@
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Author" CONTENT="Rick Elliott">
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (Win95; I) [Netscape]">
<TITLE>Localizing URLs</TITLE>
</HEAD>
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
<H3>
<A NAME="localizeURLs"></A>Localizing URLs</H3>
Many resources of all types in the Communicator contain Internet addresses
in the form of URLs (Universal Resource Locators). Most of these point
to locations within the Netscape domain; as part of the Unlimited Localization
Program, you can leave these as they are, or you may change them as you
desire.
<H3>
Internal URLs</H3>
There are a number of internal URLs that <FONT COLOR="#FF0000">should not
be changed</FONT>.&nbsp; These are the strings that look like <B>about:[some
value]</B>.&nbsp; These point to internally contained resources, such as
the main About Communicator page.&nbsp; If you localize these strings you
will not be able to load these pages.&nbsp; The main examples you might
find are:
<UL>
<LI>
about:</LI>
<LI>
about:plugins</LI>
<LI>
about:fonts</LI>
</UL>
For more examples and information on these internal URLs go <A HREF="http://help.netscape.com/kb/client/970513-4.html">here</A>.
<BR>&nbsp;
<BR>&nbsp;
<CENTER><TABLE COLS=2 WIDTH="50%" >
<TR>
<TD>
<CENTER>[<A HREF="usingKit.html#localizeURLs">BACK</A>]</CENTER>
</TD>
<TD>
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
</TD>
</TR>
</TABLE></CENTER>
<CENTER>&nbsp;<BR>
<FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape Communications
Corp. All Rights Reserved</FONT></FONT></CENTER>
&nbsp;
</BODY>
</HTML>

View File

@@ -1,125 +0,0 @@
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Author" CONTENT="Rick Elliott">
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
<TITLE>Localize these Files</TITLE>
</HEAD>
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
<H3>
<A NAME="localize_these_files"></A>Localize These Files</H3>
This section tells you exactly what files need to be localized. The following
tables contain two columns:
<UL>
<LI>
The file to be localized column gives the specific file name. The path
name <I>temp</I> refers to wherever you have copied the uncompressed installer
files in Step 2 of the <A HREF="usingKit.html#l10nchecklist">Localization
Checklist</A>. If the file or resource name is a hypertext link, further
information can be found by following that link.</LI>
<LI>
The purpose column describes the basic purpose of this file.</LI>
</UL>
<A NAME="table1"></A><FONT SIZE=-1>Table 1. Binary files to be localized</FONT>
<TABLE BORDER >
<TR>
<TD><B>File to be localized&nbsp;</B></TD>
<TD><B>Purpose</B></TD>
</TR>
<TR>
<TD><TT><A HREF="localizeRsutil.html">rsutil.dll</A></TT></TD>
<TD>Installer STRINGTABLE and ICON resources.&nbsp;</TD>
</TR>
<TR>
<TD><TT><A HREF="localizeIsuser.html">_isuser.dll</A></TT></TD>
<TD>Installer DIALOG resources.</TD>
</TR>
</TABLE>
<P>
<A NAME="table2"></A><FONT SIZE=-1>Table 2. .INI files to be localized</FONT>
<TABLE BORDER >
<TR>
<TD><B>File to be localized</B></TD>
<TD><B>Purpose</B></TD>
</TR>
<TR>
<TD><A HREF="localizeAim.html">aim.ini</A></TD>
<TD>AOL Instant Messgenger initialization file.*</TD>
</TR>
<TR>
<TD><A HREF="localizeCD.html">cd.ini</A></TD>
<TD>Deinstaller initialization file.</TD>
</TR>
<TR>
<TD><A HREF="localizeCosmo.html">cosmo.ini</A></TD>
<TD>Cosmo player initialization file.*</TD>
</TR>
<TR>
<TD><A HREF="localizeMmedia.html">mmedia.ini</A></TD>
<TD>Multimedia initialization file.*</TD>
</TR>
<TR>
<TD><A HREF="localizeMplay.html">mplay32.ini</A></TD>
<TD>Media Player initialization file.*</TD>
</TR>
<TR>
<TD><A HREF="localizeNav40.html">nav40.ini</A></TD>
<TD>Main product initialization file.</TD>
</TR>
<TR>
<TD><A HREF="localizeNetcast.html">netcast.ini</A></TD>
<TD>Netcaster initialization file.</TD>
</TR>
<TR>
<TD><A HREF="localizeNsconf.html">nsconf.ini</A></TD>
<TD>Netscape Conference initialization file.*</TD>
</TR>
<TR>
<TD><A HREF="localizeSetup.html">setup.ini</A></TD>
<TD>Main setup initialization file.</TD>
</TR>
</TABLE>
<P>
* These files come with the Complete installer version.
<P>
<CENTER><TABLE COLS=1 WIDTH="50%" >
<TR>
<TD>
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
</TD>
</TR>
</TABLE></CENTER>
<P>
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
</BODY>
</HTML>

View File

@@ -1,109 +0,0 @@
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Author" CONTENT="Rick Elliott">
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
<TITLE>Conventions</TITLE>
</HEAD>
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
<H3>
<A NAME="nomenclature"></A>Nomenclature and Typographical Conventions</H3>
<B>Typographical Conventions</B>
<BR>Words in <I>italics</I> typeface represent a variable term or phrase,
meant to be replaced by another value at "runtime."&nbsp; Example:
<UL><I>locale</I> -- replaced by a 2- or 4 letter locale code; e.g. zhtw</UL>
Words in <B>bold</B> typeface, using a proportional font, represent a literal
value in a string that might also contain a variable word or phrase. Example:
<UL><B>4.03 [</B><I>locale</I><B>]</B> -- 4.03 [ ] are literal values,
while <I>locale</I> is a variable.
<UL>&nbsp;</UL>
</UL>
Words in a <TT>fixed width font</TT> represent file or directory names,
or DOS or Windows commands to be typed as they appear.&nbsp; Sometimes,
part or all of the path will be in <B><TT>bold</TT></B>, for emphasis.
Examples:
<UL>Change to the <B><TT><I>kitRoot</I>\l10nkits\client\windows\tools</TT></B><TT>
</TT>directory
<BR>Execute <B><TT>RTRNKIT</TT></B></UL>
<B>Nomenclature</B>
<BR>Throughout this document, certain terms and phrases will be used repeatedly:
<P><FONT SIZE=-1>Table 1. Nomenclature and Typographical Conventions</FONT>
<TABLE BORDER >
<TR>
<TD><B><TT>kitRoot</TT> </B>directory&nbsp;</TD>
<TD>indicates the starting or topmost directory of the Windows Front End
Localization Kit.</TD>
</TR>
<TR>
<TD><I>platform</I></TD>
<TD>either 16 or 32 bit, depending on the version you are working on.</TD>
</TR>
<TR>
<TD><I>locale</I></TD>
<TD>in general, this refers to the language into which you are localizing
the product. The list of valid locale names is defined in the <A HREF="isocodes.htm">ISO
Language and Country Codes Table</A>.</TD>
</TR>
<TR>
<TD>localization database</TD>
<TD>a database generated by a leveraging tool from a set of matched binary
resource files.&nbsp;</TD>
</TR>
<TR>
<TD>localization notes</TD>
<TD>any special instructions, including the "translate/don't translate"
flag, associated with a given resource.&nbsp; Localization notes are contained
in the localization database for each resource module.</TD>
</TR>
<TR>
<TD><I>leverage</I></TD>
<TD>The process of merging previous localized versions of a file into a
current version.&nbsp;</TD>
</TR>
<TR>
<TD>forbidden resource</TD>
<TD>A resource that cannot be changed from the original value without (negatively)
impacting the functionality of the product. These are identified in the
localization databases.</TD>
</TR>
</TABLE>
&nbsp;
<BR>&nbsp;
<CENTER><TABLE COLS=3 WIDTH="50%" >
<TR>
<TD>
<CENTER>[<A HREF="kitStruct.html">BACK</A>]</CENTER>
</TD>
<TD>
<CENTER>[<A HREF="gettingStarted.html">NEXT</A>]</CENTER>
</TD>
<TD>
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
</TD>
</TR>
</TABLE></CENTER>
<CENTER>&nbsp;</CENTER>
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
&nbsp;
</BODY>
</HTML>

View File

@@ -1,57 +0,0 @@
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Author" CONTENT="Rick Elliott">
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
<TITLE>Project Overview</TITLE>
</HEAD>
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
<H2>
<A NAME="overviews"></A>1. Project Overview</H2>
<CENTER><B><FONT COLOR="#009900">Welcome to the Communicator/Navigator
Installer Localization Kit!</FONT></B></CENTER>
<P>Under the universal localization program, you are free to create an
installer for a localized Communicator, Navigator or Mozilla derivative
product in any way you choose. This localization kit will assist you in
creating a your installer for the 32-bit Windows platform. As long as you
follow the terms of the universal localization program license agreement,
you are free to do what you want with the resulting localized product and
installer.
<P>The Netscape Communicator and Netscape Navigator 4.x installation programs
were created with InstallShield<SUP><FONT SIZE=-1>&reg;</FONT></SUP> version
3.&nbsp; Because this is the proprietary product of InstallShield Corporation,
Netscape cannot redistribute the complete source for these installers.&nbsp;
You may, however, modify an existing Communicator or Navigator installer,
or if you choose, you may build your own installer "from scratch".
<P><B>Note</B>: because of the U.S. Government's restrictions on the export
of strong cryptography, <B>you may only distribute the "export" version</B>
of the Netscape binaries.&nbsp; Please keep this in mind as you work with
the localization kit instructions.
<BR>&nbsp;
<CENTER><TABLE COLS=3 WIDTH="50%" >
<TR>
<TD>
<CENTER>[<A HREF="splash.html">BACK</A>]</CENTER>
</TD>
<TD>
<CENTER>[<A HREF="kitOverview.html">NEXT</A>]</CENTER>
</TD>
<TD>
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
</TD>
</TR>
</TABLE></CENTER>
&nbsp;
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
&nbsp;
</BODY>
</HTML>

View File

@@ -1,54 +0,0 @@
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Author" CONTENT="Rick Elliott">
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
<TITLE>Reference</TITLE>
</HEAD>
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
<H2>
<A NAME="reference"></A>Reference</H2>
This section summarizes the references used throughout this document.&nbsp;
In addition, other miscellaneous references may be found here.
<P><FONT SIZE=-1>Table 5. Reference Links</FONT>
<TABLE BORDER COLS=3 WIDTH="100%" >
<TR>
<TD><A HREF="isocodes.htm">Locale Table (local)</A></TD>
<TD><A HREF="http://www.indigo.ie/egt/standards/iso639/iso639-en.html">Locale
Table (remote)</A></TD>
<TD><A HREF="registrySettings.html">Windows Registry Settings Reference</A></TD>
</TR>
<TR>
<TD><A HREF="http://home.netscape.com/menu/intl/">Communicator International
Features</A></TD>
<TD><A HREF="http://help.netscape.com/kb/client/970513-4.html"></A></TD>
<TD><FONT COLOR="#009900"><A HREF="charsets.htm"></A></FONT></TD>
</TR>
</TABLE>
<A HREF="allxpstr.h"></A>
<P>&nbsp;
<CENTER><TABLE COLS=1 WIDTH="50%" >
<TR>
<TD>
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
</TD>
</TR>
</TABLE></CENTER>
<CENTER>&nbsp;</CENTER>
<CENTER></CENTER>
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
&nbsp;
</BODY>
</HTML>

View File

@@ -1,612 +0,0 @@
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Author" CONTENT="Rick Elliott">
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (Win95; I) [Netscape]">
<TITLE>Windows Registry Settings</TITLE>
</HEAD>
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
<H1>
Windows Registry Settings</H1>
This document is provided as a reference to the Windows registry settings
implemented by Communicator and Navigator.&nbsp; You may use this as a
guide to the registry settings you must implement if you create your own
installation program (as opposed to localizing an existing Netscape installer).
<P>Note that in the Netscape installers, these settings are implemented
only within .INI files.&nbsp; This simplifies modifying and localizing
the installer. It is recommended that your installer do the same.
<P>You may observe the registry changes made by any product with tools
such as <A HREF="http://www.ntinternals.com/regmon.htm">Regmon.</A> This
may be a useful addition to your toolset.
<P>These notes are applicable to Netscape Communicator version 4.03.
<BR>&nbsp;
<TABLE BORDER COLS=1 WIDTH="100%" >
<TR>
<TD><B>MPLAY32.INI</B>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Netscape&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value:&nbsp;
<BR>Type :&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Netscape\Media Player&nbsp;
<BR>Name : CurrentVersion&nbsp;
<BR>Value: 4.03 (en)&nbsp;
<BR>Type :&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Netscape\Media Player\4.03 (en)&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value:&nbsp;
<BR>Type :&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Netscape\Media Player\4.03 (en)\Main&nbsp;
<BR>Name : Install Directory&nbsp;
<BR>Value: [Default Path]\MPlayer&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<P>Name : Program Folder&nbsp;
<BR>Value: [Program Folder]&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CLASSES_ROOT\.LAM&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value: LAMDocument&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CLASSES_ROOT\LAMDocument\shell\open\command&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value: [WINSYSDIR]\mplay32.exe %1&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<P>Name : (Default)&nbsp;
<BR>Value: [WINDIR]\mplayer.exe %1&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CLASSES_ROOT\LAMDocument\DefaultIcon&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value: [Default Path]\MPlayer\npcfg32.exe ,0&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\MCI32&nbsp;
<BR>Name : LiveAudioFile&nbsp;
<BR>Value: mcilma32.dll&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\MCI&nbsp;
<BR>Name : LiveAudioFile&nbsp;
<BR>Value: mcilma.dll&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\MCI32&nbsp;
<BR>Name : LiveAudioMetafile&nbsp;
<BR>Value: mcilau32.dll&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\drivers.desc&nbsp;
<BR>Name : mcilau32.dll&nbsp;
<BR>Value: (MCI) Netscape Media Player&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\MCI&nbsp;
<BR>Name : LiveAudioMetafile&nbsp;
<BR>Value: mcilau.dll&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\MCI
Extensions&nbsp;
<BR>Name : LAM&nbsp;
<BR>Value: LiveAudioMetafile&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<P>Name : LMA&nbsp;
<BR>Value: LiveAudioFile&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<P>Name : LA&nbsp;
<BR>Value: LiveAudioFile&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\drivers.desc&nbsp;
<BR>Name : mcilma32.dll&nbsp;
<BR>Value: (MCI) Netscape Packetized Audio&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Drivers32&nbsp;
<BR>Name : MSACM.NSPAC&nbsp;
<BR>Value: NSPAC32.ACM&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\drivers.desc&nbsp;
<BR>Name : NSPAC32.ACM&nbsp;
<BR>Value: elemedia(TM) AX24000P Music Codec&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Drivers32&nbsp;
<BR>Name : MSACM.voxacm118&nbsp;
<BR>Value: vdk32118.acm&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\drivers.desc&nbsp;
<BR>Name : vdk32118.acm&nbsp;
<BR>Value: Voxware 32bit Codec&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Drivers32&nbsp;
<BR>Name : MSACM.NSX83&nbsp;
<BR>Value: NSX83P32.ACM&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\drivers.desc&nbsp;
<BR>Name : NSX83P32.ACM&nbsp;
<BR>Value: elemedia(TM) SX8300 Speech Codec&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Drivers32&nbsp;
<BR>Name : MSACM.NSMLAW&nbsp;
<BR>Value: NSMLAW32.DLL&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\drivers.desc&nbsp;
<BR>Name : NSMLAW32.DLL&nbsp;
<BR>Value: Netscape G.711 Decoder&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>
<HR WIDTH="100%">
<BR><B>NAV40.INI</B>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App
Paths\Netscape.exe&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value: [Default Path]\Program\Netscape.exe&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<P>Name : Path&nbsp;
<BR>Value: [Default Path]\Program&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CLASSES_ROOT\CLSID\{7865A9A1-33A8-11d0-BED9-00A02468FAB6}\InprocServer32&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value: [Default Path]\Program\brpref32.dll&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CLASSES_ROOT\CLSID\{543EC0D0-6AB7-11d0-BF56-00A02468FAB6}\InprocServer32&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value: [Default Path]\Program\brpref32.dll&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CLASSES_ROOT\CLSID\{543EC0D1-6AB7-11d0-BF56-00A02468FAB6}\InprocServer32&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value: [Default Path]\Program\brpref32.dll&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CLASSES_ROOT\CLSID\{2D0A7D70-748C-11d0-9705-00805F8AA8B8}\InprocServer32&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value: [Default Path]\Program\edpref32.dll&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CLASSES_ROOT\CLSID\{E8D6B4F0-8B58-11d0-9B63-00805F8ADDDE}\InprocServer32&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value: [Default Path]\Program\mnpref32.dll&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CLASSES_ROOT\CLSID\{DDF4AB60-8B84-11d0-9B63-00805F8ADDDE}\InprocServer32&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value: [Default Path]\Program\mnpref32.dll&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CLASSES_ROOT\CLSID\{CC3E2871-43CA-11d0-B6D8-00805F8ADDDE}\InprocServer32&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value: [Default Path]\Program\mnpref32.dll&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CLASSES_ROOT\CLSID\{CC3E2872-43CA-11d0-B6D8-00805F8ADDDE}\InprocServer32&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value: [Default Path]\Program\mnpref32.dll&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Netscape&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value:&nbsp;
<BR>Type :&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Netscape\Netscape Navigator&nbsp;
<BR>Name : CurrentVersion&nbsp;
<BR>Value: 4.03 (en)&nbsp;
<BR>Type :&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Netscape\Netscape Navigator\Users&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value:&nbsp;
<BR>Type :&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Netscape\Netscape Navigator\4.03
(en)&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value:&nbsp;
<BR>Type :&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Netscape\Netscape Navigator\4.03
(en)\Main&nbsp;
<BR>Name : Install Directory&nbsp;
<BR>Value: [Default Path]&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<P>Name : Java Directory&nbsp;
<BR>Value: [Default Path]\Program\Java&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<P>Name : NetHelp Directory&nbsp;
<BR>Value: [Default Path]\Program\NetHelp&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<P>Name : Plugins Directory&nbsp;
<BR>Value: [Default Path]\Program\Plugins&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<P>Name : Program Folder&nbsp;
<BR>Value: [Program Folder]&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CURRENT_USER\Software\Netscape&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value:&nbsp;
<BR>Type :&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CURRENT_USER\Software\Netscape\Netscape Navigator&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value:&nbsp;
<BR>Type :&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CURRENT_USER\Software\Netscape\Netscape Navigator\Main&nbsp;
<BR>Name : Install Directory&nbsp;
<BR>Value: [Default Path]&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CLASSES_ROOT\NetscapeMarkup\CLSID&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value: {61D8DE20-CA9A-11CE-9EA5-0080C82BE3B6}&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CLASSES_ROOT\NetscapeMarkup\Insertable&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value:&nbsp;
<BR>Type :&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CLASSES_ROOT\NetscapeMarkup\protocol\StdFileEditing\server&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value: [Default Path]\Program\Netscape.exe&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CLASSES_ROOT\NetscapeMarkup\protocol\StdFileEditing\verb\0&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value: &amp;Edit&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CLASSES_ROOT\NetscapeMarkup\shell\open\command&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value: [Default Path]\Program\Netscape.exe "%1"&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CLASSES_ROOT\NetscapeMarkup\shell\print\command&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value: [Default Path]\Program\Netscape.exe /print("%1")&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CLASSES_ROOT\NetscapeMarkup\shell\print\ddeexec&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value: [print("%1")]&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CLASSES_ROOT\NetscapeMarkup\shell\PrintTo\command&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value: [Default Path]\Program\Netscape.exe /printto("%1","%2","%3","%4")&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CLASSES_ROOT\NetscapeMarkup\shell\PrintTo\ddeexec&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value: [("%1","%2","%3","%4")]&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CLASSES_ROOT\NetscapeMarkup\shell\open\ddeexec&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value: "%1"&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CLASSES_ROOT\NetscapeMarkup\shell\open\ddeexec\Application&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value: NSShell&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CLASSES_ROOT\NetscapeMarkup\shell\open\ddeexec\Topic&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value: WWW_OpenURL&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CLASSES_ROOT\NetscapeMarkup\shell\Edit\command&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value: [Default Path]\Program\Netscape.exe -edit "%1"&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CLASSES_ROOT\NetscapeMarkup\shell\Edit\ddeexec&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value: [edit("%1")]&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Netscape\Netcaster&nbsp;
<BR>Name : CurrentVersion&nbsp;
<BR>Value: 4.03 (en)&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Netscape\Netcaster\4.03 (en)\Main&nbsp;
<BR>Name : Install Directory&nbsp;
<BR>Value: [Shell Path]\Netcast&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<P>Name : Program Folder&nbsp;
<BR>Value: [Program Folder]&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CLASSES_ROOT\CLSID\{C98D0190-7D81-11d0-BF8D-00A02468FAB6}\InprocServer32&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value: [Default Path]\Program\brpref32.dll&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CLASSES_ROOT\CLSID\{37B601C0-8AC8-11d0-83AF-00805F8A274D}\InprocServer32&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value: [Default Path]\Program\brpref32.dll&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CLASSES_ROOT\CLSID\{913A4A20-8EBF-11d0-BFAB-00A02468FAB6}\InprocServer32&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value: [Default Path]\Program\brpref32.dll&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CLASSES_ROOT\NetscapeMarkup\shell\print\ddeexec\Application&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value: NSShell&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CLASSES_ROOT\NetscapeMarkup\shell\PrintTo\ddeexec\Application&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value: NSShell&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CLASSES_ROOT\NetscapeMarkup\shell\Edit\ddeexec\Application&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value: NSShell&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CLASSES_ROOT\NetscapeMarkup&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value: Hypertext Markup Language&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CLASSES_ROOT\telnet&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value: URL:Telnet Protocol&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CLASSES_ROOT\telnet\shell\open\command&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value: telnet %1&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>
<HR WIDTH="100%">
<BR><B>NETCAST.INI</B>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Netscape&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value:&nbsp;
<BR>Type :&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Netscape\Netcaster&nbsp;
<BR>Name : CurrentVersion&nbsp;
<BR>Value: 1.0 (en)&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Netscape\Netcaster\1.0 (en)&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value:&nbsp;
<BR>Type :&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Netscape\Netcaster\1.0 (en)\Main&nbsp;
<BR>Name : Install Directory&nbsp;
<BR>Value: [Default Path]&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<P>Name : Program Folder&nbsp;
<BR>Value: [Program Folder]&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>
<HR WIDTH="100%">
<BR><B>NSCONF.INI</B>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Netscape&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value:&nbsp;
<BR>Type :&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Netscape\Conference&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value:&nbsp;
<BR>Type :&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Netscape\Conference\CurrentVersion&nbsp;
<BR>Name : Description&nbsp;
<BR>Value: Conference&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<P>Name : InstallDate&nbsp;
<BR>Value: [TIME]&nbsp;
<BR>Type : REGDB_NUMBER&nbsp;
<P>Name : Installed&nbsp;
<BR>Value: 1&nbsp;
<BR>Type : REGDB_NUMBER&nbsp;
<P>Name : PathName&nbsp;
<BR>Value: [Default Path]&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<P>Name : SoftwareType&nbsp;
<BR>Value: application&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<P>Name : VersionBuild&nbsp;
<BR>Value: 1213&nbsp;
<BR>Type : REGDB_NUMBER&nbsp;
<P>Name : VersionMajor&nbsp;
<BR>Value: 1&nbsp;
<BR>Type : REGDB_NUMBER&nbsp;
<P>Name : VersionMinor&nbsp;
<BR>Value: 0&nbsp;
<BR>Type : REGDB_NUMBER&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Drivers32&nbsp;
<BR>Name : MSACM.VOXACM118&nbsp;
<BR>Value: vdk32118.acm&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<P>Name : MSACM.NSX83&nbsp;
<BR>Value: nsx83p32.acm&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<P>Name : MSACM.NSX723&nbsp;
<BR>Value: sx5363s.acm&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<P>Name : MSACM.NSMLAW&nbsp;
<BR>Value: nsmlaw32.dll&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CURRENT_USER\Software\Netscape&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value:&nbsp;
<BR>Type :&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CLASSES_ROOT\nscfile\shell\open\command&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value: [Default Path]\NSConf32.exe -f "%1"&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Netscape\Conference&nbsp;
<BR>Name : CurrentVersion&nbsp;
<BR>Value: 4.03 (en)&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Netscape\Conference\4.03 (en)&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value:&nbsp;
<BR>Type :&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Netscape\Conference\4.03 (en)\Main&nbsp;
<BR>Name : Install Directory&nbsp;
<BR>Value: [Default Path]&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<P>Name : Program Folder&nbsp;
<BR>Value: [Program Folder]&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;</TD>
</TR>
</TABLE>
&nbsp;
<BR>&nbsp;
<CENTER><TABLE COLS=2 WIDTH="50%" >
<TR>
<TD>
<CENTER>[<A HREF="kitOverview.html">BACK</A>]</CENTER>
</TD>
<TD>
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
</TD>
</TR>
</TABLE></CENTER>
<CENTER>&nbsp;</CENTER>
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
&nbsp;
</BODY>
</HTML>

View File

@@ -1,53 +0,0 @@
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Author" CONTENT="Rick Elliott">
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (Win95; I) [Netscape]">
<TITLE>Reporting Bugs</TITLE>
</HEAD>
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
<H3>
<A NAME="reporting_bugs"></A>Reporting Bugs</H3>
Any bugs in the localization kits you find should be reported to <A HREF="http://www.mozilla.org">mozilla.org</A>
as soon as possible. When you report a bug, try to be as specific as you
can about the exact steps needed to reproduce the bug.&nbsp; Provide a
complete description of the problem versus the expected results.&nbsp;
You should let us know if the problem is 100% reproducible (it happens
every time), or if it is intermittant.&nbsp; If you think that your operating
environment may play some factor, let us know the details of that.&nbsp;
Finally, before reporting any bug, you should make sure that the problem
doesn't also happen in the US English product (if it does, we still want
to know, but it may not be possible to fix it through the localization
kits or tools as they are now).
<P>To report a bug, post a message to the following mozilla.org newsgroup:
<BR>&nbsp;
<CENTER><A HREF="news://news.mozilla.org/netscape.public.mozilla.general">news://news.mozilla.org/netscape.public.mozilla.general</A></CENTER>
<P>Be sure to include the information described above.
<BR>&nbsp;
<CENTER><TABLE COLS=3 WIDTH="50%" >
<TR>
<TD>
<CENTER>[<A HREF="testKit.html">BACK</A>]</CENTER>
</TD>
<TD>
<CENTER>[<A HREF="returnKit.html">NEXT</A>]</CENTER>
</TD>
<TD>
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
</TD>
</TR>
</TABLE></CENTER>
<CENTER>&nbsp;</CENTER>
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
&nbsp;
</BODY>
</HTML>

View File

@@ -1,54 +0,0 @@
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Author" CONTENT="Rick Elliott">
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (Win95; I) [Netscape]">
<TITLE>Returning the Kit</TITLE>
</HEAD>
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
<H2>
<A NAME="returnkit"></A>5. Publishing the Finished Kit</H2>
Once you are satisfied with the quality of your localization efforts, you
are required by the terms of the universal localization program license
agreement to make your localized product publicly available. The exact
details of how you do this is up to you, the most commonly acceptable method
is to post your localized product to a publicly accessible ftp site.
<P>You should post just the localized versions of the files mentioned in
the Localize These Files section of this document. For ease of transfer,
you may create a compressed archive in the .ZIP file format that contains
the localized files. Create one .ZIP file for each language/platform you
do. If you are publishing more than one language or platform, you may combine
multiple .ZIP files into one master .ZIP file if this makes your life easier.
<P>If your localized product includes your own trademarks, you should identify
these and any restrictions you are placing on their use. You must also
include a copy of the End User License Agreement (EULA), as well as a notice
stating that Netscape Communications is not required to support your product,
and that you are the Licensor referred to in the EULA. Please refer to
the Universal Localization Agreement for the exact legal requirements.
<P>Once your localized product is publicly available, you may inform the
world in any manner you choose, but we encourage you to also post the download
location to the mozilla.org Announcements newsgroup (netscape.public.mozilla.announce).
<CENTER>&nbsp;<BR>
<FONT COLOR="#008000"><FONT SIZE=+2>Congratulations! You are done!</FONT></FONT></CENTER>
&nbsp;
<CENTER><TABLE COLS=2 WIDTH="50%" >
<TR>
<TD>
<CENTER>[<A HREF="testKit.html">BACK</A>]</CENTER>
</TD>
<TD>
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
</TD>
</TR>
</TABLE></CENTER>
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
</BODY>
</HTML>

View File

@@ -1,47 +0,0 @@
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Author" CONTENT="Rick Elliott">
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
<TITLE>Title Page</TITLE>
</HEAD>
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
<CENTER>
<H1>
NETSCAPE COMMUNICATOR</H1></CENTER>
<CENTER><IMG SRC="SPLASH.JPG" NOSAVE HEIGHT=261 WIDTH=390></CENTER>
<CENTER>
<H1>
Localization Kit</H1></CENTER>
<CENTER>
<H3>
for Microsoft<SUP><FONT SIZE=+0>&reg;</FONT></SUP> Windows (32-bit version)</H3></CENTER>
<CENTER>
<H3>
Revision 1.1</H3></CENTER>
<CENTER>Copyright &copy; 1994-1998 Netscape&reg; Communications Corporation,
All rights reserved.</CENTER>
&nbsp;
<BR>&nbsp;
<CENTER><TABLE COLS=2 WIDTH="50%" >
<TR>
<TD>
<CENTER>[<A HREF="projectOverview.html">NEXT</A>]</CENTER>
</TD>
<TD>
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
</TD>
</TR>
</TABLE></CENTER>
<CENTER>&nbsp;</CENTER>
</BODY>
</HTML>

View File

@@ -1,150 +0,0 @@
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Author" CONTENT="Rick Elliott">
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
<TITLE>Testing the Localized Resources</TITLE>
</HEAD>
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
<H2>
<A NAME="testkit"></A>4. Ensuring Quality</H2>
The quality of your localized version will have a large impact on its acceptance
in the marketplace.&nbsp; You can greatly enhance your chances of producing
a quality product by using experienced and skilled localizers, and by performing
post-translation testing.
<P>When performing the actual translation, you should be sensitive to a
number of issues:
<UL>
<LI>
Completeness: you should aim for as thorough a translation as possible.&nbsp;
Try not to leave portions of the product untranslated. However, be aware
that some terms may best be left in English, depending on local conventions.</LI>
<LI>
Suitability: all translations should be suitable and appropriate for product,
the language, the market and the customers you intend to reach.&nbsp; This
includes using the proper technical terminology for a give platform or
computer operation, as well as using language that is readily understood
by the average user of the product in a given language.&nbsp; You should,
where possible, try to use terminology which is similar to other products
available on the same platform (without violating copyrights or trademarks,
of course).</LI>
<LI>
Accuracy: you should be sure your translation conveys the same meaning
and intention as the original English.</LI>
<LI>
Grammar and spelling: you should be sure your translation is grammatically
accurate and free from spelling errors.</LI>
</UL>
Keep in mind that engineers do not necessarily make the best localizers!
<P>Once localization is complete, there are two basic types of post-translation
testing that should be done:
<BR>&nbsp;
<TABLE BORDER WIDTH="100%" >
<TR>
<TD>Linguistic Review</TD>
<TD>Checking all translations for accuracy and appropriateness in the actual
context in which they appear.</TD>
</TR>
<TR>
<TD>Functional Testing</TD>
<TD>Ensuring the product still functions as designed (or at least as well
as the US English product).</TD>
</TR>
</TABLE>
&nbsp;
<BR>For the linguistic review, you should have an independent reviewer
(i.e. not the person who implemented the translations) check every string
for the items listed above.&nbsp; In some cases, it may be enough to review
the running product itself; however, it is also valuable to print out your
translations and review them externally from the product.
<P>For the functional testing, your best resource are the directions contained
in the localization notes and this document. You should review the completed
product's localization notes with this document in hand, double checking
that you have followed all the instructions contained here.
<P>Consider the following general guidelines when testing:
<UL>
<LI>
It is helpful to have a second copy of the product running with the English
version so you can compare them side by side (a second computer might be
helpful or required for this).</LI>
<LI>
Walk through every menu in each module you have localized looking for translation
accuracy, pick letter conflicts and other problems.</LI>
<LI>
Bring up as many dialogs as you can, looking for translation accuracy,
pick letter conflicts, truncated strings and functionality issues.</LI>
<LI>
Exercise the installer in as many ways as possible:</LI>
<UL>
<LI>
Select every installer option</LI>
<LI>
Be sure to test the deinstaller</LI>
<LI>
Look at the icons and folder names created</LI>
<LI>
Use accented or multibyte file and directory names</LI>
<LI>
Install to non-existant and read-only directories</LI>
<LI>
Install to drives with insufficient disk space</LI>
<LI>
etc.</LI>
</UL>
<LI>
If functional problems are found, you should compare the same steps you
took in the localized product to the English product: if the two products
fail in the same way, it is a "core" bug, which can only be fixed by changing
the core product's executable. If the localized product fails while the
English product does not, then it is probably a translation-related bug;
these can be fixed by altering the way you localize the product (perhaps
by not translating a particular item, or by translating it differently).</LI>
</UL>
The following section tells you how to report bugs in the localization
kit itself, or in the core product.
<BR>&nbsp;
<CENTER><TABLE COLS=3 WIDTH="50%" >
<TR>
<TD>
<CENTER>[<A HREF="usingKit.html">BACK</A>]</CENTER>
</TD>
<TD>
<CENTER>[<A HREF="reportingBugs.html">NEXT</A>]</CENTER>
</TD>
<TD>
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
</TD>
</TR>
</TABLE></CENTER>
<CENTER>&nbsp;</CENTER>
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
&nbsp;
</BODY>
</HTML>

View File

@@ -1,106 +0,0 @@
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Author" CONTENT="Rick Elliott">
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
<TITLE>Table of Contents</TITLE>
</HEAD>
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
<H2>
Table of Contents</H2>
<TABLE>
<TR>
<TD><FONT SIZE=+1>i. <A HREF="splash.html">Title Page</A></FONT>&nbsp;
<BR>&nbsp;</TD>
</TR>
<TR>
<TD><FONT SIZE=+1>1. <A HREF="projectOverview.html">Project Overview</A></FONT>&nbsp;
<UL>
<LI>
<A HREF="kitOverview.html">Kit Overview</A></LI>
<LI>
<A HREF="kitStruct.html">Structure and Organization</A></LI>
<LI>
<A HREF="nomenclature.html">Nomenclature and Typographical Conventions<BR>
</A>&nbsp;&nbsp;</LI>
</UL>
</TD>
</TR>
<TR>
<TD><FONT SIZE=+1>2. <A HREF="gettingStarted.html">Getting Started</A></FONT>&nbsp;
<UL>
<LI>
<A HREF="gettingStarted.html#sysreqs">System Requirements</A></LI>
<LI>
<A HREF="gettingStarted.html#install">Installing the Kit</A></LI>
<LI>
<A HREF="gettingStarted.html#configtool">Configuring Your Tools</A></LI>
</UL>
&nbsp;</TD>
</TR>
<TR>
<TD><FONT SIZE=+1>3. <A HREF="usingKit.html">Using the Kit</A></FONT>&nbsp;
<UL>
<LI>
<A HREF="usingKit.html#locdbf">Understanding the Localization Notes</A></LI>
<LI>
<A HREF="usingKit.html#l10nchecklist">Localization Checklist</A></LI>
<LI>
<A HREF="localize_these_files.html">Localize These Files</A></LI>
<LI>
<A HREF="usingKit.html#branding">Product Branding Issues</A></LI>
<LI>
<A HREF="usingKit.html#howtol10n">How to Localize Different Resource Types</A></LI>
<LI>
<A HREF="localizeURL.html">Localizing URLs</A></LI>
<LI>
<A HREF="usingKit.html#localize_stringtable">Localizing STRING TABLES</A></LI>
<LI>
<A HREF="usingKit.html#localize_dialogs">Localizing DIALOGS</A></LI>
<LI>
<A HREF="usingKit.html#localize_text">Localizing .INI Files</A></LI>
</UL>
&nbsp;</TD>
</TR>
<TR>
<TD><FONT SIZE=+1>4. <A HREF="testKit.html">Ensuring Quality</A></FONT>&nbsp;
<UL>
<LI>
<A HREF="testKit.html#testkit">Test Considerations</A></LI>
<LI>
<A HREF="reportingBugs.html">Reporting Bugs</A></LI>
</UL>
&nbsp;</TD>
</TR>
<TR>
<TD><FONT SIZE=+1>5. <A HREF="returnKit.html">Publishing the Finished Kit</A></FONT>&nbsp;
<BR>&nbsp;</TD>
</TR>
<TR>
<TD><FONT SIZE=+1>6. <A HREF="reference.html">References</A></FONT>&nbsp;</TD>
</TR>
</TABLE>
&nbsp;
</BODY>
</HTML>

View File

@@ -1,323 +0,0 @@
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Author" CONTENT="Rick Elliott">
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
<TITLE>Using the Kit</TITLE>
</HEAD>
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
&nbsp;
<TABLE COLS=1 WIDTH="100%" >
<TR>
<TD>
<CENTER><B><FONT COLOR="#FF0000">WARNING! Protect yourself from data loss
by making regular backups of your work.</FONT></B></CENTER>
</TD>
</TR>
</TABLE>
<H2>
<A NAME="usekit"></A>3. Using the Kit</H2>
Once your copy of the Windows Installer Localization Kit is correctly installed,
you may begin your localization work by following the instructions in the
remainder of this document. The next section discusses the contents of
the localization notes provided with this kit. It is important that you
work properly with the instructions contained in these files or the localized
product you create may not function.
<H3>
<A NAME="locdbf"></A>Understanding the Localization Notes</H3>
Each localized module to be installed has an associated initialization
(.INI) file. The localization notes for these files, and for the localizable
dynamic link libraries used by the InstallShield installer, are provided
as HTML documentation. (There are no localization databases in this kit).
Additionally, a section detailing the required Windows registry settings
is also provided in HTML format.
<P>The next section presents the basic localization process as a checklist.
<CENTER>
<HR WIDTH="50%"></CENTER>
<H3>
<A NAME="l10nchecklist"></A>Localization Checklist</H3>
This checklist applies to the "<A HREF="kitOverview.html#method1">modifying
an existing Communicator installer</A>" method. If you are <A HREF="kitOverview.html#method2">creating
your own installer</A>, you will need to adapt this checklist accordingly.
A reference is provided to help you implement the correct <A HREF="registrySettings.html">Windows
registry settings</A>.
<P><B>1. Download an existing installer</B>
<BR>You will need a matching installer for the product you are localizing.
In other words, if you are localizing Netscape Communicator version 4.03,
you need an installer for the Export version of Netscape Communicator 4.03.
If you are localizing Mozilla Navigator version 5.0, you need an installer
for the Export version (if any) of Mozilla Navigator version 5.0. Latest
versions of Netscape products can be downloaded from the <A HREF="http://home.netscape.com/download/index.html">Netscape
homepage</A>. Older versions of Netscape installers, matching the versions
used to generate the localization kits, can be found on the <A HREF="ftp://ftp.mozilla.org/pub/l10n-kits/">mozilla.org
ftp site</A>.
<P>Current Netscape installers come in two forms: base and complete. Complete
installers include plugins and other components besides the basic Communicator
software. You may use either installer as the foundation for your work,
but note that there may not be localization kits for the additional components.
Even if you choose to distribute the English version of these components,
however, you must modify the associated initialization files, listed in
the <A HREF="localize_these_files.html#table1">Localize These Files</A>
page in order for the additional components to be installed properly.
<P><B>2. Uncompress the Installer files</B>
<UL>
<LI>
Run the installer you downloaded in step 1. This will bring up the following
dialog (or something very similar):</LI>
<BR><IMG SRC="Is1.jpg" HEIGHT=101 WIDTH=364>
<LI>
Click yes. InstallShield will extract all the installation files to your
temporary directory. (Usually, this will be C:\temp or something similar).
Once this process is complete, the blue InstallShield background will display.</LI>
<LI>
Without exiting the installer, locate the unpacked installer files in your
temp directory and copy them to a new directory. Call this directory "install"
(or something similar).</LI>
<LI>
Exit the installer.</LI>
</UL>
<B>3. Uncompress the Deinstaller files</B>
<UL>
<LI>
Change directories to your "install" directory. Locate the file cd32*.exe
(where * equals the version number you are working on. For example, version
4.03 would be represented as cd32403.exe).</LI>
<LI>
Execute cd32*.exe. This will bring up a dialog similar to the one shown
is step 2. Click yes and wait until InstallShield has finished unpacking
the deinstaller files (the blue InstallShield background will display).</LI>
<LI>
Without exiting the installer, locate the unpacked deinstaller files in
your temp directory and copy them to a new directory. Call this directory
"deinstall" (or something similar).</LI>
<LI>
Exit the installer.</LI>
</UL>
<B>4. Extract localizable installer .DLLs</B>
<BR>Change directories to your "install" directory. Use the InstallShield
tool ICOMP.EXE to extract RSUTIL.DLL and _ISUSER.DLL from _SETUP.LIB:
<UL><TT>Example: icomp _setup.lib -d</TT></UL>
<B>4. Localize files</B>
<BR>Consult the <A HREF="localize_these_files.html#table1">Localize These
Files</A> page to learn which files contain localizable resources.
<P>For each file to be localized, locate the associated Localization Notes
for that file and follow them carefully.
<P><B>5. Replace original product files contained in nav40.z with localized
product files</B>
<BR>Use the ICOMP tool to replace the original (English language) Communicator
or Navigator files with the ones you have localized using the Windows Front
End Localization Kit.
<UL>
<LI>
Make sure your localized product directory structure matches the structure
inside the compressed file nav40.z. (If necessary, uncompress nav40.z (including
subdirectories), and replace all the localizable files (as identified by
the Windows Front End Localization Kit) with your localized versions).</LI>
<LI>
Update nav40.z with your localized files:</LI>
<UL><TT>Example: icomp \<I>kitRoot</I>\products\client\windows\<I>platform</I>\<I>locale</I>\*.*
nav40.z -i</TT></UL>
</UL>
<B>6. Rebuild the self-extracting deinstaller program</B>
<BR>Use the InstallShield tool EXE Builder to reassemble the self-extracting
deinstaller archive.
<UL>
<LI>
Specify your "deinstall" directory as the source directory.</LI>
<LI>
Set compression on.</LI>
<LI>
Specify Setup.exe as the command line program to run when self-extraction
is complete. (No optional parameters are required.)</LI>
<LI>
Specify your "install" directory as the target directory.</LI>
<LI>
Enter the name of your localized product as the application name.</LI>
<LI>
Do not specify a password.</LI>
<LI>
Once creation of your localized self-extracting deinstaller is complete,
locate the file Setupex.exe in your "install" directory and rename it to
match the original name of the deinstaller self-extracting program (e.g.,
cd32403.exe).</LI>
</UL>
<B>7. Rebuild the self-extracting installer program</B>
<BR>Use the InstallShield tool EXE Builder to reassemble the self-extracting
installer archive.
<UL>
<LI>
Specify your "install" directory as the source directory.</LI>
<LI>
Set compression on.</LI>
<LI>
Specify Setup.exe as the command line program to run when self-extraction
is complete. (No optional parameters are required.)</LI>
<LI>
Specify any directory you want as the target directory.</LI>
<LI>
Enter the name of your localized product as the application name.</LI>
<LI>
Do not specify a password.</LI>
<LI>
Once creation of your localized self-extracting installer is complete,
locate the file Setupex.exe in your target directory and rename it to something
meaningful.</LI>
</UL>
<B>8. Complete post-translation processing</B>
<BR>After translation is complete, you need to test your work and deal
with any problems:
<UL>
<LI>
Test the localized installer.</LI>
<LI>
Fix translation bugs using your localization tools or a resource editor.</LI>
<LI>
Fix dialog size bugs using your localization tools or a resource editor.</LI>
<LI>
Report core bugs to Netscape.</LI>
</UL>
<B>9. Publish your localized product to the Internet</B>
<BR>As the terms of the universal localization program license agreement
state, your localized product
<P><TT>"must be made publicly available in executable code form,</TT>
<BR><TT>free of charge, for electronic delivery via a mechanism</TT>
<BR><TT>generally accepted in the software development</TT>
<BR><TT>community."</TT>
<P>In plain English, this means you should post your localized product
on a publicly accessible http: or ftp: server. You may also want to send
an announcement of your product's availability to mozilla.org (though you
are not required to do so).
<P>
<HR WIDTH="50%">
<H2>
<A NAME="branding"></A>Product Branding Issues</H2>
If you are using this kit under the auspices of the universal localization
program, you must remove or replace Netscape trademarked strings, images
and icons in your localized version. Click <A HREF="branding.html">here</A>
for instructions.
<P>
<HR WIDTH="50%">
<H2>
<A NAME="howtol10n"></A>How to Localize Different Resource Types</H2>
This section provides you with general information about localizing the
various resource types and files found with this kit.
<H3>
<A NAME="localize_text"></A>Localizing .INI Files</H3>
<UL>Most of the work for the Windows installers is localizing initialization
(.INI) files. You may use the text editor of your choice to do this work.
Be sure the localized files are saved as plain text only.
<H4>
<A NAME="locnote_ini"></A>Localization Notes</H4>
Individual localization notes for the installer .INI files are contained
in the individual HTML documents linked from the <A HREF="localize_these_files.html#table1">Localize
These Files</A> page.</UL>
<H3>
<A NAME="localizeURLs"></A>Localizing URLs</H3>
<UL>You will not likely encounter any URLs (Universal Resource Locators)
in the installers, but if you do, how they are localized depends on whether
you are creating a branded Netscape version or not. The rules for how to
handle URLs are found <A HREF="localizeURL.html">here</A>.</UL>
<H3>
<A NAME="localize_stringtable"></A>Localizing String Tables</H3>
<UL>Use the resource editor of your choice to localize STRINGTABLE resources.
These are the most sensitive, potentially problematic resource type you
will be working with. Therefore, you must pay close attention to the instructions
provided in the localization notes.
<H4>
<A NAME="locnote_stringtable"></A>Localization Notes</H4>
Individual localization notes for the installer resource .DLLs are contained
in the individual HTML documents linked from the <A HREF="localize_these_files.html#table1">Localize
These Files</A> page. This section gives you some additional general guidelines
to follow when localizing the installer binary files.
<UL>
<LI>
Some strings may contain C++ print format strings, such as %s, %ld, %lu,
etc. Do not modify these while translating the rest of the string.</LI>
<LI>
Some strings may contain new line characters: \n. In general, you should
try leave these as you find them.</LI>
</UL>
</UL>
<H3>
<A NAME="localize_menus"></A>Localizing Menus</H3>
<UL>There are no menu resources in the Windows installer</UL>
<H3>
<A NAME="localize_dialogs"></A>Localizing Dialogs</H3>
<UL>Use the resource editor of your choice to localize and resize DIALOG
resources. Dialog translation is usually not as tricky as localizing string
tables; however, you should take care to assign unique pickletters to dialog
controls.
<H4>
<A NAME="locnote_menus"></A>Localization Notes</H4>
</UL>
<UL>Individual localization notes for the installer resource .DLLs are
contained in the individual HTML documents linked from the <A HREF="localize_these_files.html#table1">Localize
These Files</A> page.</UL>
&nbsp;
<CENTER><TABLE COLS=3 WIDTH="50%" >
<TR>
<TD>
<CENTER>[<A HREF="gettingStarted.html">BACK</A>]</CENTER>
</TD>
<TD>
<CENTER>[<A HREF="testKit.html">NEXT</A>]</CENTER>
</TD>
<TD>
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
</TD>
</TR>
</TABLE></CENTER>
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
</BODY>
</HTML>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

View File

@@ -1,40 +0,0 @@
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Author" CONTENT="Rick Elliott">
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
<TITLE>Product Branding Issues</TITLE>
</HEAD>
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
<H3>
Product Branding Instructions</H3>
Under the terms of the Unlimited Localization Program, you must remove
or replace all trademarked Netscape terms, brand names, icons, images,
etc.&nbsp; These trademarks are listed on the page found at the following
URL:
<P><A HREF="http://home.netscape.com/misc/trademarks.html#trademarks">http://home.netscape.com/misc/trademarks.html#trademarks</A>
<P>Please refer to that page for details.&nbsp; You may not release a localized
version of the Netscape Communicator with these trademarks left in the
product.
<BR>&nbsp;
<CENTER><TABLE COLS=2 WIDTH="50%" >
<TR>
<TD>
<CENTER>[<A HREF="usingKit.html#branding">BACK</A>]</CENTER>
</TD>
<TD>
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
</TD>
</TR>
</TABLE></CENTER>
<CENTER><BR>
<FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape Communications
Corp. All Rights Reserved</FONT></FONT></CENTER>
</BODY>
</HTML>

View File

@@ -1,383 +0,0 @@
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (Win95; I) [Netscape]">
<TITLE>HTML Output of: C:\TEMP\CHARSET.DBF</TITLE>
</HEAD>
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
<H1>
CSID REFERENCE TABLE</H1>
Use this table to determine the Character Set ID (CSID) for the character
set you wish to use, for example, for setting the value of&nbsp; pref("intl.character_set")
in ALL_PREFS.
<BR>&nbsp;
<TABLE BORDER >
<TR>
<TH>CSID</TH>
<TH>CHARSET</TH>
</TR>
<TR>
<TD>0</TD>
<TD>CS_DEFAULT</TD>
</TR>
<TR>
<TD>1</TD>
<TD>CS_ASCII</TD>
</TR>
<TR>
<TD>2</TD>
<TD>CS_LATIN1</TD>
</TR>
<TR>
<TD>6</TD>
<TD>CS_MAC_ROMAN</TD>
</TR>
<TR>
<TD>10</TD>
<TD>CS_LATIN2</TD>
</TR>
<TR>
<TD>11</TD>
<TD>CS_MAC_CE</TD>
</TR>
<TR>
<TD>14</TD>
<TD>CS_8859_3</TD>
</TR>
<TR>
<TD>15</TD>
<TD>CS_8859_4</TD>
</TR>
<TR>
<TD>16</TD>
<TD>CS_8859_5</TD>
</TR>
<TR>
<TD>17</TD>
<TD>CS_8859_6</TD>
</TR>
<TR>
<TD>18</TD>
<TD>CS_8859_7</TD>
</TR>
<TR>
<TD>19</TD>
<TD>CS_8859_8</TD>
</TR>
<TR>
<TD>20</TD>
<TD>CS_8859_9</TD>
</TR>
<TR>
<TD>21</TD>
<TD>CS_SYMBOL</TD>
</TR>
<TR>
<TD>22</TD>
<TD>CS_DINGBATS</TD>
</TR>
<TR>
<TD>23</TD>
<TD>CS_DECTECH</TD>
</TR>
<TR>
<TD>27</TD>
<TD>CS_JISX0201</TD>
</TR>
<TR>
<TD>29</TD>
<TD>CS_TIS620</TD>
</TR>
<TR>
<TD>35</TD>
<TD>CS_UTF7</TD>
</TR>
<TR>
<TD>38</TD>
<TD>CS_USRDEF2</TD>
</TR>
<TR>
<TD>39</TD>
<TD>CS_KOI8_R</TD>
</TR>
<TR>
<TD>40</TD>
<TD>CS_MAC_CYRILLIC</TD>
</TR>
<TR>
<TD>41</TD>
<TD>CS_CP_1251</TD>
</TR>
<TR>
<TD>42</TD>
<TD>CS_MAC_GREEK</TD>
</TR>
<TR>
<TD>43</TD>
<TD>CS_CP_1253</TD>
</TR>
<TR>
<TD>44</TD>
<TD>CS_CP_1250</TD>
</TR>
<TR>
<TD>45</TD>
<TD>CS_CP_1254</TD>
</TR>
<TR>
<TD>46</TD>
<TD>CS_MAC_TURKISH</TD>
</TR>
<TR>
<TD>53</TD>
<TD>INTL_CHAR_SET_MAX</TD>
</TR>
<TR>
<TD>254</TD>
<TD>CS_USER_DEFINED_ENCODING</TD>
</TR>
<TR>
<TD>255</TD>
<TD>CS_UNKNOWN</TD>
</TR>
<TR>
<TD>260</TD>
<TD>CS_SJIS</TD>
</TR>
<TR>
<TD>261</TD>
<TD>CS_EUCJP</TD>
</TR>
<TR>
<TD>263</TD>
<TD>CS_BIG5</TD>
</TR>
<TR>
<TD>264</TD>
<TD>CS_GB_8BIT</TD>
</TR>
<TR>
<TD>265</TD>
<TD>CS_CNS_8BIT</TD>
</TR>
<TR>
<TD>280</TD>
<TD>CS_CNS11643_1</TD>
</TR>
<TR>
<TD>281</TD>
<TD>CS_CNS11643_2</TD>
</TR>
<TR>
<TD>282</TD>
<TD>CS_JISX0208</TD>
</TR>
<TR>
<TD>284</TD>
<TD>CS_KSC5601</TD>
</TR>
<TR>
<TD>286</TD>
<TD>CS_JISX0212</TD>
</TR>
<TR>
<TD>287</TD>
<TD>CS_GB2312</TD>
</TR>
<TR>
<TD>290</TD>
<TD>CS_UTF8</TD>
</TR>
<TR>
<TD>292</TD>
<TD>CS_NPC</TD>
</TR>
<TR>
<TD>293</TD>
<TD>CS_X_BIG5</TD>
</TR>
<TR>
<TD>303</TD>
<TD>CS_GB2312_11</TD>
</TR>
<TR>
<TD>304</TD>
<TD>CS_JISX0208_11</TD>
</TR>
<TR>
<TD>305</TD>
<TD>CS_KSC5601_11</TD>
</TR>
<TR>
<TD>306</TD>
<TD>CS_CNS11643_1110</TD>
</TR>
<TR>
<TD>515</TD>
<TD>CS_JIS</TD>
</TR>
<TR>
<TD>525</TD>
<TD>CS_2022_KR</TD>
</TR>
<TR>
<TD>564</TD>
<TD>CS_IMAP4_UTF7</TD>
</TR>
<TR>
<TD>810</TD>
<TD>CS_UCS2</TD>
</TR>
<TR>
<TD>811</TD>
<TD>CS_UCS4</TD>
</TR>
<TR>
<TD>819</TD>
<TD>CS_UCS2_SWAP</TD>
</TR>
<TR>
<TD>1292</TD>
<TD>CS_KSC_8BIT</TD>
</TR>
<TR>
<TD>2308</TD>
<TD>CS_SJIS_AUTO</TD>
</TR>
<TR>
<TD>2309</TD>
<TD>CS_EUCJP_AUTO</TD>
</TR>
<TR>
<TD>2563</TD>
<TD>CS_JIS_AUTO</TD>
</TR>
</TABLE>
@author: relliott
<BR>@source: ftang
<BR>@last updated: Mar. 19, 1998
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1997, Copyright Netscape
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
</BODY>
</HTML>

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