X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=info%2Flispref.info-41;h=db6a20fd80e4de34f3c60da508c656f829b1c552;hb=70241ad4f7ff48fd1aa7c62c4b72fa18463f6aee;hp=73d925560d8ffa07ccd5106064cd0ee82027929a;hpb=430e0db85cc37821320fe27da9feeacc7961003f;p=chise%2Fxemacs-chise.git diff --git a/info/lispref.info-41 b/info/lispref.info-41 index 73d9255..db6a20f 100644 --- a/info/lispref.info-41 +++ b/info/lispref.info-41 @@ -1,5 +1,5 @@ -This is Info file ../../info/lispref.info, produced by Makeinfo version -1.68 from the input file lispref.texi. +This is ../info/lispref.info, produced by makeinfo version 4.0b from +lispref/lispref.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -50,1175 +50,1225 @@ may be included in a translation approved by the Free Software Foundation instead of in the original English.  -File: lispref.info, Node: Level 3 Primitives, Next: Dynamic Messaging, Prev: Level 3 Basics, Up: I18N Level 3 +File: lispref.info, Node: System Environment, Next: User Identification, Prev: Getting Out, Up: System Interface -Level 3 Primitives ------------------- +Operating System Environment +============================ - - Function: gettext STRING - This function looks up STRING in the default message domain and - returns its translation. If `I18N3' was not enabled when XEmacs - was compiled, it just returns STRING. + XEmacs provides access to variables in the operating system +environment through various functions. These variables include the +name of the system, the user's UID, and so on. - - Function: dgettext DOMAIN STRING - This function looks up STRING in the specified message domain and - returns its translation. If `I18N3' was not enabled when XEmacs - was compiled, it just returns STRING. + - Variable: system-type + The value of this variable is a symbol indicating the type of + operating system XEmacs is operating on. Here is a table of the + possible values: - - Function: bind-text-domain DOMAIN PATHNAME - This function associates a pathname with a message domain. Here's - how the path to message file is constructed under SunOS 5.x: + `aix-v3' + AIX. - `{pathname}/{LANG}/LC_MESSAGES/{domain}.mo' + `berkeley-unix' + Berkeley BSD. - If `I18N3' was not enabled when XEmacs was compiled, this function - does nothing. + `dgux' + Data General DGUX operating system. - - Special Form: domain STRING - This function specifies the text domain used for translating - documentation strings and interactive prompts of a function. For - example, write: + `gnu' + A GNU system using the GNU HURD and Mach. - (defun foo (arg) "Doc string" (domain "emacs-foo") ...) + `hpux' + Hewlett-Packard HPUX operating system. - to specify `emacs-foo' as the text domain of the function `foo'. - The "call" to `domain' is actually a declaration rather than a - function; when actually called, `domain' just returns `nil'. + `irix' + Silicon Graphics Irix system. - - Function: domain-of FUNCTION - This function returns the text domain of FUNCTION; it returns - `nil' if it is the default domain. If `I18N3' was not enabled - when XEmacs was compiled, it always returns `nil'. + `linux' + A GNU system using the Linux kernel. - -File: lispref.info, Node: Dynamic Messaging, Next: Domain Specification, Prev: Level 3 Primitives, Up: I18N Level 3 + `ms-dos' + Microsoft MS-DOS "operating system." -Dynamic Messaging ------------------ + `next-mach' + NeXT Mach-based system. - The `format' function has been extended to permit you to change the -order of parameter insertion. For example, the conversion format -`%1$s' inserts parameter one as a string, while `%2$s' inserts -parameter two. This is useful when creating translations which require -you to change the word order. + `rtu' + Masscomp RTU, UCB universe. - -File: lispref.info, Node: Domain Specification, Next: Documentation String Extraction, Prev: Dynamic Messaging, Up: I18N Level 3 + `unisoft-unix' + UniSoft UniPlus. -Domain Specification --------------------- + `usg-unix-v' + AT&T System V. - The default message domain of XEmacs is `emacs'. For add-on -packages, it is best to use a different domain. For example, let us -say we want to convert the "gorilla" package to use the domain -`emacs-gorilla'. To translate the message "What gorilla?", use -`dgettext' as follows: + `windows-nt' + Microsoft windows NT. - (dgettext "emacs-gorilla" "What gorilla?") + `xenix' + SCO Xenix 386. - A function (or macro) which has a documentation string or an -interactive prompt needs to be associated with the domain in order for -the documentation or prompt to be translated. This is done with the -`domain' special form as follows: + We do not wish to add new symbols to make finer distinctions + unless it is absolutely necessary! In fact, we hope to eliminate + some of these alternatives in the future. We recommend using + `system-configuration' to distinguish between different operating + systems. - (defun scratch (location) - "Scratch the specified location." - (domain "emacs-gorilla") - (interactive "sScratch: ") - ... ) + - Variable: system-configuration + This variable holds the three-part configuration name for the + hardware/software configuration of your system, as a string. The + convenient way to test parts of this string is with `string-match'. + + - Function: system-name + This function returns the name of the machine you are running on. + (system-name) + => "prep.ai.mit.edu" + + The symbol `system-name' is a variable as well as a function. In +fact, the function returns whatever value the variable `system-name' +currently holds. Thus, you can set the variable `system-name' in case +Emacs is confused about the name of your system. The variable is also +useful for constructing frame titles (*note Frame Titles::). + + - Variable: mail-host-address + If this variable is non-`nil', it is used instead of `system-name' + for purposes of generating email addresses. For example, it is + used when constructing the default value of `user-mail-address'. + *Note User Identification::. (Since this is done when XEmacs + starts up, the value actually used is the one saved when XEmacs + was dumped. *Note Building XEmacs::.) + + - Command: getenv var &optional interactivep + This function returns the value of the environment variable VAR, + as a string. Within XEmacs, the environment variable values are + kept in the Lisp variable `process-environment'. + + When invoked interactively, `getenv' prints the value in the echo + area. + + (getenv "USER") + => "lewis" + + lewis@slug[10] % printenv + PATH=.:/user/lewis/bin:/usr/bin:/usr/local/bin + USER=lewis + TERM=ibmapa16 + SHELL=/bin/csh + HOME=/user/lewis + + - Command: setenv variable &optional value unset + This command sets the value of the environment variable named + VARIABLE to VALUE. Both arguments should be strings. This + function works by modifying `process-environment'; binding that + variable with `let' is also reasonable practice. + + - Variable: process-environment + This variable is a list of strings, each describing one environment + variable. The functions `getenv' and `setenv' work by + manipulating this variable. + + process-environment + => ("l=/usr/stanford/lib/gnuemacs/lisp" + "PATH=.:/user/lewis/bin:/usr/class:/nfsusr/local/bin" + "USER=lewis" + "TERM=ibmapa16" + "SHELL=/bin/csh" + "HOME=/user/lewis") + + - Variable: path-separator + This variable holds a string which says which character separates + directories in a search path (as found in an environment + variable). Its value is `":"' for Unix and GNU systems, and `";"' + for MS-DOS and Windows NT. + + - Variable: invocation-name + This variable holds the program name under which Emacs was + invoked. The value is a string, and does not include a directory + name. + + - Variable: invocation-directory + This variable holds the directory from which the Emacs executable + was invoked, or perhaps `nil' if that directory cannot be + determined. + + - Variable: installation-directory + If non-`nil', this is a directory within which to look for the + `lib-src' and `etc' subdirectories. This is non-`nil' when Emacs + can't find those directories in their standard installed + locations, but can find them in a directory related somehow to the + one containing the Emacs executable. + + - Function: load-average &optional use-floats + This function returns a list of the current 1-minute, 5-minute and + 15-minute load averages. The values are integers that are 100 + times the system load averages. (The load averages indicate the + number of processes trying to run.) + + When USE-FLOATS is non-`nil', floats will be returned instead of + integers. These floats are not multiplied by 100. + + (load-average) + => (169 158 164) + (load-average t) + => (1.69921875 1.58984375 1.640625) + + lewis@rocky[5] % uptime + 8:06pm up 16 day(s), 21:57, 40 users, + load average: 1.68, 1.59, 1.64 + + If the 5-minute or 15-minute load averages are not available, + return a shortened list, containing only those averages which are + available. + + On some systems, this function may require special privileges to + run, or it may be unimplemented for the particular system type. + In that case, the function will signal an error. + + - Function: emacs-pid + This function returns the process ID of the Emacs process. - It is most efficient to specify the domain in the first line of the -function body, before the `interactive' form. + +File: lispref.info, Node: User Identification, Next: Time of Day, Prev: System Environment, Up: System Interface - For variables and constants which have documentation strings, -specify the domain after the documentation. +User Identification +=================== - - Special Form: defvar SYMBOL [VALUE [DOC-STRING [DOMAIN]]] - Example: - (defvar weight 250 "Weight of gorilla, in pounds." "emacs-gorilla") + - Variable: user-mail-address + This holds the nominal email address of the user who is using + Emacs. When Emacs starts up, it computes a default value that is + usually right, but users often set this themselves when the + default value is not right. - - Special Form: defconst SYMBOL [VALUE [DOC-STRING [DOMAIN]]] - Example: - (defconst limbs 4 "Number of limbs" "emacs-gorilla") + - Function: user-login-name &optional uid + If you don't specify UID, this function returns the name under + which the user is logged in. If the environment variable `LOGNAME' + is set, that value is used. Otherwise, if the environment variable + `USER' is set, that value is used. Otherwise, the value is based + on the effective UID, not the real UID. - Autoloaded functions which are specified in `loaddefs.el' do not need -to have a domain specification, because their documentation strings are -extracted into the main message base. However, for autoloaded functions -which are specified in a separate package, use following syntax: + If you specify UID, the value is the user name that corresponds to + UID (which should be an integer). - - Function: autoload SYMBOL FILENAME &optional DOCSTRING INTERACTIVE - MACRO DOMAIN - Example: - (autoload 'explore "jungle" "Explore the jungle." nil nil "emacs-gorilla") + (user-login-name) + => "lewis" - -File: lispref.info, Node: Documentation String Extraction, Prev: Domain Specification, Up: I18N Level 3 + - Function: user-real-login-name + This function returns the user name corresponding to Emacs's real + UID. This ignores the effective UID and ignores the environment + variables `LOGNAME' and `USER'. -Documentation String Extraction -------------------------------- + - Variable: user-full-name + This variable holds the name of the user running this Emacs. It is + initialized at startup time from the value of `NAME' environment + variable. You can change the value of this variable to alter the + result of the `user-full-name' function. - The utility `etc/make-po' scans the file `DOC' to extract -documentation strings and creates a message file `doc.po'. This file -may then be inserted within `emacs.po'. + - Function: user-full-name &optional user + This function returns the full name of USER. If USER is `nil', it + defaults to the user running this Emacs. In that case, the value + of `user-full-name' variable, if non-`nil', will be used. - Currently, `make-po' is hard-coded to read from `DOC' and write to -`doc.po'. In order to extract documentation strings from an add-on -package, first run `make-docfile' on the package to produce the `DOC' -file. Then run `make-po -p' with the `-p' argument to indicate that we -are extracting documentation for an add-on package. + If USER is specified explicitly, `user-full-name' variable is + ignored. - (The `-p' argument is a kludge to make up for a subtle difference -between pre-loaded documentation and add-on documentation: For add-on -packages, the final carriage returns in the strings produced by -`make-docfile' must be ignored.) + (user-full-name) + => "Hrvoje Niksic" + (setq user-full-name "Hrvoje \"Niksa\" Niksic") + (user-full-name) + => "Hrvoje \"Niksa\" Niksic" + (user-full-name "hniksic") + => "Hrvoje Niksic" - -File: lispref.info, Node: I18N Level 4, Prev: I18N Level 3, Up: Internationalization + The symbols `user-login-name', `user-real-login-name' and +`user-full-name' are variables as well as functions. The functions +return the same values that the variables hold. These variables allow +you to "fake out" Emacs by telling the functions what to return. The +variables are also useful for constructing frame titles (*note Frame +Titles::). -I18N Level 4 -============ + - Function: user-real-uid + This function returns the real UID of the user. - The Asian-language support in XEmacs is called "MULE". *Note MULE::. + (user-real-uid) + => 19 - -File: lispref.info, Node: MULE, Next: Tips, Prev: Internationalization, Up: Top + - Function: user-uid + This function returns the effective UID of the user. -MULE -**** + - Function: user-home-directory + This function returns the "`HOME'" directory of the user, and is + intended to replace occurrences of "`(getenv "HOME")'". Under + Unix systems, the following is done: - "MULE" is the name originally given to the version of GNU Emacs -extended for multi-lingual (and in particular Asian-language) support. -"MULE" is short for "MUlti-Lingual Emacs". It was originally called -Nemacs ("Nihon Emacs" where "Nihon" is the Japanese word for "Japan"), -when it only provided support for Japanese. XEmacs refers to its -multi-lingual support as "MULE support" since it is based on "MULE". + 1. Return the value of "`(getenv "HOME")'", if set. -* Menu: + 2. Return "/", as a fallback, but issue a warning. (Future + versions of XEmacs will also attempt to lookup the `HOME' + directory via `getpwent()', but this has not yet been + implemented.) -* Internationalization Terminology:: - Definition of various internationalization terms. -* Charsets:: Sets of related characters. -* MULE Characters:: Working with characters in XEmacs/MULE. -* Composite Characters:: Making new characters by overstriking other ones. -* ISO 2022:: An international standard for charsets and encodings. -* Coding Systems:: Ways of representing a string of chars using integers. -* CCL:: A special language for writing fast converters. -* Category Tables:: Subdividing charsets into groups. + Under MS Windows, this is done: + + 1. Return the value of "`(getenv "HOME")'", if set. + + 2. If the environment variables `HOMEDRIVE' and `HOMEDIR' are + both set, return the concatenation (the following description + uses MS Windows environment variable substitution syntax): + `%HOMEDRIVE%%HOMEDIR%'. + + 3. Return "C:\", as a fallback, but issue a warning.  -File: lispref.info, Node: Internationalization Terminology, Next: Charsets, Up: MULE - -Internationalization Terminology -================================ - - In internationalization terminology, a string of text is divided up -into "characters", which are the printable units that make up the text. -A single character is (for example) a capital `A', the number `2', a -Katakana character, a Kanji ideograph (an "ideograph" is a "picture" -character, such as is used in Japanese Kanji, Chinese Hanzi, and Korean -Hangul; typically there are thousands of such ideographs in each -language), etc. The basic property of a character is its shape. Note -that the same character may be drawn by two different people (or in two -different fonts) in slightly different ways, although the basic shape -will be the same. - - In some cases, the differences will be significant enough that it is -actually possible to identify two or more distinct shapes that both -represent the same character. For example, the lowercase letters `a' -and `g' each have two distinct possible shapes - the `a' can optionally -have a curved tail projecting off the top, and the `g' can be formed -either of two loops, or of one loop and a tail hanging off the bottom. -Such distinct possible shapes of a character are called "glyphs". The -important characteristic of two glyphs making up the same character is -that the choice between one or the other is purely stylistic and has no -linguistic effect on a word (this is the reason why a capital `A' and -lowercase `a' are different characters rather than different glyphs - -e.g. `Aspen' is a city while `aspen' is a kind of tree). - - Note that "character" and "glyph" are used differently here than -elsewhere in XEmacs. - - A "character set" is simply a set of related characters. ASCII, for -example, is a set of 94 characters (or 128, if you count non-printing -characters). Other character sets are ISO8859-1 (ASCII plus various -accented characters and other international symbols), JISX0201 (ASCII, -more or less, plus half-width Katakana), JISX0208 (Japanese Kanji), -JISX0212 (a second set of less-used Japanese Kanji), GB2312 (Mainland -Chinese Hanzi), etc. - - Every character set has one or more "orderings", which can be viewed -as a way of assigning a number (or set of numbers) to each character in -the set. For most character sets, there is a standard ordering, and in -fact all of the character sets mentioned above define a particular -ordering. ASCII, for example, places letters in their "natural" order, -puts uppercase letters before lowercase letters, numbers before -letters, etc. Note that for many of the Asian character sets, there is -no natural ordering of the characters. The actual orderings are based -on one or more salient characteristic, of which there are many to -choose from - e.g. number of strokes, common radicals, phonetic -ordering, etc. - - The set of numbers assigned to any particular character are called -the character's "position codes". The number of position codes -required to index a particular character in a character set is called -the "dimension" of the character set. ASCII, being a relatively small -character set, is of dimension one, and each character in the set is -indexed using a single position code, in the range 0 through 127 (if -non-printing characters are included) or 33 through 126 (if only the -printing characters are considered). JISX0208, i.e. Japanese Kanji, -has thousands of characters, and is of dimension two - every character -is indexed by two position codes, each in the range 33 through 126. -(Note that the choice of the range here is somewhat arbitrary. -Although a character set such as JISX0208 defines an *ordering* of all -its characters, it does not define the actual mapping between numbers -and characters. You could just as easily index the characters in -JISX0208 using numbers in the range 0 through 93, 1 through 94, 2 -through 95, etc. The reason for the actual range chosen is so that the -position codes match up with the actual values used in the common -encodings.) - - An "encoding" is a way of numerically representing characters from -one or more character sets into a stream of like-sized numerical values -called "words"; typically these are 8-bit, 16-bit, or 32-bit -quantities. If an encoding encompasses only one character set, then the -position codes for the characters in that character set could be used -directly. (This is the case with ASCII, and as a result, most people do -not understand the difference between a character set and an encoding.) -This is not possible, however, if more than one character set is to be -used in the encoding. For example, printed Japanese text typically -requires characters from multiple character sets - ASCII, JISX0208, and -JISX0212, to be specific. Each of these is indexed using one or more -position codes in the range 33 through 126, so the position codes could -not be used directly or there would be no way to tell which character -was meant. Different Japanese encodings handle this differently - JIS -uses special escape characters to denote different character sets; EUC -sets the high bit of the position codes for JISX0208 and JISX0212, and -puts a special extra byte before each JISX0212 character; etc. (JIS, -EUC, and most of the other encodings you will encounter are 7-bit or -8-bit encodings. There is one common 16-bit encoding, which is Unicode; -this strives to represent all the world's characters in a single large -character set. 32-bit encodings are generally used internally in -programs to simplify the code that manipulates them; however, they are -not much used externally because they are not very space-efficient.) - - Encodings are classified as either "modal" or "non-modal". In a -"modal encoding", there are multiple states that the encoding can be in, -and the interpretation of the values in the stream depends on the -current global state of the encoding. Special values in the encoding, -called "escape sequences", are used to change the global state. JIS, -for example, is a modal encoding. The bytes `ESC $ B' indicate that, -from then on, bytes are to be interpreted as position codes for -JISX0208, rather than as ASCII. This effect is cancelled using the -bytes `ESC ( B', which mean "switch from whatever the current state is -to ASCII". To switch to JISX0212, the escape sequence `ESC $ ( D'. -(Note that here, as is common, the escape sequences do in fact begin -with `ESC'. This is not necessarily the case, however.) - - A "non-modal encoding" has no global state that extends past the -character currently being interpreted. EUC, for example, is a -non-modal encoding. Characters in JISX0208 are encoded by setting the -high bit of the position codes, and characters in JISX0212 are encoded -by doing the same but also prefixing the character with the byte 0x8F. - - The advantage of a modal encoding is that it is generally more -space-efficient, and is easily extendable because there are essentially -an arbitrary number of escape sequences that can be created. The -disadvantage, however, is that it is much more difficult to work with -if it is not being processed in a sequential manner. In the non-modal -EUC encoding, for example, the byte 0x41 always refers to the letter -`A'; whereas in JIS, it could either be the letter `A', or one of the -two position codes in a JISX0208 character, or one of the two position -codes in a JISX0212 character. Determining exactly which one is meant -could be difficult and time-consuming if the previous bytes in the -string have not already been processed. - - Non-modal encodings are further divided into "fixed-width" and -"variable-width" formats. A fixed-width encoding always uses the same -number of words per character, whereas a variable-width encoding does -not. EUC is a good example of a variable-width encoding: one to three -bytes are used per character, depending on the character set. 16-bit -and 32-bit encodings are nearly always fixed-width, and this is in fact -one of the main reasons for using an encoding with a larger word size. -The advantages of fixed-width encodings should be obvious. The -advantages of variable-width encodings are that they are generally more -space-efficient and allow for compatibility with existing 8-bit -encodings such as ASCII. - - Note that the bytes in an 8-bit encoding are often referred to as -"octets" rather than simply as bytes. This terminology dates back to -the days before 8-bit bytes were universal, when some computers had -9-bit bytes, others had 10-bit bytes, etc. +File: lispref.info, Node: Time of Day, Next: Time Conversion, Prev: User Identification, Up: System Interface + +Time of Day +=========== + + This section explains how to determine the current time and the time +zone. + + - Function: current-time-string &optional time-value + This function returns the current time and date as a + humanly-readable string. The format of the string is unvarying; + the number of characters used for each part is always the same, so + you can reliably use `substring' to extract pieces of it. It is + wise to count the characters from the beginning of the string + rather than from the end, as additional information may be added + at the end. + + The argument TIME-VALUE, if given, specifies a time to format + instead of the current time. The argument should be a list whose + first two elements are integers. Thus, you can use times obtained + from `current-time' (see below) and from `file-attributes' (*note + File Attributes::). + + (current-time-string) + => "Wed Oct 14 22:21:05 1987" + + - Function: current-time + This function returns the system's time value as a list of three + integers: `(HIGH LOW MICROSEC)'. The integers HIGH and LOW + combine to give the number of seconds since 0:00 January 1, 1970, + which is HIGH * 2**16 + LOW. + + The third element, MICROSEC, gives the microseconds since the + start of the current second (or 0 for systems that return time + only on the resolution of a second). + + The first two elements can be compared with file time values such + as you get with the function `file-attributes'. *Note File + Attributes::. + + - Function: current-time-zone &optional time-value + This function returns a list describing the time zone that the + user is in. + + The value has the form `(OFFSET NAME)'. Here OFFSET is an integer + giving the number of seconds ahead of UTC (east of Greenwich). A + negative value means west of Greenwich. The second element, NAME + is a string giving the name of the time zone. Both elements + change when daylight savings time begins or ends; if the user has + specified a time zone that does not use a seasonal time + adjustment, then the value is constant through time. + + If the operating system doesn't supply all the information + necessary to compute the value, both elements of the list are + `nil'. + + The argument TIME-VALUE, if given, specifies a time to analyze + instead of the current time. The argument should be a cons cell + containing two integers, or a list whose first two elements are + integers. Thus, you can use times obtained from `current-time' + (see above) and from `file-attributes' (*note File Attributes::).  -File: lispref.info, Node: Charsets, Next: MULE Characters, Prev: Internationalization Terminology, Up: MULE +File: lispref.info, Node: Time Conversion, Next: Timers, Prev: Time of Day, Up: System Interface -Charsets -======== +Time Conversion +=============== - A "charset" in MULE is an object that encapsulates a particular -character set as well as an ordering of those characters. Charsets are -permanent objects and are named using symbols, like faces. + These functions convert time values (lists of two or three integers) +to strings or to calendrical information. There is also a function to +convert calendrical information to a time value. You can get time +values from the functions `current-time' (*note Time of Day::) and +`file-attributes' (*note File Attributes::). - - Function: charsetp OBJECT - This function returns non-`nil' if OBJECT is a charset. + - Function: format-time-string format-string &optional time + This function converts TIME to a string according to + FORMAT-STRING. If TIME is omitted, it defaults to the current + time. The argument FORMAT-STRING may contain `%'-sequences which + say to substitute parts of the time. Here is a table of what the + `%'-sequences mean: -* Menu: + `%a' + This stands for the abbreviated name of the day of week. -* Charset Properties:: Properties of a charset. -* Basic Charset Functions:: Functions for working with charsets. -* Charset Property Functions:: Functions for accessing charset properties. -* Predefined Charsets:: Predefined charset objects. + `%A' + This stands for the full name of the day of week. - -File: lispref.info, Node: Charset Properties, Next: Basic Charset Functions, Up: Charsets - -Charset Properties ------------------- - - Charsets have the following properties: - -`name' - A symbol naming the charset. Every charset must have a different - name; this allows a charset to be referred to using its name - rather than the actual charset object. - -`doc-string' - A documentation string describing the charset. - -`registry' - A regular expression matching the font registry field for this - character set. For example, both the `ascii' and `latin-iso8859-1' - charsets use the registry `"ISO8859-1"'. This field is used to - choose an appropriate font when the user gives a general font - specification such as `-*-courier-medium-r-*-140-*', i.e. a - 14-point upright medium-weight Courier font. - -`dimension' - Number of position codes used to index a character in the - character set. XEmacs/MULE can only handle character sets of - dimension 1 or 2. This property defaults to 1. - -`chars' - Number of characters in each dimension. In XEmacs/MULE, the only - allowed values are 94 or 96. (There are a couple of pre-defined - character sets, such as ASCII, that do not follow this, but you - cannot define new ones like this.) Defaults to 94. Note that if - the dimension is 2, the character set thus described is 94x94 or - 96x96. - -`columns' - Number of columns used to display a character in this charset. - Only used in TTY mode. (Under X, the actual width of a character - can be derived from the font used to display the characters.) If - unspecified, defaults to the dimension. (This is almost always the - correct value, because character sets with dimension 2 are usually - ideograph character sets, which need two columns to display the - intricate ideographs.) - -`direction' - A symbol, either `l2r' (left-to-right) or `r2l' (right-to-left). - Defaults to `l2r'. This specifies the direction that the text - should be displayed in, and will be left-to-right for most - charsets but right-to-left for Hebrew and Arabic. (Right-to-left - display is not currently implemented.) - -`final' - Final byte of the standard ISO 2022 escape sequence designating - this charset. Must be supplied. Each combination of (DIMENSION, - CHARS) defines a separate namespace for final bytes, and each - charset within a particular namespace must have a different final - byte. Note that ISO 2022 restricts the final byte to the range - 0x30 - 0x7E if dimension == 1, and 0x30 - 0x5F if dimension == 2. - Note also that final bytes in the range 0x30 - 0x3F are reserved - for user-defined (not official) character sets. For more - information on ISO 2022, see *Note Coding Systems::. - -`graphic' - 0 (use left half of font on output) or 1 (use right half of font on - output). Defaults to 0. This specifies how to convert the - position codes that index a character in a character set into an - index into the font used to display the character set. With - `graphic' set to 0, position codes 33 through 126 map to font - indices 33 through 126; with it set to 1, position codes 33 - through 126 map to font indices 161 through 254 (i.e. the same - number but with the high bit set). For example, for a font whose - registry is ISO8859-1, the left half of the font (octets 0x20 - - 0x7F) is the `ascii' charset, while the right half (octets 0xA0 - - 0xFF) is the `latin-iso8859-1' charset. - -`ccl-program' - A compiled CCL program used to convert a character in this charset - into an index into the font. This is in addition to the `graphic' - property. If a CCL program is defined, the position codes of a - character will first be processed according to `graphic' and then - passed through the CCL program, with the resulting values used to - index the font. - - This is used, for example, in the Big5 character set (used in - Taiwan). This character set is not ISO-2022-compliant, and its - size (94x157) does not fit within the maximum 96x96 size of - ISO-2022-compliant character sets. As a result, XEmacs/MULE - splits it (in a rather complex fashion, so as to group the most - commonly used characters together) into two charset objects - (`big5-1' and `big5-2'), each of size 94x94, and each charset - object uses a CCL program to convert the modified position codes - back into standard Big5 indices to retrieve a character from a - Big5 font. - - Most of the above properties can only be changed when the charset is -created. *Note Charset Property Functions::. + `%b' + This stands for the abbreviated name of the month. - -File: lispref.info, Node: Basic Charset Functions, Next: Charset Property Functions, Prev: Charset Properties, Up: Charsets + `%B' + This stands for the full name of the month. -Basic Charset Functions ------------------------ + `%c' + This is a synonym for `%x %X'. - - Function: find-charset CHARSET-OR-NAME - This function retrieves the charset of the given name. If - CHARSET-OR-NAME is a charset object, it is simply returned. - Otherwise, CHARSET-OR-NAME should be a symbol. If there is no - such charset, `nil' is returned. Otherwise the associated charset - object is returned. - - - Function: get-charset NAME - This function retrieves the charset of the given name. Same as - `find-charset' except an error is signalled if there is no such - charset instead of returning `nil'. - - - Function: charset-list - This function returns a list of the names of all defined charsets. - - - Function: make-charset NAME DOC-STRING PROPS - This function defines a new character set. This function is for - use with Mule support. NAME is a symbol, the name by which the - character set is normally referred. DOC-STRING is a string - describing the character set. PROPS is a property list, - describing the specific nature of the character set. The - recognized properties are `registry', `dimension', `columns', - `chars', `final', `graphic', `direction', and `ccl-program', as - previously described. - - - Function: make-reverse-direction-charset CHARSET NEW-NAME - This function makes a charset equivalent to CHARSET but which goes - in the opposite direction. NEW-NAME is the name of the new - charset. The new charset is returned. - - - Function: charset-from-attributes DIMENSION CHARS FINAL &optional - DIRECTION - This function returns a charset with the given DIMENSION, CHARS, - FINAL, and DIRECTION. If DIRECTION is omitted, both directions - will be checked (left-to-right will be returned if character sets - exist for both directions). - - - Function: charset-reverse-direction-charset CHARSET - This function returns the charset (if any) with the same dimension, - number of characters, and final byte as CHARSET, but which is - displayed in the opposite direction. + `%C' + This has a locale-specific meaning. In the default locale + (named C), it is equivalent to `%A, %B %e, %Y'. - -File: lispref.info, Node: Charset Property Functions, Next: Predefined Charsets, Prev: Basic Charset Functions, Up: Charsets + `%d' + This stands for the day of month, zero-padded. -Charset Property Functions --------------------------- + `%D' + This is a synonym for `%m/%d/%y'. - All of these functions accept either a charset name or charset -object. + `%e' + This stands for the day of month, blank-padded. - - Function: charset-property CHARSET PROP - This function returns property PROP of CHARSET. *Note Charset - Properties::. + `%h' + This is a synonym for `%b'. - Convenience functions are also provided for retrieving individual -properties of a charset. + `%H' + This stands for the hour (00-23). - - Function: charset-name CHARSET - This function returns the name of CHARSET. This will be a symbol. + `%I' + This stands for the hour (00-12). - - Function: charset-doc-string CHARSET - This function returns the doc string of CHARSET. + `%j' + This stands for the day of the year (001-366). - - Function: charset-registry CHARSET - This function returns the registry of CHARSET. + `%k' + This stands for the hour (0-23), blank padded. - - Function: charset-dimension CHARSET - This function returns the dimension of CHARSET. + `%l' + This stands for the hour (1-12), blank padded. - - Function: charset-chars CHARSET - This function returns the number of characters per dimension of - CHARSET. + `%m' + This stands for the month (01-12). - - Function: charset-columns CHARSET - This function returns the number of display columns per character - (in TTY mode) of CHARSET. + `%M' + This stands for the minute (00-59). - - Function: charset-direction CHARSET - This function returns the display direction of CHARSET - either - `l2r' or `r2l'. + `%n' + This stands for a newline. - - Function: charset-final CHARSET - This function returns the final byte of the ISO 2022 escape - sequence designating CHARSET. + `%p' + This stands for `AM' or `PM', as appropriate. - - Function: charset-graphic CHARSET - This function returns either 0 or 1, depending on whether the - position codes of characters in CHARSET map to the left or right - half of their font, respectively. + `%r' + This is a synonym for `%I:%M:%S %p'. - - Function: charset-ccl-program CHARSET - This function returns the CCL program, if any, for converting - position codes of characters in CHARSET into font indices. + `%R' + This is a synonym for `%H:%M'. - The only property of a charset that can currently be set after the -charset has been created is the CCL program. + `%S' + This stands for the seconds (00-60). - - Function: set-charset-ccl-program CHARSET CCL-PROGRAM - This function sets the `ccl-program' property of CHARSET to - CCL-PROGRAM. + `%t' + This stands for a tab character. - -File: lispref.info, Node: Predefined Charsets, Prev: Charset Property Functions, Up: Charsets - -Predefined Charsets -------------------- - - The following charsets are predefined in the C code. - - Name Type Fi Gr Dir Registry - -------------------------------------------------------------- - ascii 94 B 0 l2r ISO8859-1 - control-1 94 0 l2r --- - latin-iso8859-1 94 A 1 l2r ISO8859-1 - latin-iso8859-2 96 B 1 l2r ISO8859-2 - latin-iso8859-3 96 C 1 l2r ISO8859-3 - latin-iso8859-4 96 D 1 l2r ISO8859-4 - cyrillic-iso8859-5 96 L 1 l2r ISO8859-5 - arabic-iso8859-6 96 G 1 r2l ISO8859-6 - greek-iso8859-7 96 F 1 l2r ISO8859-7 - hebrew-iso8859-8 96 H 1 r2l ISO8859-8 - latin-iso8859-9 96 M 1 l2r ISO8859-9 - thai-tis620 96 T 1 l2r TIS620 - katakana-jisx0201 94 I 1 l2r JISX0201.1976 - latin-jisx0201 94 J 0 l2r JISX0201.1976 - japanese-jisx0208-1978 94x94 @ 0 l2r JISX0208.1978 - japanese-jisx0208 94x94 B 0 l2r JISX0208.19(83|90) - japanese-jisx0212 94x94 D 0 l2r JISX0212 - chinese-gb2312 94x94 A 0 l2r GB2312 - chinese-cns11643-1 94x94 G 0 l2r CNS11643.1 - chinese-cns11643-2 94x94 H 0 l2r CNS11643.2 - chinese-big5-1 94x94 0 0 l2r Big5 - chinese-big5-2 94x94 1 0 l2r Big5 - korean-ksc5601 94x94 C 0 l2r KSC5601 - composite 96x96 0 l2r --- - - The following charsets are predefined in the Lisp code. - - Name Type Fi Gr Dir Registry - -------------------------------------------------------------- - arabic-digit 94 2 0 l2r MuleArabic-0 - arabic-1-column 94 3 0 r2l MuleArabic-1 - arabic-2-column 94 4 0 r2l MuleArabic-2 - sisheng 94 0 0 l2r sisheng_cwnn\|OMRON_UDC_ZH - chinese-cns11643-3 94x94 I 0 l2r CNS11643.1 - chinese-cns11643-4 94x94 J 0 l2r CNS11643.1 - chinese-cns11643-5 94x94 K 0 l2r CNS11643.1 - chinese-cns11643-6 94x94 L 0 l2r CNS11643.1 - chinese-cns11643-7 94x94 M 0 l2r CNS11643.1 - ethiopic 94x94 2 0 l2r Ethio - ascii-r2l 94 B 0 r2l ISO8859-1 - ipa 96 0 1 l2r MuleIPA - vietnamese-lower 96 1 1 l2r VISCII1.1 - vietnamese-upper 96 2 1 l2r VISCII1.1 - - For all of the above charsets, the dimension and number of columns -are the same. - - Note that ASCII, Control-1, and Composite are handled specially. -This is why some of the fields are blank; and some of the filled-in -fields (e.g. the type) are not really accurate. + `%T' + This is a synonym for `%H:%M:%S'. - -File: lispref.info, Node: MULE Characters, Next: Composite Characters, Prev: Charsets, Up: MULE + `%U' + This stands for the week of the year (01-52), assuming that + weeks start on Sunday. -MULE Characters -=============== + `%w' + This stands for the numeric day of week (0-6). Sunday is day + 0. - - Function: make-char CHARSET ARG1 &optional ARG2 - This function makes a multi-byte character from CHARSET and octets - ARG1 and ARG2. + `%W' + This stands for the week of the year (01-52), assuming that + weeks start on Monday. - - Function: char-charset CH - This function returns the character set of char CH. + `%x' + This has a locale-specific meaning. In the default locale + (named C), it is equivalent to `%D'. - - Function: char-octet CH &optional N - This function returns the octet (i.e. position code) numbered N - (should be 0 or 1) of char CH. N defaults to 0 if omitted. + `%X' + This has a locale-specific meaning. In the default locale + (named C), it is equivalent to `%T'. - - Function: find-charset-region START END &optional BUFFER - This function returns a list of the charsets in the region between - START and END. BUFFER defaults to the current buffer if omitted. + `%y' + This stands for the year without century (00-99). - - Function: find-charset-string STRING - This function returns a list of the charsets in STRING. + `%Y' + This stands for the year with century. - -File: lispref.info, Node: Composite Characters, Next: ISO 2022, Prev: MULE Characters, Up: MULE + `%Z' + This stands for the time zone abbreviation. -Composite Characters -==================== + - Function: decode-time &optional specified-time + This function converts a time value into calendrical information. + The optional SPECIFIED-TIME should be a list of (HIGH LOW . + IGNORED) or (HIGH . LOW), as from `current-time' and + `file-attributes', or `nil' to use the current time. - Composite characters are not yet completely implemented. + The return value is a list of nine elements, as follows: - - Function: make-composite-char STRING - This function converts a string into a single composite character. - The character is the result of overstriking all the characters in - the string. + (SECONDS MINUTES HOUR DAY MONTH YEAR DOW DST ZONE) - - Function: composite-char-string CH - This function returns a string of the characters comprising a - composite character. + Here is what the elements mean: - - Function: compose-region START END &optional BUFFER - This function composes the characters in the region from START to - END in BUFFER into one composite character. The composite - character replaces the composed characters. BUFFER defaults to - the current buffer if omitted. + SEC + The number of seconds past the minute, as an integer between + 0 and 59. - - Function: decompose-region START END &optional BUFFER - This function decomposes any composite characters in the region - from START to END in BUFFER. This converts each composite - character into one or more characters, the individual characters - out of which the composite character was formed. Non-composite - characters are left as-is. BUFFER defaults to the current buffer - if omitted. + MINUTE + The number of minutes past the hour, as an integer between 0 + and 59. - -File: lispref.info, Node: ISO 2022, Next: Coding Systems, Prev: Composite Characters, Up: MULE + HOUR + The hour of the day, as an integer between 0 and 23. -ISO 2022 -======== + DAY + The day of the month, as an integer between 1 and 31. - This section briefly describes the ISO 2022 encoding standard. For -more thorough understanding, please refer to the original document of -ISO 2022. + MONTH + The month of the year, as an integer between 1 and 12. - Character sets ("charsets") are classified into the following four -categories, according to the number of characters of charset: -94-charset, 96-charset, 94x94-charset, and 96x96-charset. + YEAR + The year, an integer typically greater than 1900. -94-charset - ASCII(B), left(J) and right(I) half of JISX0201, ... + DOW + The day of week, as an integer between 0 and 6, where 0 + stands for Sunday. -96-charset - Latin-1(A), Latin-2(B), Latin-3(C), ... + DST + `t' if daylight savings time is effect, otherwise `nil'. -94x94-charset - GB2312(A), JISX0208(B), KSC5601(C), ... + ZONE + An integer indicating the time zone, as the number of seconds + east of Greenwich. -96x96-charset - none for the moment + Note that Common Lisp has different meanings for DOW and ZONE. - The character in parentheses after the name of each charset is the -"final character" F, which can be regarded as the identifier of the -charset. ECMA allocates F to each charset. F is in the range of -0x30..0x7F, but 0x30..0x3F are only for private use. + - Function: encode-time seconds minutes hour day month year &optional + zone + This function is the inverse of `decode-time'. It converts seven + items of calendrical data into a time value. For the meanings of + the arguments, see the table above under `decode-time'. - Note: "ECMA" = European Computer Manufacturers Association + Year numbers less than 100 are treated just like other year + numbers. If you want them to stand for years above 1900, you must + alter them yourself before you call `encode-time'. - There are four "registers of charsets", called G0 thru G3. You can -designate (or assign) any charset to one of these registers. + The optional argument ZONE defaults to the current time zone and + its daylight savings time rules. If specified, it can be either a + list (as you would get from `current-time-zone') or an integer (as + you would get from `decode-time'). The specified zone is used + without any further alteration for daylight savings time. - The code space contained within one octet (of size 256) is divided -into 4 areas: C0, GL, C1, and GR. GL and GR are the areas into which a -register of charset can be invoked into. + +File: lispref.info, Node: Timers, Next: Terminal Input, Prev: Time Conversion, Up: System Interface + +Timers for Delayed Execution +============================ + + You can set up a timer to call a function at a specified future time. + + - Function: add-timeout secs function object &optional resignal + This function adds a timeout, to be signaled after the timeout + period has elapsed. SECS is a number of seconds, expressed as an + integer or a float. FUNCTION will be called after that many + seconds have elapsed, with one argument, the given OBJECT. If the + optional RESIGNAL argument is provided, then after this timeout + expires, `add-timeout' will automatically be called again with + RESIGNAL as the first argument. + + This function returns an object which is the "id" of this + particular timeout. You can pass that object to `disable-timeout' + to turn off the timeout before it has been signalled. + + The number of seconds may be expressed as a floating-point number, + in which case some fractional part of a second will be used. + Caveat: the usable timeout granularity will vary from system to + system. + + Adding a timeout causes a timeout event to be returned by + `next-event', and the function will be invoked by + `dispatch-event', so if XEmacs is in a tight loop, the function + will not be invoked until the next call to sit-for or until the + return to top-level (the same is true of process filters). + + WARNING: if you are thinking of calling add-timeout from inside of + a callback function as a way of resignalling a timeout, think + again. There is a race condition. That's why the RESIGNAL + argument exists. + + (NOTE: In FSF Emacs, this function is called `run-at-time' and has + different semantics.) + + - Function: disable-timeout id + Cancel the requested action for ID, which should be a value + previously returned by `add-timeout'. This cancels the effect of + that call to `add-timeout'; the arrival of the specified time will + not cause anything special to happen. (NOTE: In FSF Emacs, this + function is called `cancel-timer'.) + + +File: lispref.info, Node: Terminal Input, Next: Terminal Output, Prev: Timers, Up: System Interface + +Terminal Input +============== + + This section describes functions and variables for recording or +manipulating terminal input. See *Note Display::, for related +functions. - C0: 0x00 - 0x1F - GL: 0x20 - 0x7F - C1: 0x80 - 0x9F - GR: 0xA0 - 0xFF +* Menu: - Usually, in the initial state, G0 is invoked into GL, and G1 is -invoked into GR. +* Input Modes:: Options for how input is processed. +* Translating Input:: Low level conversion of some characters or events + into others. +* Recording Input:: Saving histories of recent or all input events. - ISO 2022 distinguishes 7-bit environments and 8-bit environments. In -7-bit environments, only C0 and GL are used. + +File: lispref.info, Node: Input Modes, Next: Translating Input, Up: Terminal Input + +Input Modes +----------- + + - Function: set-input-mode interrupt flow meta &optional quit-char + console + This function sets the mode for reading keyboard input. If + INTERRUPT is non-null, then XEmacs uses input interrupts. If it is + `nil', then it uses CBREAK mode. When XEmacs communicates + directly with X, it ignores this argument and uses interrupts if + that is the way it knows how to communicate. + + If FLOW is non-`nil', then XEmacs uses XON/XOFF (`C-q', `C-s') + flow control for output to the terminal. This has no effect except + in CBREAK mode. *Note Flow Control::. + + The default setting is system dependent. Some systems always use + CBREAK mode regardless of what is specified. + + The argument META controls support for input character codes above + 127. If META is `t', XEmacs converts characters with the 8th bit + set into Meta characters. If META is `nil', XEmacs disregards the + 8th bit; this is necessary when the terminal uses it as a parity + bit. If META is neither `t' nor `nil', XEmacs uses all 8 bits of + input unchanged. This is good for terminals using European 8-bit + character sets. + + If QUIT-CHAR is non-`nil', it specifies the character to use for + quitting. Normally this character is `C-g'. *Note Quitting::. + + The `current-input-mode' function returns the input mode settings +XEmacs is currently using. + + - Function: current-input-mode &optional console + This function returns current mode for reading keyboard input. It + returns a list, corresponding to the arguments of `set-input-mode', + of the form `(INTERRUPT FLOW META QUIT)' in which: + INTERRUPT + is non-`nil' when XEmacs is using interrupt-driven input. If + `nil', Emacs is using CBREAK mode. + + FLOW + is non-`nil' if XEmacs uses XON/XOFF (`C-q', `C-s') flow + control for output to the terminal. This value has no effect + unless INTERRUPT is non-`nil'. + + META + is `t' if XEmacs treats the eighth bit of input characters as + the meta bit; `nil' means XEmacs clears the eighth bit of + every input character; any other value means XEmacs uses all + eight bits as the basic character code. + + QUIT + is the character XEmacs currently uses for quitting, usually + `C-g'. - Charset designation is done by escape sequences of the form: + +File: lispref.info, Node: Translating Input, Next: Recording Input, Prev: Input Modes, Up: Terminal Input - ESC [I] I F +Translating Input Events +------------------------ - where I is an intermediate character in the range 0x20 - 0x2F, and F -is the final character identifying this charset. + This section describes features for translating input events into +other input events before they become part of key sequences. + + - Variable: function-key-map + This variable holds a keymap that describes the character sequences + sent by function keys on an ordinary character terminal. This + keymap uses the same data structure as other keymaps, but is used + differently: it specifies translations to make while reading + events. + + If `function-key-map' "binds" a key sequence K to a vector V, then + when K appears as a subsequence _anywhere_ in a key sequence, it + is replaced with the events in V. + + For example, VT100 terminals send ` O P' when the keypad PF1 + key is pressed. Therefore, we want XEmacs to translate that + sequence of events into the single event `pf1'. We accomplish + this by "binding" ` O P' to `[pf1]' in `function-key-map', + when using a VT100. + + Thus, typing `C-c ' sends the character sequence `C-c O + P'; later the function `read-key-sequence' translates this back + into `C-c ', which it returns as the vector `[?\C-c pf1]'. + + Entries in `function-key-map' are ignored if they conflict with + bindings made in the minor mode, local, or global keymaps. The + intent is that the character sequences that function keys send + should not have command bindings in their own right. + + The value of `function-key-map' is usually set up automatically + according to the terminal's Terminfo or Termcap entry, but + sometimes those need help from terminal-specific Lisp files. + XEmacs comes with terminal-specific files for many common + terminals; their main purpose is to make entries in + `function-key-map' beyond those that can be deduced from Termcap + and Terminfo. *Note Terminal-Specific::. + + Emacs versions 18 and earlier used totally different means of + detecting the character sequences that represent function keys. + + - Variable: key-translation-map + This variable is another keymap used just like `function-key-map' + to translate input events into other events. It differs from + `function-key-map' in two ways: + + * `key-translation-map' goes to work after `function-key-map' is + finished; it receives the results of translation by + `function-key-map'. + + * `key-translation-map' overrides actual key bindings. + + The intent of `key-translation-map' is for users to map one + character set to another, including ordinary characters normally + bound to `self-insert-command'. + + You can use `function-key-map' or `key-translation-map' for more +than simple aliases, by using a function, instead of a key sequence, as +the "translation" of a key. Then this function is called to compute +the translation of that key. + + The key translation function receives one argument, which is the +prompt that was specified in `read-key-sequence'--or `nil' if the key +sequence is being read by the editor command loop. In most cases you +can ignore the prompt value. + + If the function reads input itself, it can have the effect of +altering the event that follows. For example, here's how to define +`C-c h' to turn the character that follows into a Hyper character: + + (defun hyperify (prompt) + (let ((e (read-event))) + (vector (if (numberp e) + (logior (lsh 1 20) e) + (if (memq 'hyper (event-modifiers e)) + e + (add-event-modifier "H-" e)))))) + + (defun add-event-modifier (string e) + (let ((symbol (if (symbolp e) e (car e)))) + (setq symbol (intern (concat string + (symbol-name symbol)))) + (if (symbolp e) + symbol + (cons symbol (cdr e))))) + + (define-key function-key-map "\C-ch" 'hyperify) - The meaning of intermediate characters are: + The `iso-transl' library uses this feature to provide a way of +inputting non-ASCII Latin-1 characters. - $ [0x24]: indicate charset of dimension 2 (94x94 or 96x96). - ( [0x28]: designate to G0 a 94-charset whose final byte is F. - ) [0x29]: designate to G1 a 94-charset whose final byte is F. - * [0x2A]: designate to G2 a 94-charset whose final byte is F. - + [0x2B]: designate to G3 a 94-charset whose final byte is F. - - [0x2D]: designate to G1 a 96-charset whose final byte is F. - . [0x2E]: designate to G2 a 96-charset whose final byte is F. - / [0x2F]: designate to G3 a 96-charset whose final byte is F. + +File: lispref.info, Node: Recording Input, Prev: Translating Input, Up: Terminal Input - The following rule is not allowed in ISO 2022 but can be used in -Mule. +Recording Input +--------------- - , [0x2C]: designate to G0 a 96-charset whose final byte is F. + - Function: recent-keys &optional number + This function returns a vector containing recent input events from + the keyboard or mouse. By default, 100 events are recorded, which + is how many `recent-keys' returns. - Here are examples of designations: + All input events are included, whether or not they were used as + parts of key sequences. Thus, you always get the last 100 inputs, + not counting keyboard macros. (Events from keyboard macros are + excluded because they are less interesting for debugging; it + should be enough to see the events that invoked the macros.) - ESC ( B : designate to G0 ASCII - ESC - A : designate to G1 Latin-1 - ESC $ ( A or ESC $ A : designate to G0 GB2312 - ESC $ ( B or ESC $ B : designate to G0 JISX0208 - ESC $ ) C : designate to G1 KSC5601 + If NUMBER is specified, not more than NUMBER events will be + returned. You may change the number of stored events using + `set-recent-keys-ring-size'. - To use a charset designated to G2 or G3, and to use a charset -designated to G1 in a 7-bit environment, you must explicitly invoke G1, -G2, or G3 into GL. There are two types of invocation, Locking Shift -(forever) and Single Shift (one character only). + - Function: recent-keys-ring-size + This function returns the number of recent events stored + internally. This is also the maximum number of events + `recent-keys' can return. By default, 100 events are stored. - Locking Shift is done as follows: + - Function: set-recent-keys-ring-size size + This function changes the number of events stored by XEmacs and + returned by `recent-keys'. - LS0 or SI (0x0F): invoke G0 into GL - LS1 or SO (0x0E): invoke G1 into GL - LS2: invoke G2 into GL - LS3: invoke G3 into GL - LS1R: invoke G1 into GR - LS2R: invoke G2 into GR - LS3R: invoke G3 into GR + For example, `(set-recent-keys-ring-size 250)' will make XEmacs + remember last 250 events and will make `recent-keys' return last + 250 events by default. - Single Shift is done as follows: + - Command: open-dribble-file filename + This function opens a "dribble file" named FILENAME. When a + dribble file is open, each input event from the keyboard or mouse + (but not those from keyboard macros) is written in that file. A + non-character event is expressed using its printed representation + surrounded by `<...>'. - SS2 or ESC N: invoke G2 into GL - SS3 or ESC O: invoke G3 into GL + You close the dribble file by calling this function with an + argument of `nil'. - (#### Ben says: I think the above is slightly incorrect. It appears -that SS2 invokes G2 into GR and SS3 invokes G3 into GR, whereas ESC N -and ESC O behave as indicated. The above definitions will not parse -EUC-encoded text correctly, and it looks like the code in mule-coding.c -has similar problems.) + This function is normally used to record the input necessary to + trigger an XEmacs bug, for the sake of a bug report. - You may realize that there are a lot of ISO-2022-compliant ways of -encoding multilingual text. Now, in the world, there exist many coding -systems such as X11's Compound Text, Japanese JUNET code, and so-called -EUC (Extended UNIX Code); all of these are variants of ISO 2022. + (open-dribble-file "~/dribble") + => nil - In Mule, we characterize ISO 2022 by the following attributes: + See also the `open-termscript' function (*note Terminal Output::). - 1. Initial designation to G0 thru G3. + +File: lispref.info, Node: Terminal Output, Next: Flow Control, Prev: Terminal Input, Up: System Interface - 2. Allow designation of short form for Japanese and Chinese. +Terminal Output +=============== - 3. Should we designate ASCII to G0 before control characters? + The terminal output functions send output to the terminal or keep +track of output sent to the terminal. The function `device-baud-rate' +tells you what XEmacs thinks is the output speed of the terminal. + + - Function: device-baud-rate &optional device + This function's value is the output speed of the terminal + associated with DEVICE, as far as XEmacs knows. DEVICE defaults + to the selected device (usually the only device) if omitted. + Changing this value does not change the speed of actual data + transmission, but the value is used for calculations such as + padding. This value has no effect for window-system devices. + (This is different in FSF Emacs, where the baud rate also affects + decisions about whether to scroll part of the screen or repaint, + even when using a window system.) + + The value is measured in bits per second. + + XEmacs attempts to automatically initialize the baud rate by querying +the terminal. If you are running across a network, however, and +different parts of the network work are at different baud rates, the +value returned by XEmacs may be different from the value used by your +local terminal. Some network protocols communicate the local terminal +speed to the remote machine, so that XEmacs and other programs can get +the proper value, but others do not. If XEmacs has the wrong value, it +makes decisions that are less than optimal. To fix the problem, use +`set-device-baud-rate'. + + - Function: set-device-baud-rate device baud-rate + This function sets the output speed of DEVICE. See + `device-baud-rate'. DEVICE defaults to the selected device + (usually the only device) if `nil'. + + - Function: send-string-to-terminal char-or-string &optional stdout-p + device + This function sends CHAR-OR-STRING to the terminal without + alteration. Control characters in CHAR-OR-STRING have + terminal-dependent effects. + + If DEVICE is `nil', this function writes to XEmacs's stderr, or to + stdout if STDOUT-P is non-`nil'. Otherwise, DEVICE should be a + tty or stream device, and the function writes to the device's + normal or error output, according to STDOUT-P. + + One use of this function is to define function keys on terminals + that have downloadable function key definitions. For example, + this is how on certain terminals to define function key 4 to move + forward four characters (by transmitting the characters `C-u C-f' + to the computer): + + (send-string-to-terminal "\eF4\^U\^F") + => nil + + - Command: open-termscript filename + This function is used to open a "termscript file" that will record + all the characters sent by XEmacs to the terminal. (If there are + multiple tty or stream devices, all characters sent to all such + devices are recorded.) The function returns `nil'. Termscript + files are useful for investigating problems where XEmacs garbles + the screen, problems that are due to incorrect Termcap entries or + to undesirable settings of terminal options more often than to + actual XEmacs bugs. Once you are certain which characters were + actually output, you can determine reliably whether they + correspond to the Termcap specifications in use. + + A `nil' value for FILENAME stops recording terminal output. + + See also `open-dribble-file' in *Note Terminal Input::. + + (open-termscript "../junk/termscript") + => nil - 4. Should we designate ASCII to G0 at the end of line? + +File: lispref.info, Node: Flow Control, Next: Batch Mode, Prev: Terminal Output, Up: System Interface - 5. 7-bit environment or 8-bit environment. +Flow Control +============ - 6. Use Locking Shift or not. + This section attempts to answer the question "Why does XEmacs choose +to use flow-control characters in its command character set?" For a +second view on this issue, read the comments on flow control in the +`emacs/INSTALL' file from the distribution; for help with Termcap +entries and DEC terminal concentrators, see `emacs/etc/TERMS'. + + At one time, most terminals did not need flow control, and none used +`C-s' and `C-q' for flow control. Therefore, the choice of `C-s' and +`C-q' as command characters was uncontroversial. XEmacs, for economy +of keystrokes and portability, used nearly all the ASCII control +characters, with mnemonic meanings when possible; thus, `C-s' for +search and `C-q' for quote. + + Later, some terminals were introduced which required these characters +for flow control. They were not very good terminals for full-screen +editing, so XEmacs maintainers did not pay attention. In later years, +flow control with `C-s' and `C-q' became widespread among terminals, +but by this time it was usually an option. And the majority of users, +who can turn flow control off, were unwilling to switch to less +mnemonic key bindings for the sake of flow control. + + So which usage is "right", XEmacs's or that of some terminal and +concentrator manufacturers? This question has no simple answer. + + One reason why we are reluctant to cater to the problems caused by +`C-s' and `C-q' is that they are gratuitous. There are other +techniques (albeit less common in practice) for flow control that +preserve transparency of the character stream. Note also that their use +for flow control is not an official standard. Interestingly, on the +model 33 teletype with a paper tape punch (which is very old), `C-s' +and `C-q' were sent by the computer to turn the punch on and off! + + As X servers and other window systems replace character-only +terminals, this problem is gradually being cured. For the mean time, +XEmacs provides a convenient way of enabling flow control if you want +it: call the function `enable-flow-control'. + + - Command: enable-flow-control &optional argument + This function enables use of `C-s' and `C-q' for output flow + control, and provides the characters `C-\' and `C-^' as aliases + for them using `keyboard-translate-table' (*note Translating + Input::). + + With optional argument ARGUMENT (interactively the prefix + argument), enable flow control mode if ARGUMENT is positive; else + disable it. + + You can use the function `enable-flow-control-on' in your `.emacs' +file to enable flow control automatically on certain terminal types. + + - Function: enable-flow-control-on &rest termtypes + This function enables flow control, and the aliases `C-\' and + `C-^', if the terminal type is one of TERMTYPES. For example: + + (enable-flow-control-on "vt200" "vt300" "vt101" "vt131") + + Here is how `enable-flow-control' does its job: + + 1. It sets CBREAK mode for terminal input, and tells the operating + system to handle flow control, with `(set-input-mode nil t)'. + + 2. It sets up `keyboard-translate-table' to translate `C-\' and `C-^' + into `C-s' and `C-q'. Except at its very lowest level, XEmacs + never knows that the characters typed were anything but `C-s' and + `C-q', so you can in effect type them as `C-\' and `C-^' even when + they are input for other commands. *Note Translating Input::. + + If the terminal is the source of the flow control characters, then +once you enable kernel flow control handling, you probably can make do +with less padding than normal for that terminal. You can reduce the +amount of padding by customizing the Termcap entry. You can also +reduce it by setting `baud-rate' to a smaller value so that XEmacs uses +a smaller speed when calculating the padding needed. *Note Terminal +Output::. - 7. Use ASCII or JIS0201-1976-Roman. + +File: lispref.info, Node: Batch Mode, Prev: Flow Control, Up: System Interface + +Batch Mode +========== + + The command line option `-batch' causes XEmacs to run +noninteractively. In this mode, XEmacs does not read commands from the +terminal, it does not alter the terminal modes, and it does not expect +to be outputting to an erasable screen. The idea is that you specify +Lisp programs to run; when they are finished, XEmacs should exit. The +way to specify the programs to run is with `-l FILE', which loads the +library named FILE, and `-f FUNCTION', which calls FUNCTION with no +arguments. + + Any Lisp program output that would normally go to the echo area, +either using `message' or using `prin1', etc., with `t' as the stream, +goes instead to XEmacs's standard error descriptor when in batch mode. +Thus, XEmacs behaves much like a noninteractive application program. +(The echo area output that XEmacs itself normally generates, such as +command echoing, is suppressed entirely.) + + - Function: noninteractive + This function returns non-`nil' when XEmacs is running in batch + mode. + + - Variable: noninteractive + This variable is non-`nil' when XEmacs is running in batch mode. + Setting this variable to `nil', however, will not change whether + XEmacs is running in batch mode, and will not change the return + value of the `noninteractive' function. - 8. Use JISX0208-1983 or JISX0208-1976. + +File: lispref.info, Node: X-Windows, Next: ToolTalk Support, Prev: System Interface, Up: Top - (The last two are only for Japanese.) +Functions Specific to the X Window System +***************************************** - By specifying these attributes, you can create any variant of ISO -2022. + XEmacs provides the concept of "devices", which generalizes +connections to an X server, a TTY device, etc. Most information about +an X server that XEmacs is connected to can be determined through +general console and device functions. *Note Consoles and Devices::. +However, there are some features of the X Window System that do not +generalize well, and they are covered specially here. - Here are several examples: +* Menu: - junet -- Coding system used in JUNET. - 1. G0 <- ASCII, G1..3 <- never used - 2. Yes. - 3. Yes. - 4. Yes. - 5. 7-bit environment - 6. No. - 7. Use ASCII - 8. Use JISX0208-1983 - - ctext -- Compound Text - 1. G0 <- ASCII, G1 <- Latin-1, G2,3 <- never used - 2. No. - 3. No. - 4. Yes. - 5. 8-bit environment - 6. No. - 7. Use ASCII - 8. Use JISX0208-1983 - - euc-china -- Chinese EUC. Although many people call this - as "GB encoding", the name may cause misunderstanding. - 1. G0 <- ASCII, G1 <- GB2312, G2,3 <- never used - 2. No. - 3. Yes. - 4. Yes. - 5. 8-bit environment - 6. No. - 7. Use ASCII - 8. Use JISX0208-1983 - - korean-mail -- Coding system used in Korean network. - 1. G0 <- ASCII, G1 <- KSC5601, G2,3 <- never used - 2. No. - 3. Yes. - 4. Yes. - 5. 7-bit environment - 6. Yes. - 7. No. - 8. No. - - Mule creates all these coding systems by default. +* X Selections:: Transferring text to and from other X clients. +* X Server:: Information about the X server connected to + a particular device. +* X Miscellaneous:: Other X-specific functions and variables.  -File: lispref.info, Node: Coding Systems, Next: CCL, Prev: ISO 2022, Up: MULE +File: lispref.info, Node: X Selections, Next: X Server, Up: X-Windows -Coding Systems -============== +X Selections +============ - A coding system is an object that defines how text containing -multiple character sets is encoded into a stream of (typically 8-bit) -bytes. The coding system is used to decode the stream into a series of -characters (which may be from multiple charsets) when the text is read -from a file or process, and is used to encode the text back into the -same format when it is written out to a file or process. + The X server records a set of "selections" which permit transfer of +data between application programs. The various selections are +distinguished by "selection types", represented in XEmacs by symbols. +X clients including XEmacs can read or set the selection for any given +type. + + - Function: x-own-selection data &optional type + This function sets a "selection" in the X server. It takes two + arguments: a value, DATA, and the selection type TYPE to assign it + to. DATA may be a string, a cons of two markers, or an extent. + In the latter cases, the selection is considered to be the text + between the markers, or between the extent's endpoints. + + Each possible TYPE has its own selection value, which changes + independently. The usual values of TYPE are `PRIMARY' and + `SECONDARY'; these are symbols with upper-case names, in accord + with X Windows conventions. The default is `PRIMARY'. + + (In FSF Emacs, this function is called `x-set-selection' and takes + different arguments.) + + - Function: x-get-selection + This function accesses selections set up by XEmacs or by other X + clients. It returns the value of the current primary selection. + + - Function: x-disown-selection &optional secondary-p + Assuming we own the selection, this function disowns it. If + SECONDARY-P is non-`nil', the secondary selection instead of the + primary selection is discarded. + + The X server also has a set of numbered "cut buffers" which can +store text or other data being moved between applications. Cut buffers +are considered obsolete, but XEmacs supports them for the sake of X +clients that still use them. + + - Function: x-get-cutbuffer &optional n + This function returns the contents of cut buffer number N. (This + function is called `x-get-cut-buffer' in FSF Emacs.) + + - Function: x-store-cutbuffer string &optional push + This function stores STRING into the first cut buffer (cut buffer + 0). + + Normally, the contents of the first cut buffer are simply replaced + by STRING. However, if optional argument PUSH is non-`nil', the + cut buffers are rotated. This means that the previous value of + the first cut buffer moves to the second cut buffer, and the + second to the third, and so on, moving the other values down + through the series of cut buffers, kill-ring-style. There are 8 + cut buffers altogether. + + Cut buffers are considered obsolete; you should use selections + instead. + + This function has no effect if support for cut buffers was not + compiled in. + + This function is called `x-set-cut-buffer' in FSF Emacs. - For example, many ISO-2022-compliant coding systems (such as Compound -Text, which is used for inter-client data under the X Window System) use -escape sequences to switch between different charsets - Japanese Kanji, -for example, is invoked with `ESC $ ( B'; ASCII is invoked with `ESC ( -B'; and Cyrillic is invoked with `ESC - L'. See `make-coding-system' -for more information. + +File: lispref.info, Node: X Server, Next: X Miscellaneous, Prev: X Selections, Up: X-Windows - Coding systems are normally identified using a symbol, and the -symbol is accepted in place of the actual coding system object whenever -a coding system is called for. (This is similar to how faces and -charsets work.) +X Server +======== - - Function: coding-system-p OBJECT - This function returns non-`nil' if OBJECT is a coding system. + This section describes how to access and change the overall status of +the X server XEmacs is using. * Menu: -* Coding System Types:: Classifying coding systems. -* EOL Conversion:: Dealing with different ways of denoting - the end of a line. -* Coding System Properties:: Properties of a coding system. -* Basic Coding System Functions:: Working with coding systems. -* Coding System Property Functions:: Retrieving a coding system's properties. -* Encoding and Decoding Text:: Encoding and decoding text. -* Detection of Textual Encoding:: Determining how text is encoded. -* Big5 and Shift-JIS Functions:: Special functions for these non-standard - encodings. +* Resources:: Getting resource values from the server. +* Server Data:: Getting info about the X server. +* Grabs:: Restricting access to the server by other apps.  -File: lispref.info, Node: Coding System Types, Next: EOL Conversion, Up: Coding Systems - -Coding System Types -------------------- - -`nil' -`autodetect' - Automatic conversion. XEmacs attempts to detect the coding system - used in the file. - -`no-conversion' - No conversion. Use this for binary files and such. On output, - graphic characters that are not in ASCII or Latin-1 will be - replaced by a `?'. (For a no-conversion-encoded buffer, these - characters will only be present if you explicitly insert them.) - -`shift-jis' - Shift-JIS (a Japanese encoding commonly used in PC operating - systems). - -`iso2022' - Any ISO-2022-compliant encoding. Among other things, this - includes JIS (the Japanese encoding commonly used for e-mail), - national variants of EUC (the standard Unix encoding for Japanese - and other languages), and Compound Text (an encoding used in X11). - You can specify more specific information about the conversion - with the FLAGS argument. - -`big5' - Big5 (the encoding commonly used for Taiwanese). - -`ccl' - The conversion is performed using a user-written pseudo-code - program. CCL (Code Conversion Language) is the name of this - pseudo-code. - -`internal' - Write out or read in the raw contents of the memory representing - the buffer's text. This is primarily useful for debugging - purposes, and is only enabled when XEmacs has been compiled with - `DEBUG_XEMACS' set (the `--debug' configure option). *Warning*: - Reading in a file using `internal' conversion can result in an - internal inconsistency in the memory representing a buffer's text, - which will produce unpredictable results and may cause XEmacs to - crash. Under normal circumstances you should never use `internal' - conversion. +File: lispref.info, Node: Resources, Next: Server Data, Up: X Server - -File: lispref.info, Node: EOL Conversion, Next: Coding System Properties, Prev: Coding System Types, Up: Coding Systems +Resources +--------- -EOL Conversion --------------- + - Function: default-x-device + This function return the default X device for resourcing. This is + the first-created X device that still exists. -`nil' - Automatically detect the end-of-line type (LF, CRLF, or CR). Also - generate subsidiary coding systems named `NAME-unix', `NAME-dos', - and `NAME-mac', that are identical to this coding system but have - an EOL-TYPE value of `lf', `crlf', and `cr', respectively. + - Function: x-get-resource name class type &optional locale device + noerror + This function retrieves a resource value from the X resource + manager. -`lf' - The end of a line is marked externally using ASCII LF. Since this - is also the way that XEmacs represents an end-of-line internally, - specifying this option results in no end-of-line conversion. This - is the standard format for Unix text files. + * The first arg is the name of the resource to retrieve, such as + `"font"'. -`crlf' - The end of a line is marked externally using ASCII CRLF. This is - the standard format for MS-DOS text files. + * The second arg is the class of the resource to retrieve, like + `"Font"'. -`cr' - The end of a line is marked externally using ASCII CR. This is the - standard format for Macintosh text files. + * The third arg should be one of the symbols `string', + `integer', `natnum', or `boolean', specifying the type of + object that the database is searched for. -`t' - Automatically detect the end-of-line type but do not generate - subsidiary coding systems. (This value is converted to `nil' when - stored internally, and `coding-system-property' will return `nil'.) + * The fourth arg is the locale to search for the resources on, + and can currently be a a buffer, a frame, a device, or the + symbol `global'. If omitted, it defaults to `global'. - -File: lispref.info, Node: Coding System Properties, Next: Basic Coding System Functions, Prev: EOL Conversion, Up: Coding Systems + * The fifth arg is the device to search for the resources on. + (The resource database for a particular device is constructed + by combining non-device- specific resources such any + command-line resources specified and any app-defaults files + found [or the fallback resources supplied by XEmacs, if no + app-defaults file is found] with device-specific resources + such as those supplied using `xrdb'.) If omitted, it defaults + to the device of LOCALE, if a device can be derived (i.e. if + LOCALE is a frame or device), and otherwise defaults to the + value of `default-x-device'. -Coding System Properties ------------------------- + * The sixth arg NOERROR, if non-`nil', means do not signal an + error if a bogus resource specification was retrieved (e.g. + if a non-integer was given when an integer was requested). + In this case, a warning is issued instead. -`mnemonic' - String to be displayed in the modeline when this coding system is - active. - -`eol-type' - End-of-line conversion to be used. It should be one of the types - listed in *Note EOL Conversion::. - -`post-read-conversion' - Function called after a file has been read in, to perform the - decoding. Called with two arguments, BEG and END, denoting a - region of the current buffer to be decoded. - -`pre-write-conversion' - Function called before a file is written out, to perform the - encoding. Called with two arguments, BEG and END, denoting a - region of the current buffer to be encoded. - - The following additional properties are recognized if TYPE is -`iso2022': - -`charset-g0' -`charset-g1' -`charset-g2' -`charset-g3' - The character set initially designated to the G0 - G3 registers. - The value should be one of - - * A charset object (designate that character set) - - * `nil' (do not ever use this register) - - * `t' (no character set is initially designated to the - register, but may be later on; this automatically sets the - corresponding `force-g*-on-output' property) - -`force-g0-on-output' -`force-g1-on-output' -`force-g2-on-output' -`force-g3-on-output' - If non-`nil', send an explicit designation sequence on output - before using the specified register. - -`short' - If non-`nil', use the short forms `ESC $ @', `ESC $ A', and `ESC $ - B' on output in place of the full designation sequences `ESC $ ( - @', `ESC $ ( A', and `ESC $ ( B'. - -`no-ascii-eol' - If non-`nil', don't designate ASCII to G0 at each end of line on - output. Setting this to non-`nil' also suppresses other - state-resetting that normally happens at the end of a line. - -`no-ascii-cntl' - If non-`nil', don't designate ASCII to G0 before control chars on - output. - -`seven' - If non-`nil', use 7-bit environment on output. Otherwise, use - 8-bit environment. - -`lock-shift' - If non-`nil', use locking-shift (SO/SI) instead of single-shift or - designation by escape sequence. - -`no-iso6429' - If non-`nil', don't use ISO6429's direction specification. - -`escape-quoted' - If non-nil, literal control characters that are the same as the - beginning of a recognized ISO 2022 or ISO 6429 escape sequence (in - particular, ESC (0x1B), SO (0x0E), SI (0x0F), SS2 (0x8E), SS3 - (0x8F), and CSI (0x9B)) are "quoted" with an escape character so - that they can be properly distinguished from an escape sequence. - (Note that doing this results in a non-portable encoding.) This - encoding flag is used for byte-compiled files. Note that ESC is a - good choice for a quoting character because there are no escape - sequences whose second byte is a character from the Control-0 or - Control-1 character sets; this is explicitly disallowed by the ISO - 2022 standard. - -`input-charset-conversion' - A list of conversion specifications, specifying conversion of - characters in one charset to another when decoding is performed. - Each specification is a list of two elements: the source charset, - and the destination charset. - -`output-charset-conversion' - A list of conversion specifications, specifying conversion of - characters in one charset to another when encoding is performed. - The form of each specification is the same as for - `input-charset-conversion'. - - The following additional properties are recognized (and required) if -TYPE is `ccl': - -`decode' - CCL program used for decoding (converting to internal format). - -`encode' - CCL program used for encoding (converting to external format). + The resource names passed to this function are looked up relative + to the locale. - -File: lispref.info, Node: Basic Coding System Functions, Next: Coding System Property Functions, Prev: Coding System Properties, Up: Coding Systems + If you want to search for a subresource, you just need to specify + the resource levels in NAME and CLASS. For example, NAME could be + `"modeline.attributeFont"', and CLASS `"Face.AttributeFont"'. -Basic Coding System Functions ------------------------------ + Specifically, - - Function: find-coding-system CODING-SYSTEM-OR-NAME - This function retrieves the coding system of the given name. + 1. If LOCALE is a buffer, a call - If CODING-SYSTEM-OR-NAME is a coding-system object, it is simply - returned. Otherwise, CODING-SYSTEM-OR-NAME should be a symbol. - If there is no such coding system, `nil' is returned. Otherwise - the associated coding system object is returned. + `(x-get-resource "foreground" "Foreground" 'string SOME-BUFFER)' - - Function: get-coding-system NAME - This function retrieves the coding system of the given name. Same - as `find-coding-system' except an error is signalled if there is no - such coding system instead of returning `nil'. + is an interface to a C call something like - - Function: coding-system-list - This function returns a list of the names of all defined coding - systems. + `XrmGetResource (db, "xemacs.buffer.BUFFER-NAME.foreground", + "Emacs.EmacsLocaleType.EmacsBuffer.Foreground", + "String");' - - Function: coding-system-name CODING-SYSTEM - This function returns the name of the given coding system. + 2. If LOCALE is a frame, a call - - Function: make-coding-system NAME TYPE &optional DOC-STRING PROPS - This function registers symbol NAME as a coding system. + `(x-get-resource "foreground" "Foreground" 'string SOME-FRAME)' - TYPE describes the conversion method used and should be one of the - types listed in *Note Coding System Types::. + is an interface to a C call something like - DOC-STRING is a string describing the coding system. + `XrmGetResource (db, "xemacs.frame.FRAME-NAME.foreground", + "Emacs.EmacsLocaleType.EmacsFrame.Foreground", + "String");' - PROPS is a property list, describing the specific nature of the - character set. Recognized properties are as in *Note Coding - System Properties::. + 3. If LOCALE is a device, a call - - Function: copy-coding-system OLD-CODING-SYSTEM NEW-NAME - This function copies OLD-CODING-SYSTEM to NEW-NAME. If NEW-NAME - does not name an existing coding system, a new one will be created. + `(x-get-resource "foreground" "Foreground" 'string SOME-DEVICE)' - - Function: subsidiary-coding-system CODING-SYSTEM EOL-TYPE - This function returns the subsidiary coding system of - CODING-SYSTEM with eol type EOL-TYPE. + is an interface to a C call something like - -File: lispref.info, Node: Coding System Property Functions, Next: Encoding and Decoding Text, Prev: Basic Coding System Functions, Up: Coding Systems + `XrmGetResource (db, "xemacs.device.DEVICE-NAME.foreground", + "Emacs.EmacsLocaleType.EmacsDevice.Foreground", + "String");' -Coding System Property Functions --------------------------------- + 4. If LOCALE is the symbol `global', a call - - Function: coding-system-doc-string CODING-SYSTEM - This function returns the doc string for CODING-SYSTEM. + `(x-get-resource "foreground" "Foreground" 'string 'global)' - - Function: coding-system-type CODING-SYSTEM - This function returns the type of CODING-SYSTEM. + is an interface to a C call something like - - Function: coding-system-property CODING-SYSTEM PROP - This function returns the PROP property of CODING-SYSTEM. + `XrmGetResource (db, "xemacs.foreground", + "Emacs.Foreground", + "String");' - -File: lispref.info, Node: Encoding and Decoding Text, Next: Detection of Textual Encoding, Prev: Coding System Property Functions, Up: Coding Systems - -Encoding and Decoding Text --------------------------- - - - Function: decode-coding-region START END CODING-SYSTEM &optional - BUFFER - This function decodes the text between START and END which is - encoded in CODING-SYSTEM. This is useful if you've read in - encoded text from a file without decoding it (e.g. you read in a - JIS-formatted file but used the `binary' or `no-conversion' coding - system, so that it shows up as `^[$B!