Update of docs. Fixes from Frith-MacDonald, others.

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@2679 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Adam Fedor 1998-01-02 18:09:52 +00:00
parent e72b63e234
commit e6395ff746
22 changed files with 467 additions and 559 deletions

View file

@ -1,3 +1,43 @@
Fri Jan 2 13:04:53 1998 Adam Fedor <fedor@spanky.doc.com>
* doc/Makefile.postamble: Generate texi from tmpl.texi files.
* doc/announce.tmpl.texi: Renamed from announce.texi
* doc/faq.tmpl.texi: Likewise.
* doc/gnustep-base.tmpl.texi: Likewise.
* doc/gnustep-howto.tmpl.texi: Likewise.
* doc/gnustep-zones.tmpl.texi: Likewise.
* doc/install.tmpl.texi: Likewise.
* doc/manual.tmpl.texi: Likewise.
* doc/news.tmpl.texi: Likewise.
* doc/readme.tmpl.texi: Likewise.
* doc/todo.tmpl.texi: Likewise.
Wed Dec 31 13:58:51 1997 Adam Fedor <fedor@doc.com>
* STATUS: Updated status on a few classes.
* doc/GNUmakefile (TOP_DOC_FILES): Add GNUstep-HOWTO.
* doc/gnustep-howto.texi: Update documentation.
* doc/gnustep-faq.texi: Likewise.
* doc/install.texi: Likewise.
* doc/readme.texi: Likewise.
Mon Dec 29 09:16:34 1997 Adam Fedor <fedor@doc.com>
* src/Random.m ([Random -randomFloatBetween:and:]): Add lowBound
(Fix suggested by Masatake Yamato <masata-y@is.aist-nara.ac.jp>).
Fri Dec 26 10:25:00 1997 Richard Frith-Macdonald <richard@brainstorm.co.uk>
* src/NSCalendarDate.m:
([-dateByAddingYears:months:days:hours:minutes:seconds:]) Fixed
bug in wrapping months when adding date to december.
* src/NSUserDefaults.m: ([-__createArgumentDictionary]) Fixed to
use command line args beginning with a dash as defaults keys.
Retained old behaviour for -GS and --GS prefixes for backward
compatibility.
Fri Dec 19 13:09:28 1997 Adam Fedor <fedor@doc.com>
* src/NSGeometry.m (NSPointFromString, NSSizeFromString,

View file

@ -32,33 +32,41 @@ MAKEINFO = makeinfo
TEXI2DVI = texi2dvi
TEXI2HTML = texi2html
ORIG_FILES = \
version.tmpl.texi \
gnustep-gui.tmpl.texi \
gnustep-howto.tmpl.texi \
announce.tmpl.texi \
install.tmpl.texi \
news.tmpl.texi \
readme.tmpl.texi \
status.tmpl.texi \
todo.tmpl.texi \
faq.tmpl.texi
TEXI_FILES = \
announce.texi \
base-desc.texi \
coding-standards.texi \
faq.texi \
gnustep-base.texi \
gnustep-faq.texi \
gnustep-howto.texi \
gnustep-zones.texi \
install.texi \
machines.texi \
news.texi \
objective-c.texi \
readme.texi \
todo.texi \
version.texi \
NSZone.texi
gnustep-gui.texi \
announce.texi \
install.texi \
news.texi \
readme.texi \
status.texi \
todo.texi \
faq.texi \
coding-standards.texi \
gnustep-howto.texi \
gnustep-zones.texi
TEXT_FILES = \
TODO INSTALL NEWS CODING-STANDARDS README ANNOUNCE GNUstep-HOWTO
TODO INSTALL NEWS CODING-STANDARDS README ANNOUNCE FAQ STATUS GNUstep-HOWTO
INFO_FILES = gnustep-base.info
PS_FILES = gnustep-base.dvi
HTML_FILES =
DVI_FILES = gnustep-base.dvi objective-c.dvi
HTML_FILES = gnustep-base_toc.html
DVI_FILES = gnustep-base.dvi
TOP_DOC_FILES = README INSTALL NEWS
TOP_DOC_FILES = README INSTALL NEWS GNUstep-HOWTO
RCS_FILES = $(TEXI_FILES) GNUmakefile Makefile.postamble
DIST_FILES = $(RCS_FILES) texinfo.tex $(TEXT_FILES)

View file

@ -80,63 +80,131 @@ after-clean::
# after-check::
srcdir=.
INFO_FLAGS = -I $(srcdir) -D NO-TEXI2HTML --no-header
HTML_FLAGS = -split_chapter -expandinfo -I $(srcdir)
TEXT_FLAGS = -I $(srcdir) -D NO-TEXI2HTML -D TEXT-ONLY --no-header --no-split
text: $(TEXT_FILES)
info: version.texi $(INFO_FILES)
info: $(INFO_FILES)
ps: $(PS_FILES)
html: $(HTML_FILES)
dvi: $(DVI_FILES)
version.texi: $(srcdir)/../Version
rm -f version.texi
echo '@set GNUSTEP_BASE_VERSION' $(VERSION) \
> version.texi
echo '@set GNUSTEP_BASE_GCC_VERSION $(GCC_VERSION)' \
>> version.texi
if [ $(FTP_MACHINE) ]; then \
echo '@set GNUSTEP_BASE_FTP_MACHINE $(FTP_MACHINE)' \
>> version.texi; fi
if [ $(FTP_DIRECTORY) ]; then \
echo '@set GNUSTEP_BASE_FTP_DIRECTORY $(FTP_DIRECTORY)' \
>> version.texi; fi
version.tmpl.texi: $(srcdir)/../Version
rm -f version.tmpl.texi
echo '@set GNUSTEP-BASE-VERSION' $(GNUSTEP_BASE_VERSION) \
> version.tmpl.texi
echo '@set GCC-VERSION $(GCC_VERSION)' \
>> version.tmpl.texi
if [ $(GNUSTEP_BASE_FTP_MACHINE) ]; then \
echo '@set GNUSTEP-BASE-FTP-MACHINE $(GNUSTEP_BASE_FTP_MACHINE)' \
>> version.tmpl.texi; fi
if [ $(GNUSTEP_BASE_FTP_DIRECTORY) ]; then \
echo '@set GNUSTEP-BASE-FTP-DIRECTORY $(GNUSTEP_BASE_FTP_DIRECTORY)' \
>> version.tmpl.texi; fi
if [ $(GNUSTEP_BASE_SNAP_FTP_MACHINE) ]; then \
echo '@set GNUSTEP-BASE-SNAP-FTP-MACHINE \
$(GNUSTEP_BASE_SNAP_FTP_MACHINE)' \
>> version.tmpl.texi; fi
if [ $(GNUSTEP_BASE_SNAP_FTP_DIRECTORY) ]; then \
echo '@set GNUSTEP-BASE-SNAP-FTP-DIRECTORY \
$(GNUSTEP_BASE_SNAP_FTP_DIRECTORY)' \
>> version.tmpl.texi; fi
cp version.tmpl.texi version.texi
gnustep-base.dvi: gnustep-base.texi version.texi
gnustep-base.dvi: $(ORIG_FILES)
rm -f $(TEXI_FILES)
for i in $(ORIG_FILES); do \
cp $$i `basename $$i .tmpl.texi`.texi ; \
done
$(TEXI2DVI) $(srcdir)/gnustep-base.texi
objective-c.dvi: objective-c.texi
$(TEXI2DVI) $(srcdir)/objective-c.texi
MAKEINFO_FLAGS = -I $(srcdir)
gnustep-base.info: $(ORIG_FILES)
rm -f $(TEXI_FILES)
for i in $(ORIG_FILES); do \
sed -e 's,@email{\([^}]*\)},<\1>,g' \
$(srcdir)/$$i \
| sed -e 's,@url{\([^}]*\)},@samp{\1},g' \
> `basename $$i .tmpl.texi`.texi ; \
done
$(MAKEINFO) $(INFO_FLAGS) -o gnustep-base.info $(srcdir)/gnustep-base.texi
gnustep-base.ps: gnustep-base.dvi
dvips gnustep-base.dvi -o gnustep-base.ps
gnustep-base_toc.html: $(ORIG_FILES)
rm -f $(TEXI_FILES)
for i in $(ORIG_FILES); do \
sed -e 's,@email{\([^}]*\)},<A HREF="mailto:\1">\1</A>,g' \
$(srcdir)/$$i \
| sed -e 's,@url{\([^}]*\)},<A HREF="\1">\1</A>,g' \
| sed -e 's,^ *$$,@br{},g' \
> `basename $$i .tmpl.texi`.texi ; \
done
$(TEXI2HTML) $(HTML_FLAGS) gnustep-base.texi
# Rules for producing the text files
README: version.tmpl.texi readme.tmpl.texi
sed -e 's,@email{\([^}]*\)},<\1>,g' \
$(srcdir)/readme.tmpl.texi \
| sed -e 's,@url{\([^}]*\)},@samp{\1},g' \
> readme.texi ; \
$(MAKEINFO) $(TEXT_FLAGS) -o README $(srcdir)/readme.texi
ANNOUNCE: version.tmpl.texi announce.tmpl.texi
sed -e 's,@email{\([^}]*\)},<\1>,g' \
$(srcdir)/announce.tmpl.texi \
| sed -e 's,@url{\([^}]*\)},@samp{\1},g' \
> announce.texi ; \
$(MAKEINFO) $(TEXT_FLAGS) -o ANNOUNCE $(srcdir)/announce.texi
INSTALL: version.tmpl.texi install.tmpl.texi
sed -e 's,@email{\([^}]*\)},<\1>,g' \
$(srcdir)/install.tmpl.texi \
| sed -e 's,@url{\([^}]*\)},@samp{\1},g' \
> install.texi ; \
$(MAKEINFO) $(TEXT_FLAGS) -o INSTALL $(srcdir)/install.texi
NEWS: version.tmpl.texi news.tmpl.texi
sed -e 's,@email{\([^}]*\)},<\1>,g' \
$(srcdir)/news.tmpl.texi \
| sed -e 's,@url{\([^}]*\)},@samp{\1},g' \
> news.texi ; \
$(MAKEINFO) $(TEXT_FLAGS) -o NEWS $(srcdir)/news.texi
FAQ: version.tmpl.texi faq.tmpl.texi
sed -e 's,@email{\([^}]*\)},<\1>,g' \
$(srcdir)/faq.tmpl.texi \
| sed -e 's,@url{\([^}]*\)},@samp{\1},g' \
> faq.texi ; \
$(MAKEINFO) $(TEXT_FLAGS) -o FAQ $(srcdir)/faq.texi
STATUS: version.tmpl.texi status.tmpl.texi
sed -e 's,@email{\([^}]*\)},<\1>,g' \
$(srcdir)/status.tmpl.texi \
| sed -e 's,@url{\([^}]*\)},@samp{\1},g' \
> status.texi ; \
$(MAKEINFO) $(TEXT_FLAGS) -o STATUS $(srcdir)/status.texi
TODO: version.tmpl.texi todo.tmpl.texi
sed -e 's,@email{\([^}]*\)},<\1>,g' \
$(srcdir)/todo.tmpl.texi \
| sed -e 's,@url{\([^}]*\)},@samp{\1},g' \
> todo.texi ; \
$(MAKEINFO) $(TEXT_FLAGS) -o TODO $(srcdir)/todo.texi
CODING-STANDARDS: version.tmpl.texi coding-standards.texi
$(MAKEINFO) $(TEXT_FLAGS) -o CODING-STANDARDS \
$(srcdir)/coding-standards.texi
GNUstep-HOWTO: version.tmpl.texi gnustep-howto.tmpl.texi
sed -e 's,@email{\([^}]*\)},<\1>,g' \
$(srcdir)/gnustep-howto.tmpl.texi \
| sed -e 's,@url{\([^}]*\)},@samp{\1},g' \
> gnustep-howto.texi ; \
$(MAKEINFO) $(TEXT_FLAGS) -o GNUstep-HOWTO \
$(srcdir)/gnustep-howto.texi
gnustep-base.info: gnustep-base.texi todo.texi version.texi
@echo Sorry, makeinfo does not yet support Objective C documentation.
:$(MAKEINFO) $(MAKEINFO_FLAGS) $(srcdir)/gnustep-base.texi
objective-c.info: objective-c.texi
@echo Sorry, makeinfo does not yet support Objective C documentation.
:$(MAKEINFO) $(MAKEINFO_FLAGS) $(srcdir)/objective-c.texi
TODO: todo.texi version.texi
$(MAKEINFO) $(MAKEINFO_FLAGS) -o TODO -D TODO_ONLY \
--no-header --no-split $(srcdir)/todo.texi
INSTALL: install.texi version.texi
$(MAKEINFO) $(MAKEINFO_FLAGS) -o INSTALL -D INSTALL_ONLY \
--no-header --no-split $(srcdir)/install.texi
CODING-STANDARDS: coding-standards.texi version.texi
$(MAKEINFO) $(MAKEINFO_FLAGS) -o CODING-STANDARDS -D CODING_ONLY \
--no-header --no-split $(srcdir)/coding-standards.texi
README: readme.texi version.texi
$(MAKEINFO) $(MAKEINFO_FLAGS) -o README -D README_ONLY \
--no-header --no-split $(srcdir)/readme.texi
ANNOUNCE: announce.texi version.texi news.texi
$(MAKEINFO) $(MAKEINFO_FLAGS) -o ANNOUNCE -D ANNOUNCE_ONLY \
--no-header --no-split $(srcdir)/announce.texi
NEWS: news.texi version.texi
$(MAKEINFO) $(MAKEINFO_FLAGS) -o NEWS -D NEWS_ONLY \
--no-header --no-split $(srcdir)/news.texi
ADVERTISEMENT: advertisement.texi version.texi
$(MAKEINFO) $(MAKEINFO_FLAGS) -o ADVERTISEMENT -D ADVERTISEMENT_ONLY \
--no-header --no-split $(srcdir)/advertisement.texi
GNUstep-HOWTO: gnustep-howto.texi version.texi
$(MAKEINFO) $(MAKEINFO_FLAGS) -o GNUstep-HOWTO -D GNUsteo-HOWTO_ONLY \
--no-header --no-split $(srcdir)/gnustep-howto.texi
# Unused for now, but may be used in the future.
#%: %.texi
@ -160,34 +228,6 @@ GNUstep-HOWTO: gnustep-howto.texi version.texi
# texi2html -expandinfo $(MAKEINFO_FLAGS) $<.html.texi
# mv -f $<.html.html $*.html
# Make substitutions for @email{} and @url{} before passing to makeinfo.
# These substitution scripts could be cleaned up.
GNUstep-FAQ: gnustep-faq.texi version.texi
rm -f GNUstep-FAQ.texi
sed -e 's,@email{\([^}]*\)},<\1>,g' \
$(srcdir)/gnustep-faq.texi \
| sed -e 's,@url{\([^}]*\)},@samp{\1},g' \
> GNUstep-FAQ.texi
$(MAKEINFO) $(MAKEINFO_FLAGS) -o $@ \
--no-header --no-split GNUstep-FAQ.texi
rm -f GNUstep-FAQ.texi
# Make substitutions for @email{} and @url{}, and add @br{} before @item
# before passing to texi2html. Note: I think that this `@br{}' should
# actually be a `@br', but the extra `{}' is necessary to work around a
# bug in texi@html.
# These substitution scripts could be cleaned up.
GNUstep-FAQ.html: gnustep-faq.texi version.texi
rm -f GNUstep-FAQ.texi
sed -e 's,@email{\([^}]*\)},<A HREF="mailto:\1">\1</A>,g' \
$(srcdir)/gnustep-faq.texi \
| sed -e 's,@url{\([^}]*\)},<A HREF="\1">\1</A>,g' \
| sed -e 's,^ *$$,@br{},g' \
> GNUstep-FAQ.texi
texi2html -expandinfo $(MAKEINFO_FLAGS) GNUstep-FAQ.texi
# | awk -- '/@item/ { print "@br{}" } /@end itemize/ { print "@br{}" } ; { print }'
#<A HREF="http://www.cl.cam.ac.uk/texinfodoc/dir.html">GNU "info" manuals</A>
copy-dist: $(DIST_FILES)
mkdir ../snap/doc
ln $(DIST_FILES) ../snap/doc

View file

@ -1,125 +0,0 @@
\input texinfo @c -*- texinfo -*-
@c %**start of header
@setfilename NSZone.info
@settitle Zone Functions in GNUstep
@c %**end of header
@ifinfo
This explains the zone functions in the GNUstep base library.
This document is in the public domain.
@end ifinfo
@titlepage
@title Zone Funtions in GNUstep
@author Yoo C. Chung
@end titlepage
@node Top, (dir), (dir), (dir)
@comment node-name, next, previous, up
@ifinfo
This explains how to use the zone functions in the GNUstep base library.
@end ifinfo
For the current implementation, memory allocated by @code{malloc()}
cannot be freed by @code{NSZoneFree()}, and memory allocated by
@code{NSZoneMalloc()} cannot be freed by @code{free()}.
All the zone functions should be thread safe, though you should still be
careful (it wouldn't make much sense to use a zone before it's created
or after it's recycled).
@deftypefun {NSZone *} NSCreateZone (size_t @var{start}, size_t @var{gran}, BOOL @var{canFree})
Creates a memory zone which starts with a size of at least @var{start}
bytes and grows by at least @var{gran} bytes when needed. If
@var{canFree} is @code{YES}, then memory allocated in the zone can be
freed. If @var{canFree} is @code{NO}, then memory allocated in the zone
cannot be freed unless the whole zone is recycled (in which case the
memory will be returned to the system regardless of whether they are
still in use).
If @var{start} is zero, the zone will start out with some default size.
If @var{gran} is zero, the zone will grow by some default number of
bytes when the zone needs more memory.
There is no advantage in setting @var{start} or @var{gran} to a multiple
of the page size of the machine.
@end deftypefun
@deftypefun {NSZone *} NSDefaultMallocZone (void)
Returns the default memory zone.
@end deftypefun
@deftypefun {NSZone *} NSZoneFromPointer(void *@var{ptr})
Finds the zone that contains the memory pointed to by @var{ptr}. This
should be very fast.
@end deftypefun
@deftypefun void NSRecycleZone (NSZone *@var{zone})
This function destroys the zone. If @var{zone} is a zone that can free
allocated memory, then memory blocks in the zone that are still in use
will be merged with the default zone (or at least they should be, they
currently aren't merged). If not, all memory in the zone will be
reclaimed.
@end deftypefun
@deftypefun {void *} NSZoneMalloc (NSZone *@var{zone}, size_t @var{size})
Allocate @var{size} bytes from @var{zone} and return a pointer to the
allocated memory.
If @var{size} is zero @code{NULL} is returned.
@end deftypefun
@deftypefun {void *} NSZoneCalloc (NSZone *@var{zone}, size_t @var{elems}, size_t @var{bytes})
Allocate memory for @var{elems} elements (each of which are @var{bytes}
bytes) from @var{zone}. The memory is initialized with zeroes.
If either @var{elems} or @var{bytes} is zero, NULL is returned.
@end deftypefun
@deftypefun {void *} NSZoneRealloc (NSZone *@var{zone}, void *@var{ptr}, size_t @var{size})
Resizes the memory block pointed to by @var{ptr} to @var{size} bytes.
If the memory block needs to be relocated, then the original contents
will be copied to the new location. @var{ptr} may be @code{NULL}, in
which case a new memory block will be allocated from the zone.
If @var{size} is zero, the memory pointed to by @var{ptr} is freed.
@end deftypefun
@deftypefun void NSZoneFree (NSZone *@var{zone}, void *@var{ptr})
This frees the allocated memory that @var{ptr} points at. The memory
block must have been allocated from the @var{zone}.
@end deftypefun
@deftypefun void NSSetZoneName (NSZone *@var{zone}, NSString *@var{name})
This sets a name for @var{zone}. If @var{name} is @code{nil}, the name
of the zone will be unset if there was a name previously set. Otherwise
a copy will be made of @var{name} in the default zone.
@end deftypefun
@deftypefun {NSString *} NSZoneName (NSZone *@var{zone})
Returns the name for @var{zone}. Don't release it!
@end deftypefun
@deftypefun {BOOL} NSZoneInUse (void *@var{ptr})
Returns whether @var{ptr} points to memory that has been allocated or not.
It does not work for memory allocated from a zone that cannot free memory.
This function is not in OpenStep.
@end deftypefun
@bye

View file

@ -1,44 +0,0 @@
@ifset FAQ_ONLY
@chapter Frequently Asked Questions with Answers
@c set the vars GNUSTEP_BASE_VERSION and GNUSTEP_BASE_GCC_VERSION
@include version.texi
@end ifset
@enumerate
@item Why not separate the GNU classes from the NS* foundation
classes?
They are intimately intertwinned---not in a messy way, but for good
reasons. ...explain more detail...
@item I'm trying to compile an Objective C program on Linux, and it's not
working.
Link with @samp{-lieee}.
@item What are the differences and improvements of the GNU base classes
over the NS* foundation classes?
@itemize @bullet
@item Better collection class heirarchy.
@itemize @bullet
@item Deep class heirarchy provides uniform method names and common
superclasses in which to add generally-applicable new functionality.
@item Richer use of invocations for enumerating
@item More classes, providing new functionality, such as linked lists,
binary trees, splay trees, etc.
@item Dictionary can handle keys that are not Strings.
@end itemize
@item Better archiving
@item Better distributed objects
@end itemize
@end enumerate

View file

@ -20,16 +20,14 @@
@chapter GNUstep Frequently Asked Questions with Answers
@end iftex
Maintained by Andrew McCallum @email{mccallum@@gnu.ai.mit.edu}, with
contributions by Pascal Forget @email{pascal@@wsc.com}, Scott Christley
Maintained by Andrew McCallum @email{mccallum@@gnu.org}, with
contributions by Adam Fedor @email{fedor@@gnu.org},
Pascal Forget @email{pascal@@wsc.com}, Scott Christley
@email{scottc@@net-community.com}, and Randy Chapman
@email{chapman@@u.washington.edu}.
@c Do not remove the two words at the beginning of the next
@c non-commented line, nor the period at the end of the line.
@c time-stamp depends on them to find and properly update the date.
Last updated 17 September 1996.
Please send corrections to @email{mccallum@@gnu.ai.mit.edu}.
Last updated @today{}
Please send corrections to @email{gnustep-maintainer@@gnu.org}.
The intended audience of this FAQ is future and present code developers
for GNUstep. This FAQ serves a purpose complementary to the GNUstep WWW
@ -125,9 +123,9 @@ involvement in the GNUstep coding efforts.
@itemize @bullet
@item Adam Fedor @email{fedor@@mode.colorado.edu} continues his
excellent, long service as user, tester, and code contributor to both
the Base Library and the GUI Library.
@item Adam Fedor @email{fedor@@gnu.org} Co-Maintainer of the
GNUstep project, continues his excellent, long service as user, tester,
and code contributor to both the Base Library and the GUI Library.
@item Andrew McCallum @email{mccallum@@gnu.ai.mit.edu} was appointed chief
maintainer of the GNUstep project by Richard Stallman in January 1996.
@ -144,9 +142,9 @@ on the GNUstep DisplayGhostScript Server, adding DPS extensions to
GhostScript, including pswrap work.
@item Scott Christley @email{scottc@@net-community.com} is in charge of
the InterfaceModeler project, which is currently in the design stages.
He is working on the GUI Library in conjunction with Pascal Forget. He
has already written much of the GUI Library frontend.
the GUI library and the InterfaceModeler project, which is currently in
the design stages. He is also the maintainer of the Objective-C
language and runtime for GCC.
@end itemize
@ -217,8 +215,8 @@ maintained by McCallum @email{mccallum@@gnu.ai.mit.edu}.
@item @b{What is the current state of the project? When can I expect it to be completed?}
The Base Library is about 85 percent done. Significant useful work can
already be done using the library. The GUI library is about 25
The Base Library is about 90 percent done. Significant useful work can
already be done using the library. The GUI library is about 45
percent done. It is going through a major transition at the moment
to coordinate work from multiple developers, DisplayPostscript, and
the non-OpenStep objcX library into a single package that will be made
@ -226,12 +224,12 @@ available to the public. The DisplayPostscript and drawing support
is also in transition.
More detailed information about the state of each of the sub-projects
can be found below.
can be found at the above mentioned web sites.
With free software, you should never, ever, believe promises about when
a project will be finished. ...However, that said: there are certain
GNUstep developers that are counting on having useful Base and GUI
libraries working by the end of Summer 1996.
libraries working by the end of Summer 1998.
@item @b{On what platforms will it run?}
@ -252,13 +250,13 @@ few code contributions for OS/2.
If you have a specific piece of functionality that you would like to
contribute, or if you would like to ask for suggestions about what
coding work you can do to help, contact the GNUstep Chief Maintainer,
Andrew McCallum @email{mccallum@@gnu.ai.mit.edu}.
coding work you can do to help, contact the GNUstep Maintainers,
Andrew McCallum and Adam Fedor @email{gnustep-maintainer@@gnu.org}.
@end enumerate
@c GNUstep General
More detailed inforation about each of the GNUstep sub-projects can be
More detailed inforamtion about each of the GNUstep sub-projects can be
found below.
@section GNU Objective C Compiler and Objective C Runtime Library
@ -271,7 +269,7 @@ found below.
The Objective C Runtime Library provides C functions and data structures
required to execute an Objective C program. An introduction to the
Objective C Language is provided at
@url{http://www.next.com/Pubs/Documents/OPENSTEP/ObjectiveC/objctoc.htm}.
@url{http://gemma.apple.com/techinfo/techdocs/rhapsody}.
The Frequently Asked Questions list for
@url{news://comp.lang.objective-c} can be found at @url{??}.
@ -332,12 +330,10 @@ library. It can be obtained from @url{ftp://prep.ai.mit.edu/pub/gnu},
or any other mirror of the GNU archives. As far as I know, the GNU
Objective C Runtime runs on all, platforms on which GCC runs.
GCC version 2.7.2 does not contain the thread-safe features, but the
next version of GCC will. A patch for thread-safe features is provided
GCC version 2.7.2 does not contain the thread-safe features, but GCC version 2.8.0 will. A patch for thread-safe features is provided
with the latest developer snaphots of the GNUstep Base Library. There
are currently thread-safe backends for DEC OSF/1, Solaris, IRIX, and
WindowsNT. Volunteers are solicited for writing additional back-ends,
especially one for Linux.
are currently thread-safe backends for DEC OSF/1, Solaris, IRIX, Linux, and
WindowsNT. Volunteers are solicited for writing additional back-ends.
@item @b{Does it allow a mixture of Objective C and C++}
@ -377,30 +373,13 @@ the GNUstep Base Library homepage at
@item @b{What is its current state of development?}
It is about 85 percent of the way to having all the OpenStep classes.
It is about 90 percent of the way to having all the OpenStep classes.
Significant useful work can already be done using the library since the
missing 15 percent are the less-often-used classes, such as NSByteStore.
missing 10 percent are the less-often-used classes, such as NSByteStore.
Over 60,000 lines of code have already been written.
The following OpenStep classes and class clusters are pretty much done
and usable: NSArchiver, NSArray, NSAssertionHandler, NSAutoreleasePool,
NSBitmapCharSet, NSBundle, NSCharacterSet, NSCoder, NSCountedSet,
NSData, NSDate, NSDictionary, NSEnumerator, NSException, NSInvocation,
NSLock, NSMethodSignature, NSNotification, NSNotificationCenter,
NSNumber, NSObject, NSProcessInfo, NSRunLoop, NSScanner, NSSet,
NSString, NSThread, NSTimeZone, NSTimer, NSUserDefaults, NSValue.
Most of the C functions are also implemented, including NSHashTable and
NSMaptable.
A GNU implementation of Distributed Object works. However, the wrappers
for creating the NSConnection, NSDistantObject, NSProxy wrappers have
not yet been made.
The following classes are unstarted or unusable: NSBTreeBlock,
NSBTreeCursor, NSByteStore, NSByteStoreFile, NSCalendarDate,
NSDeserializer, NSSerializer.
Look at the STATUS file that comes with the distriution for additional
status information.
@item @b{In what ways is the Base Library different from OpenStep's FoundationKit?}
@ -749,10 +728,10 @@ efficiency, and (2) legal clarity. GNUstep is no exception.
@item @b{Where can I get a copy?}
The most recently released ``official'' version can be obtained from
@url{ftp://prep.ai.mit.edu}.
@url{ftp://ftp.gnu.org/pub/gnu}.
The most recently released alpha version can be obtained from
@url{ftp://alpha.gnu.ai.mit.edu}.
@url{ftp://alpha.gnu.org/gnu/gnustep}.
@end enumerate
@c GNUstep Base Library
@ -805,32 +784,24 @@ having the interface between front- and back-end fixed by the front-end.
@item @b{What is the current state of development of the front-end?}
A number of classes in the front-end are complete or almost complete;
these include: NSActionCell, NSButtonCell, NSButton, NSCell, NSControl,
NSEvent, NSFont, NSResponder, and NSSlider.
Other classes are complete enough to use, but still require some major
additions before being considered almost complete: NSApplication, NSBox,
NSColor, NSFontManager, NSMenu, NSMenuCell, NSPopUpButton, NSSliderCell,
NSText, NSTextField, NSTextFieldCell, NSView, and NSWindow.
All remaining classes have stub implementations.
Many of the classes are well implemented, if not thouroughly tested.
See the GNUstep web sites and read status information contained in the
distribution for the most up-to-date information.
@item @b{What is the current state of development of the X/DPS back-end?}
Many of the classes are well implemented, if not thouroughly tested.
See the GNUstep web sites and read status information contained in the
distribution for the most up-to-date information.
@item @b{Where can I get a copy?}
It is not yet publically available. When it is available you will be
able to find it in @url{ftp://alpha.gnu.ai.mit.edu/gnu}. Pre-release
snapshots are available at @url{ftp://ocbi.com}.
At the same place as the Base library.
@end enumerate
@c GNUstep GUI Library
@section GNUstep DisplayGhostScript Server
@enumerate
@ -871,6 +842,47 @@ current specifications are available through the GNUstep WWW pages.
@end enumerate
@c GNUstep IM
@c ****************************************************************
@c Compiling
@section Compiling the GNUstep package
@enumerate
@item @b{How do I compile GNUstep on my machine?}
Read the file @file{GNUstep-HOWTO}, which comes with the Base library
distribution, and also is available separately on the GNUstep ftp sites.
@item @b{Are there any precompiled packages available?}
Not really, but you can contact Net-Community
@email{info@@net-community.com} for information on a CD they release
occasionally contaning compiled packages for Linux and Windows NT.
@item @b{I get an error compiling mframe.m in gnustep-base}
This occurs on some Linux systems. You'll need to change the
optimization level, usually like this:
@example
make OPTFLAG=-O
@end example
@item @b{Can I run NeXT OPENSTEP or Apple Rhapsody programs on GNUstep?}
You can't run these programs on GNUstep, but if you have the source
code for the programs, you should be able to port them to GNUstep and
compile them. Whether or not you will be able to run them depends on how
complete GNUstep is at the time.
@item @b{Is it easy to port OPENSTEP and Rhapsody programs to GNUstep?}
It is probably easy for simple programs. You'll have to rewrite the
Makefiles as GNUstep uses a slightly different format. You will also
have to translate the NIB files (if there are any) to GNUstep model
files using the FoundationExt library.
@end enumerate
@ignore
[Notes to FAQ contributors: Be succinct. Stick to the facts. Emphasize

View file

@ -0,0 +1,109 @@
\input texinfo @c -*-texinfo-*-
@c GNUstep BASE Library
@c
@c This file uses the special commands @url{} and @email{}.
@iftex
@global@let@email=@i
@global@let@url=@samp
@end iftex
@ifset NO-TEXI2HTML
@ifinfo
@definfoenclose email, <, >
@definfoenclose url `, '
@end ifinfo
@end ifset
@settitle The GNUstep BASE Library
@setfilename gnustep-base.info
@include version.texi
@ifinfo
This file documents the GNUstep BASE Library.
@ifclear NO-TEXI2HTML
@subtitle DRAFT Edition for GNUstep BASE Library @value{GNUSTEP-BASE-VERSION}
@subtitle Last revision Jan 1998
@c @subtitle For GCC Version @value{GNUSTEP-BASE-GCC}
@author Andrew McCallum
@sp 1
@end ifclear
Copyright @copyright{} 1998 Free Software Foundation
Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
are preserved on all copies.
Permission is granted to copy and distribute modified versions of this
manual under the conditions for verbatim copying, provided also that
the entire resulting derived work is distributed under the terms of a
permission notice identical to this one.
Permission is granted to copy and distribute translations of this manual
into another language, under the above conditions for modified versions.
@end ifinfo
@iftex
@setchapternewpage odd
@finalout
@titlepage
@title The GNUstep BASE Library
@subtitle DRAFT Edition for GNUstep BASE Library @value{GNUSTEP-BASE-VERSION}
@subtitle Last revision Jan 1998
@c @subtitle For GCC Version @value{GNUSTEP-BASE-GCC}
@author Andrew McCallum
@page
@vskip 0pt plus 1filll
Copyright @copyright{} 1998 Free Software Foundation
@sp 2
GNUstep BASE Library Version @value{GNUSTEP-BASE-VERSION}@*
@c For GCC Version @value{GCC-VERSION}@*
@sp 1
Last printed Jan, 1998.@*
@sp 1
Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
are preserved on all copies.
Permission is granted to copy and distribute modified versions of this
manual under the conditions for verbatim copying, provided also that
the entire resulting derived work is distributed under the terms of a
permission notice identical to this one.
Permission is granted to copy and distribute translations of this manual
into another language, under the above conditions for modified versions.
@end titlepage
@end iftex
@chapter Introduction
@c README
@include readme.texi
@c Announcement
@include announce.texi
@c Installation Instructions
@include gnustep-howto.texi
@c News
@include news.texi
@c The FAQ
@include faq.texi
@c Status Report
@include status.texi
@c The ToDo
@include todo.texi
@c Generate Short Contents
@shortcontents
@c Generate Complete Contents
@contents
@bye

View file

@ -1,6 +1,7 @@
\input texinfo @c -*-texinfo-*-
@setfilename gnustep-howto.texi
@chapter GNUstep Installation
@paragraphindent 4
@ -71,6 +72,7 @@ gstep-make
gstep-base or libFoundation
gstep-gui
gstep-xpds
FoundationExt (optional).
@end display
@section Getting the files
@ -98,21 +100,22 @@ You need the following packages of either the version given or any later
version, in order to compile GNUstep.
@example
gcc-2.7.2.1.tar.gz (The gcc compiler. Version 2.7.2 also works):
gcc-2.8.0.tar.gz (The GCC compiler), or gcc-2.7.2.x.tar.gz with the patch
listed below.
gdb-4.16.tar.gz (The gdb debugger)
make-3.75.tar.gz (You need GNU make to compile GNUstep).
ftp://ftp.gnu.org/pub/gnu or from other GNU mirror sites.
gcc-2.7.2.1-objc-970318.diff.gz (patch for multi-threaded Obj-C runtime)
gcc-2.7.2.1-objc-970318.diff.gz (patch needed for using gcc 2.7.2.x)
From the gstep-base distribution (gcc-2.7.2.1-objc.diff) or
ftp://alpha.gnu.org/gnu/gnustep
ftp://ftp.gnustep.org/pub/gnustep/developer
ftp://zarquon.mathi.uni-heidelberg.de/pub/GNUstep/developer/releases
gdb-4.16-objc-971112.diff.gz (A patch for easier debugging of Objective-C code).
gdb-4.16-objc-971112.diff.gz (A patch for easier debugging of Objective-C).
ftp://alpha.gnu.org/gnu/gnustep
ftp://ftp.gnustep.org/pub/gnustep/developer
tiff-v3.4beta036-tar.gz (The TIFF library)
tiff-v3.4beta036-tar.gz (The TIFF library), or
tiff-970711.tar.gz
ftp://ftp.sgi.com/graphics/tiff/
ftp://alpha.gnu.org/gnu/gnustep
@ -121,18 +124,24 @@ tiff-970711.tar.gz
pcthreads-1.1.0.tar.gz (PCThreads for Linux/GNU Inel x86 systems)
ftp://alpha.gnu.org/gnu/gnustep
gstep-make-971102.tar.gz (Makefile package)
gstep-make-0.4.0.tar.gz (Makefile package)
dgs-970711.tar.gz (The Display Ghostscript distribution)
gstep-base-971102.tar.gz (Foundation)
gstep-gui-971102.tar.gz (AppKit)
gstep-xdps-971102.tar.gz (X11/PostScript backend)
ftp://alpha.gnu.org/gnu/gnustep/snap
ftp://ftp.gnustep.org/pub/gnustep/developer/snap
ftp://zarquon.mathi.uni-heidelberg.de/pub/GNUstep/developer/snapshots
gstep-base-0.4.0.tar.gz (Foundation)
gstep-gui-0.4.0.tar.gz (AppKit)
gstep-xdps-0.4.0.tar.gz (X11/PostScript backend)
ftp://ftp.gnu.org/pub/gnu
ftp://ftp.gnustep.org/pub/gnustep
ftp://zarquon.mathi.uni-heidelberg.de/pub/GNUstep
libFoundation-0.8.0.tar.gz (Foundation)
ftp://zarquon.mathi.uni-heidelberg.de/pub/GNUstep
ftp://alpha.gnu.org/gnu/gnustep
FoundationExt-0.8.1.tar.gz (Foundation extentions (optional))
ftp://ftp.gnu.org/pub/gnu
ftp://ftp.gnustep.org/pub/gnustep
ftp://zarquon.mathi.uni-heidelberg.de/pub/GNUstep
ftp://alpha.gnu.org/gnu/gnustep
@end example
You may get either one of the Foundations libraries (you only need to
@ -141,7 +150,8 @@ take one of them, not both) gstep-base or libFoundation.
Note that you should get the latest version available, not
necessarily the one listed here. For the more adventurous, and since the
project is still in development, it might be better to get the latest snapshot
located in the snap or snapshot subdirectories at these locations.
located in the snap or snapshot subdirectories at alpha.gnu.org/gnu/gnustep
or the other ftp locations.
For the following instructions, some version numbers are replaced by XXX.
You shoule replace the 'X's with the version of the package you have.
@ -182,7 +192,7 @@ threads, you need to specify the thread package you are using when
running configure:
@example
LIBS=-lthread; ./configure --prefix=/usr/local/GNUstep
LIBS=-lpthread; ./configure --prefix=/usr/local/GNUstep
@end example
After this you should add the shell script @file{GNUstep.sh} in the makefile
@ -232,7 +242,10 @@ GNUstep system root as the prefix when you configure the package.
@subsection Patching and Compiling GCC
The following commands assume that all the aforementioned files have been
copied to the /usr/src directory on your machine.
copied to the /usr/src directory on your machine. GCC version 2.8.0 should
be released soon. If you have this version, you do NOT need to apply the
following patch to it. Version 2.8.0 already has the required changes
included.
@table @asis
@item 1. Uncompress gcc:
@ -448,6 +461,25 @@ Compile the XDPS library:
make
@end example
@subsection Building the Foundation extensions
The Foundation extensions have some useful features in them. The one
reason you definitely might want to use it is to read in GNUstep model
files which store User Interface structures in ASCII format, and can
also be used to translate NeXT and OpenStep NIB files to GNUstep model
format.
Compiling:
@example
cd /usr/src
tar zxf FoundationExt-XXX.tar.gz
cd extensions
make
su root
make install
@end example
@section Additional Installation
Set up your home GNUstep directory. This is where user defaults are

View file

@ -1,192 +0,0 @@
@c This is a generic INSTALL file for utilities distributions.
@c If this package does not come with, e.g., installable documentation or
@c data files, please ignore the references to them below.
@c set the vars GNUSTEP_BASE_VERSION and GNUSTEP_BASE_GCC_VERSION
@include version.texi
@ifset INSTALL_ONLY
This file documents the installation of the GNUstep Base Library,
@samp{libgnustep-base}. Copyright (C) 1993, 1994, 1996, 1997 Free Software
Foundation, Inc. You may copy, distribute, and modify it freely as long
as you preserve this copyright notice and permission notice.
@chapter Installing @samp{libgnustep-base}
@end ifset
Most of the information below is also included in the general GNUstep
installation instruction GNUstep-HOWTO located at the same ftp sites
as this library, notable @file{ftp://ftp.gnustep.org/pub/gnustep}.
To compile and install @samp{libgnustep-base}:
@enumerate
@item
Get and compile GNU make, if you don't already have GNU make.
@example
cd /usr/src
tar fvxz make-XXX.tar.gz
cd make-XXX
./configure
make
su root
make install
@end example
@item
Decide where you want the GNUstep files to go, and use this as
an argument to configure in the makefile package. If you don't choose
a location, the default is /usr/GNUstep. The example below shows how
to configure the packages for installation in /usr/local/GNUstep.
@example
tar fvxz gstep-make-XXXXXX.tar.gz
cd gstep-make-XXXXXX
./configure --prefix=/usr/local/GNUstep
su root
make install
@end example
After this you should add the shell script GNUstep.sh in the makefile
package to you initialization file (such as .profile). For instance:
@example
. /usr/local/GNUstep/Makefiles/GNUstep.sh
@end example
in your .profile file will work. It defines environment variables that
are needed to find GNUstep files and executables. Users of csh neet
to change the GNUstep.sh script so it will work with csh. Read the
README for more info.
GNUstep packages will automatically install in this directory structure. You
can install other packages (such as gcc) in the same structure if you specify
the GNUstep system root as the prefix when you configure the package.
@example
./configure --prefix=$GNUSTEP_SYSTEM_ROOT
@end example
@item
For Linux/GNU systems on Intel x86 processors, the PCThreads library is
known to work with GNUstep. PCThreads version 1.1.0 is an enhanced version
of PCThread 1.0.0 with better support for GNUstep.
@example
cd /usr/src
tar fvxz pcthreads-1.1.0.tar.gz
cd pcthreads-1.1.0
./configure
make
su root
make install
@end example
If you are using the GNUstep makefile package and wish PCThreads to be
installed with the GNUstep directory structure; then you should specify the
GNUstep system root as the prefix when you configure the package.
@example
./configure --prefix=$GNUSTEP_SYSTEM_ROOT
@end example
@item
The following commands assume that all the aforementioned files have been
copied to the /usr/src directory on your machine.
@example
1. Uncompress gcc:
cd /usr/src
tar fvxz gcc-2.7.2.1.tar.gz
2. Apply the Objective-C runtime patch. Go inside the GCC directory and issue
the command (Make sure you have the correct patch for the version of gcc):
cd gcc-2.7.2.1
cat gcc-2.7.2.1-objc.diff | patch -p1
3. Configure the gcc compiler's makefile for your machine:
./configure
If you are using the GNUstep makefile package and wish gcc to be
installed with the GNUstep directory structure; then you should specify the
GNUstep system root as the prefix when you configure the package.
./configure --prefix=$GNUSTEP_SYSTEM_ROOT
4. Compile gcc
4.1 With a single-threaded Objective-C runtime:
make OBJC_THREAD_FILE=thr-single
or
4.2 With thread support appropriate for your system
make
or
4.3 With PCThreads support (Linux/GNU)
make OBJC_THREAD_FILE=thr-pthreads
5. Wait
If you have a Pentium Pro, go drink a coffee.
If you have a fast Pentium, count from 0 to 100 in your head.
If you have a slow Pentium, go eat a bagel.
If you have a 486, go watch the news.
If you have a 386, come back tomorrow.
6. Install gcc
su root
make install
7. Delete the gcc directory if you're low on disk space
rm -rf /usr/src/gcc-2.7.2.1
@end example
@item
Then configure and make libgnustep-base:
@example
./configure
make
make install
@end example
@item
If you want to compile the self-tests, cd to @samp{checks} and type
@samp{make}. If you want to compile the examples, cd to @samp{examples}
and type @samp{make}.
@item
Type @samp{make install} to install programs, data files, and
documentation.
@item
You can remove the program binaries and object files from the source
directory by typing @samp{make clean}. To also remove the Makefile(s),
and @samp{config.status} (all the files that @samp{configure} created),
type @samp{make distclean}.
The file @samp{configure.in} is used as a template to create
@samp{configure} by a program called @samp{autoconf}. You will only
need it if you want to regenerate @samp{configure} using a newer version
of @samp{autoconf}.
@end enumerate
Notes:
If you are running GNU/Linux and have an older version of
libc, then the Objective C runtime will not work unless you pass
@samp{-lieee} to the linker.

View file

@ -0,0 +1,21 @@
@c This is a generic INSTALL file for utilities distributions.
@c If this package does not come with, e.g., installable documentation or
@c data files, please ignore the references to them below.
@c set the vars GNUSTEP_BASE_VERSION and GNUSTEP_BASE_GCC_VERSION
@include version.texi
@ifset INSTALL_ONLY
This file documents the installation of the GNUstep Base Library,
@samp{libgnustep-base}. Copyright (C) 1993, 1994, 1996, 1997 Free Software
Foundation, Inc. You may copy, distribute, and modify it freely as long
as you preserve this copyright notice and permission notice.
@chapter Installing @samp{libgnustep-base}
@end ifset
Read the file GNUstep-HOWTO for instructions on how to install the
entire GNUstep package (including the base library).
GNUstep-HOWTO comes with this distribution and also
is located at the same ftp sites as this library.
@bye

View file

@ -10,6 +10,8 @@ The currently released version of the library is
@itemize @bullet
@item New tools for maintaining the defaults database.
@item Use the new GNUstep Makefile Package to compile the library, tools
checks, and everything else.

View file

@ -11,7 +11,8 @@ Here is some introductory info to get you started:
The file @samp{NEWS} has the library's feature history.
The file @samp{INSTALL} gives instructions for installing the library.
The files @samp{INSTALL} and @samp{GNUstep-HOWTO}
give instructions for installing the library.
@section Preparing to write code
@ -120,7 +121,7 @@ takers?
@item Read the projects and questions in the @samp{TODO} file. If you
can volunteer for any of the projects, or if you have any useful
comments send me email! <mccallum@@gnu.ai.mit.edu>
comments send me email!
@item
Give me feedback! Tell me what you like; tell me what you think

View file

@ -1,8 +1,6 @@
@ifset TODO_ONLY
@chapter GNU Objective-C Class Library To Do list, and Questions.
@c set the vars GOBJC_VERSION and GCC_VERSION
@include version.texi
@end ifset
This TODO list is out of date.

View file

@ -3,7 +3,7 @@ The testers of the various ports to different machines.
A machine's presence in this list does not imply that the latest
version of libobjects works on that machine. Mostly this list
provides you with people you can contact who have had experience with
libobjects on these machines.
libobjects on these machines. This list is probably out of date.
i386-unknown-linux jbettis@cse.unl.edu (Jeremy Bettis)
i386-freebsd2.0 cracauer@wavehh.hanse.de (Martin Cracauer)
@ -20,7 +20,7 @@ hppa1.1-hp-hpux9 mooney@golem.phys.ndsu.NoDak.edu (Timothy Mooney)
mips-sgi-irix5.2 mccallum@gnu.ai.mit.edu (Andrew McCallum)
cracauer@wavehh.hanse.de (Martin Cracauer)
ebariaux@ulb.ac.be (Eric Bariaux)
mips-dec-ultrix4.2 fedor@boulder.colorado.edu (Adam Fedor)
sparc-sun-solaris2.5 fedor@doc.com(Adam Fedor)
The uniq'ed list:
@ -31,4 +31,4 @@ The uniq'ed list:
ebariaux@ulb.ac.be (Eric Bariaux),
fog@cyberspace.org (Federico Di Gregorio),
mooney@golem.phys.ndsu.NoDak.edu (Timothy Mooney),
fedor@boulder.colorado.edu (Adam Fedor)
fedor@doc.com(Adam Fedor)

19
STATUS
View file

@ -17,20 +17,19 @@ Classes
* NSArchiver:: [8]
Doesn't yet call -awakeAfterUsingCoder:.
* NSArray:: [8]
* NSArray:: [9]
* NSAssertionHandler:: [9]
* NSAutoreleasePool:: [9]
But not exception- or thread-safe
But not exception- safe
* NSBundle:: [8]
* NSCalendarDate:: [5]
* NSCalendarDate:: [7]
* NSCharacterSet:: [8]
decomposableCharacterSet and illegalCharacter set missing
No Unicode support
* NSCoder:: [8]
Missing class name substitution methods.
@ -241,13 +240,13 @@ Error-Handling Functions
Geometric Functions
-------------------
[9] Create Basic Structures
[10] Create Basic Structures
`NSPoint NSMakePoint(float X, float Y)'
`NSSize NSMakeSize(float W, float H)'
`NSRect NSMakeRect(float X, float Y, float W, float H)'
`NSRange NSMakeRange(unsigned int LOCATION, unsigned int LENGTH)'
[9] Get a Rectangle's Coordinates
[10] Get a Rectangle's Coordinates
`float NSMaxX(NSRect ARECT)'
`float NSMaxY(NSRect ARECT)'
`float NSMidX(NSRect ARECT)'
@ -257,17 +256,17 @@ Geometric Functions
`float NSWidth(NSRect ARECT)'
`float NSHeight(NSRect ARECT)'
[9] Modify a Copy of a Rectangle
[10] Modify a Copy of a Rectangle
`NSRect NSInsetRect(NSRect ARECT, float DX, float DY)'
`NSRect NSOffsetRect(NSRect ARECT, float DX, float DY)'
`void NSDivideRect(NSRect INRECT, NSRect *SLICE, NSRect *REMAINDER, float AMOUNT, NSRectEdge EDGE)'
`NSRect NSIntegralRect(NSRect ARECT)'
[9] Compute a Third Rectangle from Two Rectangles
[10] Compute a Third Rectangle from Two Rectangles
`NSRect NSUnionRect(NSRect ARECT, NSRect BRECT)'
`NSRect NSIntersectionRect(NSRect ARECT, NSRect BRECT)'
[9] Test Geometric Relationships
[10] Test Geometric Relationships
`BOOL NSEqualRects(NSRect ARECT, NSRect BRECT)'
`BOOL NSEqualSizes(NSSize ASIZE, NSSize BSIZE)'
`BOOL NSEqualPoints(NSPoint APOINT, NSPoint BPOINT)'
@ -276,7 +275,7 @@ Geometric Functions
`BOOL NSPointInRect(NSPoint APOINT, NSRect ARECT)'
`BOOL NSContainsRect(NSRect ARECT, NSRect BRECT)'
[0] Get a String Representation
[10] Get a String Representation
`NSString *NSStringFromPoint(NSPoint APOINT)'
`NSString *NSStringFromRect(NSRect ARECT)'
`NSString *NSStringFromSize(NSSize ASIZE)'

View file

@ -1068,7 +1068,7 @@ static id long_day[7] = {@"Sunday",
}
day += days;
if (day > 0)
if (day > 28)
{
i = [self lastDayOfGregorianMonth: month year: year];
while (day > i)
@ -1078,7 +1078,7 @@ static id long_day[7] = {@"Sunday",
month++;
else
{
month = 0;
month = 1;
year++;
}
}

View file

@ -635,7 +635,13 @@ static NSMutableString *processName = nil;
while (!done)
{
if ([key hasPrefix:@"-GS"] || [key hasPrefix:@"--GS"]) {
if ([key hasPrefix:@"-"]) {
/* anything beginning with a '-' is a defaults key and we must strip
the '-' from it. As a special case, we leave the '- in place
for '-GS...' and '--GS...' for backward compatibility. */
if ([key hasPrefix:@"-GS"] == NO && [key hasPrefix:@"--GS"] == NO) {
key = [key substringFromIndex: 1];
}
val = [enumerator nextObject];
if (!val)
{ // No more args

View file

@ -244,7 +244,7 @@ static id defaultRNG = nil;
- (float) randomFloatBetween: (float)lowBound and: (float)highBound
{
return [self randomFloat] * (highBound - lowBound);
return ([self randomFloat] * (highBound - lowBound) + lowBound);
}
- (float) randomFloatProbability

11
Version
View file

@ -7,10 +7,11 @@ GCC_VERSION=2.7.2
MAJOR_VERSION=0
MINOR_VERSION=2
SUBMINOR_VERSION=12
VERSION=${MAJOR_VERSION}.${MINOR_VERSION}.${SUBMINOR_VERSION}
GNUSTEP_BASE_VERSION=${MAJOR_VERSION}.${MINOR_VERSION}.${SUBMINOR_VERSION}
VERSION=$(GNUSTEP_BASE_VERSION)
#FTP_MACHINE=ftp.gnu.org
#FTP_DIRECTORY=pub/gnu
FTP_MACHINE=alpha.gnu.org
FTP_DIRECTORY=gnu/gnustep
GNUSTEP_BASE_FTP_MACHINE=ftp.gnu.org
GNUSTEP_BASE_FTP_DIRECTORY=pub/gnu
GNUSTEP_BASE_SNAP_FTP_MACHINE = alpha.gnu.org
GNUSTEP_BASE_SNAP_FTP_DIRECTORY = gnu/gnustep