-@c This file is part of the MIT/GNU Scheme Reference Manual.
-
-@c Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
-@c 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-@c 2005, 2006, 2007, 2008, 2009 Massachusetts Institute of
-@c Technology
-@c See file scheme.texinfo for copying conditions.
-
@node Associations, Procedures, Miscellaneous Datatypes, Top
@chapter Associations
-@c This file is part of the MIT/GNU Scheme Reference Manual.
-
-@c Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
-@c 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-@c 2005, 2006, 2007, 2008, 2009 Massachusetts Institute of
-@c Technology
-@c See file scheme.texinfo for copying conditions.
-
@node Bit Strings, Miscellaneous Datatypes, Vectors, Top
@chapter Bit Strings
-@c This file is part of the MIT/GNU Scheme Reference Manual.
-
-@c Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
-@c 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-@c 2005, 2006, 2007, 2008, 2009 Massachusetts Institute of
-@c Technology
-@c See file scheme.texinfo for copying conditions.
-
@node Characters, Strings, Numbers, Top
@chapter Characters
-@c This file is part of the MIT/GNU Scheme Reference Manual.
-
-@c Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
-@c 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-@c 2005, 2006, 2007, 2008, 2009 Massachusetts Institute of
-@c Technology
-@c See file scheme.texinfo for copying conditions.
-
@node Environments, Input/Output, Procedures, Top
@chapter Environments
-@c This file is part of the MIT/GNU Scheme Reference Manual.
-
-@c Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
-@c 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-@c 2005, 2006, 2007, 2008, 2009 Massachusetts Institute of
-@c Technology
-@c See file scheme.texinfo for copying conditions.
-
@node Equivalence Predicates, Numbers, Special Forms, Top
@chapter Equivalence Predicates
-@c This file is part of the MIT/GNU Scheme Reference Manual.
-
-@c Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
-@c 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-@c 2005, 2006, 2007, 2008, 2009 Massachusetts Institute of
-@c Technology
-@c See file scheme.texinfo for copying conditions.
-
@node Error System, Graphics, Operating-System Interface, Top
@chapter Error System
-@c This file is part of the MIT/GNU Scheme Reference Manual.
-
-@c Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
-@c 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-@c 2005, 2006, 2007, 2008, 2009 Massachusetts Institute of
-@c Technology
-@c See file scheme.texinfo for copying conditions.
-
@node Graphics, Win32 Package Reference, Error System, Top
@chapter Graphics
@cindex graphics
* Images::
* X Graphics:: Graphics on the X Window System
* Win32 Graphics:: Graphics on Microsoft Windows and Windows NT
-* OS/2 Graphics:: Graphics on IBM OS/2
@end menu
@node Opening and Closing of Graphics Devices, Coordinates for Graphics, Graphics, Graphics
in documentation of the@* @code{XLoadQueryFont} Xlib call.
@end deffn
-@node Win32 Graphics, OS/2 Graphics, X Graphics, Graphics
+@node Win32 Graphics, , X Graphics, Graphics
@section Win32 Graphics
@cindex Win32 graphics
to the rectangle of the same dimensions at @var{destination-x-left} and
@var{destination-y-top}.
@end defop
-
-@node OS/2 Graphics, , Win32 Graphics, Graphics
-@section OS/2 Graphics
-@cindex OS/2 graphics
-
-MIT/GNU Scheme supports graphics under the OS/2 Presentation Manager in
-OS/2 version 2.1 and later. The OS/2 graphics device type is
-implemented as a top level window. In addition to the usual operations,
-there are operations to control the size, position, and colors of a
-graphics window. OS/2 graphics devices support images, which are
-implemented as memory presentation spaces.
-
-The custom graphics operations defined in this section are invoked using
-the procedure @code{graphics-operation}. For example,
-
-@example
-(graphics-operation device 'set-foreground-color "blue")
-@end example
-
-@menu
-* OS/2 Graphics Type::
-* Color Operations for OS/2 Graphics::
-* Window Operations for OS/2 Graphics::
-* Event Operations for OS/2 Graphics::
-* Miscellaneous Operations for OS/2 Graphics::
-@end menu
-
-@node OS/2 Graphics Type, Color Operations for OS/2 Graphics, OS/2 Graphics, OS/2 Graphics
-@subsection OS/2 Graphics Type
-
-OS/2 graphics devices are created by specifying the symbol
-@code{os/2} as the @var{graphics-device-type} argument to
-@code{make-graphics-device}. The OS/2 graphics device type is
-implemented as a top-level window and supports color drawing in addition
-to the standard Scheme graphics operations.
-
-Graphics devices are opened as follows:
-
-@example
-(make-graphics-device 'os/2 #!optional @var{width} @var{height})
-@end example
-
-@noindent
-where @var{width} and @var{height} specify the size, in pixels, of the
-drawing area in the graphics window (i.e.@: excluding the frame).
-
-@node Color Operations for OS/2 Graphics, Window Operations for OS/2 Graphics, OS/2 Graphics Type, OS/2 Graphics
-@subsection Color Operations for OS/2 Graphics
-
-These operations control the colors used when drawing on an OS/2
-graphics device.
-
-@defop operation os2-graphics-device color?
-@findex color?
-This operation returns @code{#t} if the display supports color.
-@end defop
-
-@defop operation os2-graphics-device set-background-color color-name
-@defopx operation os2-graphics-device set-foreground-color color-name
-@findex set-background-color
-@findex set-foreground-color
-@cindex color
-These operations change the colors associated with a window.
-@var{Color-name} must be one of the valid color specification forms
-listed below. @code{set-background-color} and
-@code{set-foreground-color} change the colors to be used when drawing,
-but have no effect on anything drawn prior to their invocation. Because
-changing the background color affects the entire window, we recommend
-calling @code{graphics-clear} on the window's device afterwards.
-
-The foreground color affects the drawing of text, points, and lines.
-Colors are specified in one of these ways:
-
-@table @asis
-@item An integer between @code{0} and @code{#xffffff} inclusive
-This is the OS/2 internal RGB value.
-
-@item By name
-A limited number of names are understood by the system. Names are
-strings, e.g.@: @code{"red"}, @code{"blue"}, @code{"black"}. More names
-can be registered with the @code{define-color} operation.
-
-@item RGB (Red-Green-Blue) triples
-A triple is a list of three integers between @code{0} and @code{#xff}
-inclusive which specify the intensity of the red, green and blue
-components of the color. Thus @code{(0 0 0)} is black, @code{(0 0 128)}
-is dark blue and @code{(255 255 255)} is white.
-@end table
-
-@noindent
-If the color is not available in the graphics device then the nearest
-available color is used instead.
-@end defop
-
-@defop operation os2-graphics-device define-color name spec
-Define the string @var{name} to be the color specified by @var{spec}.
-@var{Spec} may be any acceptable color specification. Note that the
-color names defined this way are available to any OS/2 graphics
-device, and the names do @emph{not} have to be defined for each device.
-
-Color names defined by this interface may also be used when setting the
-colors of the Scheme console window, or the colors of Edwin editor
-windows.
-@end defop
-
-@defop operation os2-graphics-device find-color name
-Looks up a color previously defined by @code{define-color}. This
-returns the color in its most efficient form for operations
-@code{set-foreground-color} or @code{set-background-color}.
-@end defop
-
-@node Window Operations for OS/2 Graphics, Event Operations for OS/2 Graphics, Color Operations for OS/2 Graphics, OS/2 Graphics
-@subsection Window Operations for OS/2 Graphics
-
-These operations control the window that contains the OS/2 graphics
-device. They provide facilities to change the window's size and
-position; to raise and lower the window relative to other windows on the
-desktop; to hide or minimize the window, and to restore it from the
-hidden or minimized state; to activate or deactivate the window (that
-is, control the keyboard focus); and to control the text that appears in
-the window's title bar.
-
-@defop operation os2-graphics-device window-position
-This operation returns the position of the graphics-device window on the
-desktop. The position is returned as two values
-(@pxref{Continuations}), which are the x and y coordinates of the
-position. These coordinates are in units of pels (pixels), and measure
-the distance between the lower left hand corner of the desktop and the
-lower left hand corner of the graphics device window's frame.
-@end defop
-
-@defop operation os2-graphics-device set-window-position x y
-The graphics-device window is moved to the screen position specified by
-@var{x} and @var{y}. The coordinates @var{x} and @var{y} are in units
-of pels (pixels), and measure the distance between the lower left hand
-corner of the desktop and the lower left hand corner of the graphics
-device window's frame.
-@end defop
-
-@defop operation os2-graphics-device window-size
-This operation returns the size of the client area of the
-graphics-device window. The client area is the part of the window that
-you draw on; it does not include the window frame, title bar, etc. The
-size is returned as two values (@pxref{Continuations}), which are the
-width and height of the client area in units of pels (pixels).
-@end defop
-
-@defop operation os2-graphics-device set-window-size width height
-This operation sets the size of the client area of the graphics-device
-window to the specified @var{width} and @var{height}, which are in units
-of pels (pixels). The client area is the part of the window that you
-draw on; it does not include the window frame, title bar, etc.
-@end defop
-
-@defop operation os2-graphics-device window-frame-size
-This operation returns the size of the graphics-device window's frame.
-This includes the client area, as well as the border, title bar, etc.
-The size is returned as two values (@pxref{Continuations}), which are
-the width and height of the frame in units of pels (pixels).
-
-The frame size is useful in conjunction with the window position and the
-desktop size to determine relative placement of the window or to
-guarantee that the entire window is visible on the desktop.
-@end defop
-
-@defop operation os2-graphics-device desktop-size
-This operation returns the size of the OS/2 desktop. The size is
-returned as two values (@pxref{Continuations}), which are the width and
-height of the frame in units of pels (pixels).
-@end defop
-
-@defop operation os2-graphics-device raise-window
-This operation raises the graphics-device window so that it is on top of
-any other windows on the desktop.
-@end defop
-
-@defop operation os2-graphics-device lower-window
-This operation lowers the graphics-device window so that it is below all
-other windows on the desktop.
-@end defop
-
-@defop operation os2-graphics-device hide-window
-This operation hides the graphics-device window. The window disappears
-from the desktop, but still appears in the window list.
-@end defop
-
-@defop operation os2-graphics-device minimize-window
-This operation minimizes the graphics-device window. The window
-disappears from the desktop, but still appears in the window list.
-Depending on how you have configured your desktop, the window may appear
-as an icon, either on the desktop or in the minimized window viewer.
-@end defop
-
-@defop operation os2-graphics-device maximize-window
-This operation maximizes the graphics-device window. This causes the
-window to fill the entire desktop.
-@end defop
-
-@defop operation os2-graphics-device restore-window
-This operation restores the graphics-device window to its normal state.
-If the window is hidden or minimized, it is shown again, at its former
-position on the desktop. If the window is maximized, it is returned to
-its normal size.
-@end defop
-
-@defop operation os2-graphics-device activate-window
-This operation makes the graphics-device window be the active window.
-This causes the window to be put in front of all other windows on the
-desktop, highlights its frame, and gives it the keyboard focus.
-@end defop
-
-@defop operation os2-graphics-device deactivate-window
-This operation deactivates the graphics-device window if it was active
-(otherwise it has no effect). This causes some other window to be
-chosen to be active in its place.
-@end defop
-
-@defop operation os2-graphics-device set-window-title title
-This operation changes the text that appears in the graphics device
-window's title bar. The new text is given by @var{title}, which must be
-a string.
-@end defop
-
-@node Event Operations for OS/2 Graphics, Miscellaneous Operations for OS/2 Graphics, Window Operations for OS/2 Graphics, OS/2 Graphics
-@subsection Event Operations for OS/2 Graphics
-
-These operations allow you to read some of the events that are generated
-by the Presentation Manager and put in the message queue of a
-graphics-device window.
-
-@defop operation os2-graphics-device read-button
-This operation waits for the user to push a mouse button inside the
-client area of the graphics-device window. It then returns four values
-(@pxref{Continuations}) which are: the button number; the x and y
-coordinates of the mouse pointer at the time the button was pressed, in
-pels (pixels) relative to the lower left hand corner of the client area;
-and the graphics device that the mouse pointer was over at the time the
-button was pressed.
-
-Note that this operation only works when button events are selected
-(which is the default).
-@end defop
-
-@defop operation os2-graphics-device select-user-events mask
-This operation sets the event-selection mask for the graphics device to
-@var{mask}. The event-selection mask is an exact non-negative integer
-that specifies which types of incoming events are to be saved in the
-user-event queue for later retrieval by the @code{read-user-event}
-operation. The mask is specified by setting the bits corresponding to
-the event types that you are interested in, as follows:
-
-@example
-@group
-Number Mask Description
------- ----- -----------
-0 #x001 Button press/release
-1 #x002 Close (close the window) [WM_CLOSE]
-2 #x004 Focus change [WM_SETFOCUS]
-3 #x008 Key press/release [WM_CHAR]
-4 #x010 Paint [WM_PAINT]
-5 #x020 Size change [WM_SIZE]
-6 #x040 Visibility change [WM_SHOW]
-7 #x080 Command [WM_COMMAND]
-8 #x100 Help [WM_HELP]
-9 #x200 Mouse-move [WM_MOUSEMOVE]
-@end group
-@end example
-
-@noindent
-Note that this operation does not affect any events that are already in
-the user-event queue. Changing the mask only affects what events will
-be added to the queue in the future.
-@end defop
-
-@defop operation os2-graphics-device read-user-event
-This operation returns the next user event available from the user-event
-queue. If there are no events in the queue, the operation waits for an
-event to arrive before returning.
-@end defop
-
-An event is a vector whose first element is the event-type number, whose
-second element is the graphics device that the event refers to, and
-whose remaining elements provide information about the event. Here is a
-table of the possible event types and their vector layout:
-
-@table @code
-@item #(0 @var{device} @var{number} @var{type} @var{x} @var{y} @var{flags})
-A button event. @var{Number} is the button number, for example button
-number @code{0} is usually the left mouse button, @code{1} is usually
-the right button, etc. @var{Type} specifies what occurred: @code{0}
-means the button was pressed, @code{1} means the button was released,
-@code{2} means the button was clicked, and @code{3} means the button was
-double clicked. @var{X} and @var{y} are the position of the mouse
-pointer at the time of the event, in units of pels (pixels) measured
-from the lower left corner of the client area of the associated window.
-Finally, @var{flags} specifies what shift keys were pressed at the time
-of the button event; it is a mask word created by combining zero or more
-of the following flags: @code{#x08} means the shift key was pressed,
-@code{#x10} means the control key was pressed, and @code{#x20} means the
-alt key was pressed.
-
-@item #(1 @var{device})
-A close event. The user has selected the close button from the system
-menu, or typed @key{Alt-f4}.
-
-@item #(2 @var{device} @var{gained?})
-A focus event. If @var{gained?} is @code{#t}, the keyboard focus is
-being gained, and if @var{gained?} is @code{#f}, it is being lost.
-
-@item #(3 @var{device} @var{code} @var{flags} @var{repeat})
-A keyboard event. This is much too complicated to describe here. See
-the OS/2 toolkit documentation for details.
-
-@item #(4 @var{device} @var{xl} @var{xh} @var{yl} @var{yh})
-A paint event. Part of the graphics-device window that was obscured has
-been revealed and the Presentation Manager is informing the window that
-it must repaint that area. Scheme will take care of the painting for
-you, so this event isn't very useful.
-
-@item #(5 @var{device} @var{width} @var{height})
-A size-change event. The size of the graphics-device window has
-changed, and @var{width} and @var{height} specify the new size in pels
-(pixels).
-
-@item #(6 @var{device} @var{shown?})
-A visibility event. Indicates that the graphics-device window has been
-hidden or revealed. If @var{shown?} is @code{#f}, the window is hidden,
-and if it is @code{#t}, the window is shown.
-
-@item #(7 @var{device} @var{source} @var{mouse?})
-@itemx #(8 @var{device} @var{source} @var{mouse?})
-A menu command. @var{Source} specifies which menu item was selected to
-cause this event, and @var{mouse?} is a boolean indicating whether the
-item was selected with the mouse or the keyboard. The event-type number
-@code{7} indicates a command from a @samp{WM_COMMAND} message, while
-@code{8} is a command from a @samp{WM_HELP} message.
-
-@item #(9 @var{device} @var{x} @var{y} @var{hit-test} @var{flags})
-The mouse was moved. @var{X} and @var{y} specify the position of the
-mouse, @var{hit-test} contains the hit-test information, and @var{flags}
-specifies the modifier keys that were pressed at the time.
-@end table
-
-@defop operation os2-graphics-device discard-events
-This operation discards any events that are in the user-event queue.
-This is sometimes useful when you want to prompt the user for some input
-and don't want to consider any previous input.
-@end defop
-
-@node Miscellaneous Operations for OS/2 Graphics, , Event Operations for OS/2 Graphics, OS/2 Graphics
-@subsection Miscellaneous Operations for OS/2 Graphics
-
-These operations allow you to: change the font used for drawing text in
-a graphics-device window; take a snapshot of a graphics-device window
-and return it as an image object; and draw multiple lines efficiently.
-
-@defop operation os2-graphics-device set-font font-name
-This operation sets the font used for drawing text in the
-graphics-device window. @var{Font-name} is a string describing the
-font; this string is in the form "<point-size>.<family-name>", for
-example, @code{"10.Courier"}. You may specify any fixed-pitch font
-family, in any point size that is supported for that font family. This
-includes both image fonts and outline fonts.
-@end defop
-
-@defop operation os2-graphics-device capture-image x-left y-bottom x-right y-top
-This operation creates and returns an image that contains part of the
-client area of the graphics-device window. The portion of the client
-area that is selected is specified by the four coordinate arguments,
-which are given in the current virtual coordinates for the device.
-@xref{Images}, for more information about manipulating images.
-@end defop
-
-@defop operation os2-graphics-device draw-lines xv yv
-This operation draws multiple disjoint lines; it is like multiple calls
-to @code{graphics-draw-line} but much faster. The arguments @var{xv}
-and @var{yv} are vectors of coordinates; these vectors must be the same
-length, and the length must be a multiple of two. The contents of the
-vectors are alternating start/end pairs. For example, the following are
-equivalent:
-
-@example
-@group
-(graphics-draw-line device xs ys xe ye)
-(graphics-operation device 'draw-lines
- (vector xs xe)
- (vector ys ye))
-@end group
-@end example
-@end defop
-@c This file is part of the MIT/GNU Scheme Reference Manual.
-
-@c Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
-@c 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-@c 2005, 2006, 2007, 2008, 2009 Massachusetts Institute of
-@c Technology
-@c See file scheme.texinfo for copying conditions.
-
@node Input/Output, Operating-System Interface, Environments, Top
@chapter Input/Output
@cindex output port, console
@code{console-i/o-port} is an @acronym{I/O} port that communicates
with the ``console''. Under unix, the console is the controlling
-terminal of the Scheme process. Under Windows and OS/2, the console
-is the window that is created when Scheme starts up.
+terminal of the Scheme process. Under Windows, the console is the
+window that is created when Scheme starts up.
This variable is rarely used; instead programs should use one of the
standard ports defined above. This variable should not be modified.
@cindex binary file ports
@cindex newline translation
Any file can be opened in one of two modes, @dfn{normal} or
-@dfn{binary}. Normal mode is for accessing text files, and binary mode
-is for accessing other files. Unix does not distinguish these modes,
-but Windows and OS/2 do: in normal mode, their file ports perform
-@dfn{newline translation}, mapping between the carriage-return/linefeed
-sequence that terminates text lines in files, and the @code{#\newline}
-that terminates lines in Scheme. In binary mode, such ports do not
-perform newline translation. Unless otherwise mentioned, the procedures
-in this section open files in normal mode.
+@dfn{binary}. Normal mode is for accessing text files, and binary
+mode is for accessing other files. Unix does not distinguish these
+modes, but Windows do: in normal mode, their file ports perform
+@dfn{newline translation}, mapping between the
+carriage-return/linefeed sequence that terminates text lines in files,
+and the @code{#\newline} that terminates lines in Scheme. In binary
+mode, such ports do not perform newline translation. Unless otherwise
+mentioned, the procedures in this section open files in normal mode.
@deffn procedure open-input-file filename
@cindex construction, of file input port
-@c This file is part of the MIT/GNU Scheme Reference Manual.
-
-@c Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
-@c 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-@c 2005, 2006, 2007, 2008, 2009 Massachusetts Institute of
-@c Technology
-@c See file scheme.texinfo for copying conditions.
-
@node Lists, Vectors, Strings, Top
@chapter Lists
-@c This file is part of the MIT/GNU Scheme Reference Manual.
-
-@c Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
-@c 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-@c 2005, 2006, 2007, 2008, 2009 Massachusetts Institute of
-@c Technology
-@c See file scheme.texinfo for copying conditions.
-
@node Miscellaneous Datatypes, Associations, Bit Strings, Top
@chapter Miscellaneous Datatypes
-@c This file is part of the MIT/GNU Scheme Reference Manual.
-
-@c Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
-@c 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-@c 2005, 2006, 2007, 2008, 2009 Massachusetts Institute of
-@c Technology
-@c See file scheme.texinfo for copying conditions.
-
@node Numbers, Characters, Equivalence Predicates, Top
@chapter Numbers
@cindex number
-@c This file is part of the MIT/GNU Scheme Reference Manual.
-
-@c Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
-@c 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-@c 2005, 2006, 2007, 2008, 2009 Massachusetts Institute of
-@c Technology
-@c See file scheme.texinfo for copying conditions.
-
@node Operating-System Interface, Error System, Input/Output, Top
@chapter Operating-System Interface
@cindex Operating-System Interface
Any component of a pathname may be the symbol @code{unspecific}, meaning
that the component simply does not exist, for file systems in which such
-a value makes no sense. For example, unix, Windows, and OS/2 file
+a value makes no sense. For example, unix and Windows file
systems usually do not support version numbers, so the version component
for such a host might be @code{unspecific}.@footnote{This description is
adapted from @cite{Common Lisp, The Language}, second edition, section
@code{host?} predicate.
@item device
-On systems that support this component (Windows and OS/2), it may be
-specified as a string containing a single alphabetic character, for
-which the alphabetic case is ignored.
+On systems that support this component (Windows), it may be specified
+as a string containing a single alphabetic character, for which the
+alphabetic case is ignored.
@item directory
A non-empty list, which represents a @dfn{directory path}: a sequence of
The @var{host} argument defaults to the value of @code{local-host}. If
the initialization file does not exist this procedure returns @code{#f}.
-Under unix, the init file is called @file{.scheme.init}; under Windows
-and OS/2, the init file is called @file{scheme.ini}. In either
-case, it is located in the user's home directory, which is computed by
+Under unix, the init file is called @file{.scheme.init}; under
+Windows, the init file is called @file{scheme.ini}. In either case,
+it is located in the user's home directory, which is computed by
@code{user-homedir-pathname}.
@end deffn
@code{getuid} system call. The resulting user name is passed to the
@code{getpwnam} system call to obtain the home directory.
-Under OS/2, several heuristics are tried to find the user's home
-directory. First, if the environment variable @code{HOME} is defined,
-that is the home directory. If @code{HOME} is undefined, but the
-@code{USERDIR} and @code{USER} environment variables are defined and
-the directory @file{%USERDIR%\%USER%} exists, then it is used. Failing
-that, if the directory @file{%USER%} exists on the OS/2 system
-drive, then it is used. As a last resort, the OS/2 system drive is
-the home directory.
-
-Like OS/2, the Windows implementation uses heuristics based on
-environment variables. The user's home directory is computed by
-examining several environment variables, in the following order:
+Under Windows, several heuristics are tried to find the user's home
+directory. The user's home directory is computed by examining several
+environment variables, in the following order:
@itemize @bullet
@item
@file{/tmp}.
@item
-Under OS/2 or Windows, the following directories on the system drive:
+Under Windows, the following directories on the system drive:
@file{\temp}, @file{\tmp}, or @file{\}.
@item
-Under OS/2 or Windows, the current directory, as specified by
+Under Windows, the current directory, as specified by
@code{*default-pathname-defaults*}.
@end itemize
@end deffn
unix-block-device
unix-named-pipe
unix-socket
-os2-named-pipe
win32-named-pipe
@end example
@end deffn
@deffn procedure file-executable? filename
Returns @code{#t} if @var{filename} names a file that can be executed.
Otherwise returns @code{#f}. Under unix, an executable file is
-identified by its mode bits. Under OS/2, an executable file has
-one of the file extensions @file{.exe}, @file{.com}, @file{.cmd}, or
-@file{.bat}. Under Windows, an executable file has one of the file
-extensions @file{.exe}, @file{.com}, or @file{.bat}.
+identified by its mode bits. Under Windows, an executable file has
+one of the file extensions @file{.exe}, @file{.com}, or @file{.bat}.
@end deffn
@deffn procedure file-access filename mode
@end deffn
@deffn procedure file-eq? filename1 filename2
-Determines whether @var{filename1} and @var{filename2} refer to the same
-file. Under unix, this is done by comparing the inodes and devices of
-the two files. Under OS/2 and Windows, this is done by comparing
+Determines whether @var{filename1} and @var{filename2} refer to the
+same file. Under unix, this is done by comparing the inodes and
+devices of the two files. Under Windows, this is done by comparing
the filename strings.
@end deffn
@deffn procedure file-modes filename
If @var{filename} names an existing file, @code{file-modes} returns an
exact non-negative integer encoding the file's permissions. The
-encoding of this integer is operating-system dependent. Under unix, it
-is the least-significant 12 bits of the @code{st_mode} element of the
-@code{struct stat} structure. Under OS/2 and Windows, it is the file
+encoding of this integer is operating-system dependent. Under unix,
+it is the least-significant 12 bits of the @code{st_mode} element of
+the @code{struct stat} structure. Under Windows, it is the file
attribute bits, which are described below. If @var{filename} does not
name an existing file, @code{#f} is returned.
@end deffn
permissions to be those encoded by @var{modes}.
@end deffn
-@defvr variable os2-file-mode/read-only
-@defvrx variable os2-file-mode/hidden
-@defvrx variable os2-file-mode/system
-@defvrx variable os2-file-mode/directory
-@defvrx variable os2-file-mode/archived
-The values of these variables are the ``mode bits'' that comprise the
-value returned by @code{file-modes} under OS/2. These bits are small
-integers that are combined by adding to form a complete set of modes.
-The integer zero represents a set of modes in which none of these bits
-are set.
-@end defvr
-
@defvr variable nt-file-mode/read-only
@defvrx variable nt-file-mode/hidden
@defvrx variable nt-file-mode/system
@end deffn
@deffn procedure file-attributes/mode-string attributes
-The mode string of the file, a newly allocated string showing the file's
-mode bits. Under unix, this string is in unix format. Under OS/2 and
+The mode string of the file, a newly allocated string showing the
+file's mode bits. Under unix, this string is in unix format. Under
Windows, this string shows the standard ``DOS'' attributes in their
usual format.
@end deffn
@deffn procedure file-attributes/n-links attributes
The number of links to the file, an exact positive integer. Under
-Windows and OS/2, this is always @code{1}.
+Windows, this is always @code{1}.
@end deffn
The following additional accessors are defined under unix:
The inode number of the file, an exact non-negative integer.
@end deffn
-The following additional accessor is defined under OS/2 and Windows:
+The following additional accessor is defined under Windows:
@deffn procedure file-attributes/modes attributes
The attribute bits of the file. This is an exact non-negative integer
operating system's API.
@end deffn
-The following additional accessor is defined under OS/2:
-
-@deffn procedure file-attributes/allocated-length attributes
-The allocated length of the file, which can be larger than the length of
-the file due to fixed-length allocation units.
-@end deffn
-
@node Directory Reader, Date and Time, File Manipulation, Operating-System Interface
@section Directory Reader
@cindex directory, reading
version components match those of @var{directory}; @code{wild} or
@code{#f} as one of these components means ``match anything''.
-The OS/2 and Windows implementations support ``globbing'', in which the
+The Windows implementation supports ``globbing'', in which the
characters @code{*} and @code{?} are interpreted to mean ``match
-anything'' and ``match any character'', respectively. This ``globbing''
-is supported only in the file part of @var{directory}.
+anything'' and ``match any character'', respectively. This
+``globbing'' is supported only in the file part of @var{directory}.
@end deffn
@node Date and Time, Machine Time, Directory Reader, Operating-System Interface
is the number of seconds since midnight January 1, 1970 UTC (the
standard unix time convention).
-OS/2 represents file time as a 32-bit unsigned integer, in which the
-time components are broken down into unsigned bit fields. The
-components are always stated in local time. The fields, from MSB to
-LSB, are:
-
-@itemize @bullet
-@item
-7 bits representing the year, relative to 1900.
-
-@item
-4 bits representing the month, numbered 1 to 12.
-
-@item
-5 bits representing the day of the month, numbered 1 to 31.
-
-@item
-5 bits representing the hour of the day, numbered 0 to 23.
-
-@item
-6 bits representing the minute, numbered 0 to 59.
-
-@item
-5 bits representing the second. This field is unusual in that it counts
-units of two seconds, so it is a number between 0 and 29, representing
-second counts corresponding to 0 through 58.
-@end itemize
-
The following procedures generate their results in file-time format:
@example
@item
On unix systems, @file{/bin/sh} is used.
-@item
-On OS/2 systems, the value of the environment variable @code{COMSPEC} is
-used, or if that is not set, @file{cmd.exe} on the current path.
-
@item
On Windows systems, the value of the environment variable @code{COMSPEC}
is used. If that is not set, @file{cmd.exe} is used for Windows NT, or
@defvrx variable microcode-id/operating-system-name
@code{microcode-id/operating-system} is bound to a symbol that specifies
the type of operating system that Scheme is running under. There are
-three possible values: @code{unix}, @code{os/2}, or @code{nt}.
+two possible values: @code{unix} or @code{nt}.
@code{microcode-id/operating-system-name} is a string containing the
same name as @code{microcode-id/operating-system}; the latter is created
@example
@group
"GNU/Linux"
-"FreeBSD"
-"DragonFlyBSD"
-"HP-UX"
-"SunOS"
-"OS/2 2.1"
-"OS/2 4.0"
+"MacOSX"
"Microsoft Windows NT 4.0 (Build 1381; Service Pack 3)"
-"Microsoft Windows 98 (Build 410)"
@end group
@end example
-@c This file is part of the MIT/GNU Scheme Reference Manual.
-
-@c Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
-@c 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-@c 2005, 2006, 2007, 2008, 2009 Massachusetts Institute of
-@c Technology
-@c See file scheme.texinfo for copying conditions.
-
@node Overview, Special Forms, Acknowledgements, Top
@chapter Overview
-@c This file is part of the MIT/GNU Scheme Reference Manual.
-
-@c Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
-@c 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-@c 2005, 2006, 2007, 2008, 2009 Massachusetts Institute of
-@c Technology
-@c See file scheme.texinfo for copying conditions.
-
-@node Procedures
+@node Procedures, Environments, Associations, Top
@chapter Procedures
@cindex procedure
\input texinfo @c -*-texinfo-*-
@comment %**start of header
@setfilename mit-scheme-ref
-@set EDITION 1.103
-@set VERSION 7.7.90+
-@set UPDATED 2005-12-09
+@set EDITION 1.104
+@set VERSION 9.0.1
+@set UPDATED 2010-03-09
@settitle MIT/GNU Scheme @value{VERSION}
@comment %**end of header
@setchapternewpage odd
Copyright @copyright{} 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993,
1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
- 2005, 2006, 2007, 2008, 2009 Massachusetts Institute of Technology
+ 2005, 2006, 2007, 2008, 2009, 2010 Massachusetts Institute of
+ Technology
@quotation
Permission is granted to copy, distribute and/or modify this document
* Binding Index::
* Concept Index::
-@ifnothtml
@detailmenu
--- The Detailed Node Listing ---
* cond-expand (SRFI 0)::
* receive (SRFI 8)::
-* and-let* (SRFI 2)::
+* and-let* (SRFI 2)::
* define-record-type (SRFI 9)::
Numbers
Procedures
* Procedure Operations::
+* Arity::
* Primitive Procedures::
* Continuations::
* Application Hooks::
+* Generic Dispatch::
+
+Generic Dispatch
+
+* Generic Procedures::
+* Method Generators::
+* Dispatch Tags::
Environments
* Images::
* X Graphics:: Graphics on the X Window System
* Win32 Graphics:: Graphics on Microsoft Windows and Windows NT
-* OS/2 Graphics:: Graphics on IBM OS/2
X Graphics
* Win32 Graphics Type::
* Custom Operations for Win32 Graphics:: Custom Operations for Win32 Graphics Devices
-OS/2 Graphics
-
-* OS/2 Graphics Type::
-* Color Operations for OS/2 Graphics::
-* Window Operations for OS/2 Graphics::
-* Event Operations for OS/2 Graphics::
-* Miscellaneous Operations for OS/2 Graphics::
-
Win32 Package Reference
* Win32 Package Overview::
* Other parts of the DIB Utilities implementation::
@end detailmenu
-@end ifnothtml
@end menu
@include acknowledgements.texi
-@c This file is part of the MIT/GNU Scheme Reference Manual.
-
-@c Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
-@c 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-@c 2005, 2006, 2007, 2008, 2009 Massachusetts Institute of
-@c Technology
-@c See file scheme.texinfo for copying conditions.
-
@node Special Forms, Equivalence Predicates, Overview, Top
@chapter Special Forms
@menu
* cond-expand (SRFI 0)::
* receive (SRFI 8)::
-* and-let* (SRFI 2)::
+* and-let* (SRFI 2)::
* define-record-type (SRFI 9)::
@end menu
-@c This file is part of the MIT/GNU Scheme Reference Manual.
-
-@c Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
-@c 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-@c 2005, 2006, 2007, 2008, 2009 Massachusetts Institute of
-@c Technology
-@c See file scheme.texinfo for copying conditions.
-
@node Strings, Lists, Characters, Top
@chapter Strings
-@c This file is part of the MIT/GNU Scheme Reference Manual.
-
-@c Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
-@c 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-@c 2005, 2006, 2007, 2008, 2009 Massachusetts Institute of
-@c Technology
-@c See file scheme.texinfo for copying conditions.
-
@node Vectors, Bit Strings, Lists, Top
@chapter Vectors
-@c This file is part of the MIT/GNU Scheme Reference Manual.
-
-@c Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
-@c 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-@c 2005, 2006, 2007, 2008, 2009 Massachusetts Institute of
-@c Technology
-@c See file scheme.texinfo for copying conditions.
-
@node Win32 Package Reference, GNU Free Documentation License, Graphics, Top
@chapter Win32 Package Reference