documentation_emacs_test/source/lispref/internals.texi.fr.po

7621 lines
266 KiB
Plaintext
Raw Normal View History

2022-03-08 11:11:57 +01:00
# SOME DESCRIPTIVE TITLE
# Copyright (C) YEAR Free Software Foundation, Inc.
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2021-11-07 12:11+0900\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#. type: appendix
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:6
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:7
#, no-wrap
msgid "GNU Emacs Internals"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:12
msgid ""
"This chapter describes how the runnable Emacs executable is dumped with the "
"preloaded Lisp libraries in it, how storage is allocated, and some internal "
"aspects of GNU Emacs that may be of interest to C programmers."
msgstr ""
#. type: section
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:24
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:26
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:27
#, no-wrap
msgid "Building Emacs"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:24
msgid "How the dumped Emacs is made."
msgstr ""
#. type: section
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:24
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:254
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:255
#, no-wrap
msgid "Pure Storage"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:24
msgid "Kludge to make preloaded Lisp functions shareable."
msgstr ""
#. type: section
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:24
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:319
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:320
#, no-wrap
msgid "Garbage Collection"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:24
msgid "Reclaiming space for Lisp objects no longer used."
msgstr ""
#. type: section
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:24
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:643
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:644
#, no-wrap
msgid "Stack-allocated Objects"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:24
msgid "Temporary conses and strings on C stack."
msgstr ""
#. type: section
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:24
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:672
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:673
#, no-wrap
msgid "Memory Usage"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:24
msgid "Info about total size of Lisp objects made so far."
msgstr ""
#. type: section
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:24
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:720
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:721
#, no-wrap
msgid "C Dialect"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:24
msgid "What C variant Emacs is written in."
msgstr ""
#. type: section
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:24
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:733
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:734
#, no-wrap
msgid "Writing Emacs Primitives"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:24
msgid "Writing C code for Emacs."
msgstr ""
#. type: node
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:24
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1152
#, no-wrap
msgid "Writing Dynamic Modules"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:24
msgid "Writing loadable modules for Emacs."
msgstr ""
#. type: section
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:24
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2204
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2205
#, no-wrap
msgid "Object Internals"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:24
msgid "Data formats of buffers, windows, processes."
msgstr ""
#. type: section
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:24
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2919
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2920
#, no-wrap
msgid "C Integer Types"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:24
msgid "How C integer types are used inside Emacs."
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:28
#, no-wrap
msgid "building Emacs"
msgstr ""
#. type: pindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:29
#, no-wrap
msgid "temacs"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:35
msgid ""
"This section explains the steps involved in building the Emacs executable. "
"You don't have to know this material to build and install Emacs, since the "
"makefiles do all these things automatically. This information is pertinent "
"to Emacs developers."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:37
msgid "Building Emacs requires GNU Make version 3.81 or later."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:42
msgid ""
"Compilation of the C source files in the @file{src} directory produces an "
"executable file called @file{temacs}, also called a @dfn{bare impure "
"Emacs}. It contains the Emacs Lisp interpreter and I/O routines, but not "
"the editing commands."
msgstr ""
#. type: file{#1}
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:43
#, no-wrap
msgid "loadup.el"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:49
msgid ""
"The command @w{@command{temacs -l loadup}} would run @file{temacs} and "
"direct it to load @file{loadup.el}. The @code{loadup} library loads "
"additional Lisp libraries, which set up the normal Emacs editing "
"environment. After this step, the Emacs executable is no longer @dfn{bare}."
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:50
#, no-wrap
msgid "dumping Emacs"
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:51
#, no-wrap
msgid "@option{--temacs} option, and dumping method"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:61
msgid ""
"Because it takes some time to load the standard Lisp files, the "
"@file{temacs} executable usually isn't run directly by users. Instead, one "
"of the last steps of building Emacs runs the command @w{@samp{temacs -batch "
"-l loadup --temacs=@var{dump-method}}}. The special option "
"@option{--temacs} tells @command{temacs} how to record all the standard "
"preloaded Lisp functions and variables, so that when you subsequently run "
"Emacs, it will start much faster. The @option{--temacs} option requires an "
"argument @var{dump-method}, which can be one of the following:"
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:63
#, no-wrap
msgid "pdump"
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:64
#, no-wrap
msgid "dump file"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:73
msgid ""
"Record the preloaded Lisp data in a @dfn{dump file}. This method produces "
"an additional data file which Emacs will load at startup. The produced dump "
"file is usually called @file{emacs.pdmp}, and is installed in the Emacs "
"@code{exec-directory} (@pxref{Help Functions}). This method is the most "
"preferred one, as it does not require Emacs to employ any special techniques "
"of memory allocation, which might get in the way of various memory-layout "
"techniques used by modern systems to enhance security and privacy."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:74
#, no-wrap
msgid "pbootstrap"
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:75
#, no-wrap
msgid "bootstrapping Emacs"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:80
msgid ""
"Like @samp{pdump}, but used while @dfn{bootstrapping} Emacs, when no "
"previous Emacs binary and no @file{*.elc} byte-compiled Lisp files are "
"available. The produced dump file is usually named "
"@file{bootstrap-emacs.pdmp} in this case."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:81
#, no-wrap
msgid "dump"
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:82
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:232
#, no-wrap
msgid "unexec"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:93
msgid ""
"This method causes @command{temacs} to dump out an executable program, "
"called @file{emacs}, which has all the standard Lisp files already preloaded "
"into it. (The @samp{-batch} argument prevents @command{temacs} from trying "
"to initialize any of its data on the terminal, so that the tables of "
"terminal information are empty in the dumped Emacs.) This method is also "
"known as @dfn{unexec}, because it produces a program file from a running "
"process, and thus is in some sense the opposite of executing a program to "
"start a process. Although this method was the way that Emacs traditionally "
"saved its state, it is now deprecated."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:94
#, no-wrap
msgid "bootstrap"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:97
msgid ""
"Like @samp{dump}, but used when bootstrapping Emacs with the @code{unexec} "
"method."
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:99
#, no-wrap
msgid "preloaded Lisp files"
msgstr ""
#. type: vindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:100
#, no-wrap
msgid "preloaded-file-list"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:110
msgid ""
"The dumped @file{emacs} executable (also called a @dfn{pure} Emacs) is the "
"one which is installed. If the portable dumper was used to build Emacs, the "
"@file{emacs} executable is actually an exact copy of @file{temacs}, and the "
"corresponding @file{emacs.pdmp} file is installed as well. The variable "
"@code{preloaded-file-list} stores a list of the preloaded Lisp files "
"recorded in the dump file or in the dumped Emacs executable. If you port "
"Emacs to a new operating system, and are not able to implement dumping of "
"any kind, then Emacs must load @file{loadup.el} each time it starts."
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:111
#, no-wrap
msgid "build details"
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:112
#, no-wrap
msgid "deterministic build"
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:113
#, no-wrap
msgid "@option{--disable-build-details} option to @command{configure}"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:120
msgid ""
"By default the dumped @file{emacs} executable records details such as the "
"build time and host name. Use the @option{--disable-build-details} option "
"of @command{configure} to suppress these details, so that building and "
"installing Emacs twice from the same sources is more likely to result in "
"identical copies of Emacs."
msgstr ""
#. type: file{#1}
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:121
#, no-wrap
msgid "site-load.el"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:125
msgid ""
"You can specify additional files to preload by writing a library named "
"@file{site-load.el} that loads them. You may need to rebuild Emacs with an "
"added definition"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:128
#, no-wrap
msgid "#define SITELOAD_PURESIZE_EXTRA @var{n}\n"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:136
msgid ""
"to make @var{n} added bytes of pure space to hold the additional files; see "
"@file{src/puresize.h}. (Try adding increments of 20000 until it is big "
"enough.) However, the advantage of preloading additional files decreases as "
"machines get faster. On modern machines, it is usually not advisable."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:142
msgid ""
"After @file{loadup.el} reads @file{site-load.el}, it finds the documentation "
"strings for primitive and preloaded functions (and variables) in the file "
"@file{etc/DOC} where they are stored, by calling @code{Snarf-documentation} "
"(@pxref{Definition of Snarf-documentation,, Accessing Documentation})."
msgstr ""
#. type: file{#1}
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:143
#, no-wrap
msgid "site-init.el"
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:144
#, no-wrap
msgid "preloading additional functions and variables"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:148
msgid ""
"You can specify other Lisp expressions to execute just before dumping by "
"putting them in a library named @file{site-init.el}. This file is executed "
"after the documentation strings are found."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:152
msgid ""
"If you want to preload function or variable definitions, there are three "
"ways you can do this and make their documentation strings accessible when "
"you subsequently run Emacs:"
msgstr ""
#. type: itemize
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:157
msgid ""
"Arrange to scan these files when producing the @file{etc/DOC} file, and load "
"them with @file{site-load.el}."
msgstr ""
#. type: itemize
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:161
msgid ""
"Load the files with @file{site-init.el}, then copy the files into the "
"installation directory for Lisp files when you install Emacs."
msgstr ""
#. type: itemize
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:168
msgid ""
"Specify a @code{nil} value for @code{byte-compile-dynamic-docstrings} as a "
"local variable in each of these files, and load them with either "
"@file{site-load.el} or @file{site-init.el}. (This method has the drawback "
"that the documentation strings take up space in Emacs all the time.)"
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:170
#, no-wrap
msgid "change @code{load-path} at configure time"
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:171
#, no-wrap
msgid "@option{--enable-locallisppath} option to @command{configure}"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:182
msgid ""
"It is not advisable to put anything in @file{site-load.el} or "
"@file{site-init.el} that would alter any of the features that users expect "
"in an ordinary unmodified Emacs. If you feel you must override normal "
"features for your site, do it with @file{default.el}, so that users can "
"override your changes if they wish. @xref{Startup Summary}. Note that if "
"either @file{site-load.el} or @file{site-init.el} changes @code{load-path}, "
"the changes will be lost after dumping. @xref{Library Search}. To make a "
"permanent change to @code{load-path}, use the "
"@option{--enable-locallisppath} option of @command{configure}."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:192
msgid ""
"In a package that can be preloaded, it is sometimes necessary (or useful) to "
"delay certain evaluations until Emacs subsequently starts up. The vast "
"majority of such cases relate to the values of customizable variables. For "
"example, @code{tutorial-directory} is a variable defined in "
"@file{startup.el}, which is preloaded. The default value is set based on "
"@code{data-directory}. The variable needs to access the value of "
"@code{data-directory} when Emacs starts, not when it is dumped, because the "
"Emacs executable has probably been installed in a different location since "
"it was dumped."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:193
#, no-wrap
msgid "custom-initialize-delay symbol value"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:199
msgid ""
"This function delays the initialization of @var{symbol} to the next Emacs "
"start. You normally use this function by specifying it as the "
"@code{:initialize} property of a customizable variable. (The argument "
"@var{value} is unused, and is provided only for compatibility with the form "
"Custom expects.)"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:204
msgid ""
"In the unlikely event that you need a more general functionality than "
"@code{custom-initialize-delay} provides, you can use @code{before-init-hook} "
"(@pxref{Startup Summary})."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:205
#, no-wrap
msgid "dump-emacs-portable to-file &optional track-referrers"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:214
msgid ""
"This function dumps the current state of Emacs into a dump file "
"@var{to-file}, using the @code{pdump} method. Normally, the dump file is "
"called @file{@var{emacs-name}.dmp}, where @var{emacs-name} is the name of "
"the Emacs executable file. The optional argument @var{track-referrers}, if "
"non-@code{nil}, causes the portable dumper to keep additional information to "
"help track down the provenance of object types that are not yet supported by "
"the @code{pdump} method."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:218
msgid ""
"Although the portable dumper code can run on many platforms, the dump files "
"that it produces are not portable---they can be loaded only by the Emacs "
"executable that dumped them."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:221
msgid ""
"If you want to use this function in an Emacs that was already dumped, you "
"must run Emacs with the @samp{-batch} option."
msgstr ""
#. type: vindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:222
#, no-wrap
msgid "after-pdump-load-hook"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:229
msgid ""
"If you're including @samp{.el} files in the dumped Emacs and that @samp{.el} "
"file has code that is normally run at load time, that code won't be run when "
"Emacs starts after dumping. To help work around that problem, you can put "
"functions on the @code{after-pdump-load-hook} hook. This hook is run when "
"starting Emacs."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:231
#, no-wrap
msgid "dump-emacs to-file from-file"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:236
msgid ""
"This function dumps the current state of Emacs into an executable file "
"@var{to-file}, using the @code{unexec} method. It takes symbols from "
"@var{from-file} (this is normally the executable file @file{temacs})."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:240
msgid ""
"This function cannot be used in an Emacs that was already dumped. This "
"function is deprecated, and by default Emacs is built without @code{unexec} "
"support so this function is not available."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:242
#, no-wrap
msgid "pdumper-stats"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:252
msgid ""
"If the current Emacs session restored its state from a dump file, this "
"function returns information about the dump file and the time it took to "
"restore the Emacs state. The value is an alist "
"@w{@code{((dumped-with-pdumper . t) (load-time . @var{time}) "
"(dump-file-name . @var{file}))}}, where @var{file} is the name of the dump "
"file, and @var{time} is the time in seconds it took to restore the state "
"from the dump file. If the current session was not restored from a dump "
"file, the value is nil."
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:256
#, no-wrap
msgid "pure storage"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:264
msgid ""
"Emacs Lisp uses two kinds of storage for user-created Lisp objects: "
"@dfn{normal storage} and @dfn{pure storage}. Normal storage is where all "
"the new data created during an Emacs session are kept (@pxref{Garbage "
"Collection}). Pure storage is used for certain data in the preloaded "
"standard Lisp files---data that should never change during actual use of "
"Emacs."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:285
msgid ""
"Pure storage is allocated only while @command{temacs} is loading the "
"standard preloaded Lisp libraries. In the file @file{emacs}, it is marked "
"as read-only (on operating systems that permit this), so that the memory "
"space can be shared by all the Emacs jobs running on the machine at once. "
"Pure storage is not expandable; a fixed amount is allocated when Emacs is "
"compiled, and if that is not sufficient for the preloaded libraries, "
"@file{temacs} allocates dynamic memory for the part that didn't fit. If "
"Emacs will be dumped using the @code{pdump} method (@pxref{Building Emacs}), "
"the pure-space overflow is of no special importance (it just means some of "
"the preloaded stuff cannot be shared with other Emacs jobs). However, if "
"Emacs will be dumped using the now obsolete @code{unexec} method, the "
"resulting image will work, but garbage collection (@pxref{Garbage "
"Collection}) is disabled in this situation, causing a memory leak. Such an "
"overflow normally won't happen unless you try to preload additional "
"libraries or add features to the standard ones. Emacs will display a "
"warning about the overflow when it starts, if it was dumped using "
"@code{unexec}. If this happens, you should increase the compilation "
"parameter @code{SYSTEM_PURESIZE_EXTRA} in the file @file{src/puresize.h} and "
"rebuild Emacs."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:286
#, no-wrap
msgid "purecopy object"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:293
msgid ""
"This function makes a copy in pure storage of @var{object}, and returns it. "
"It copies a string by simply making a new string with the same characters, "
"but without text properties, in pure storage. It recursively copies the "
"contents of vectors and cons cells. It does not make copies of other "
"objects such as symbols, but just returns them unchanged. It signals an "
"error if asked to copy markers."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:296
msgid ""
"This function is a no-op except while Emacs is being built and dumped; it is "
"usually called only in preloaded Lisp files."
msgstr ""
#. type: defvar
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:298
#, no-wrap
msgid "pure-bytes-used"
msgstr ""
#. type: defvar
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:303
msgid ""
"The value of this variable is the number of bytes of pure storage allocated "
"so far. Typically, in a dumped Emacs, this number is very close to the "
"total amount of pure storage available---if it were not, we would "
"preallocate less."
msgstr ""
#. type: defvar
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:305
#, no-wrap
msgid "purify-flag"
msgstr ""
#. type: defvar
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:309
msgid ""
"This variable determines whether @code{defun} should make a copy of the "
"function definition in pure storage. If it is non-@code{nil}, then the "
"function definition is copied into pure storage."
msgstr ""
#. type: defvar
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:315
msgid ""
"This flag is @code{t} while loading all of the basic functions for building "
"Emacs initially (allowing those functions to be shareable and "
"non-collectible). Dumping Emacs as an executable always writes @code{nil} "
"in this variable, regardless of the value it actually has before and after "
"dumping."
msgstr ""
#. type: defvar
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:317
msgid "You should not change this flag in a running Emacs."
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:322
#, no-wrap
msgid "memory allocation"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:332
msgid ""
"When a program creates a list or the user defines a new function (such as by "
"loading a library), that data is placed in normal storage. If normal "
"storage runs low, then Emacs asks the operating system to allocate more "
"memory. Different types of Lisp objects, such as symbols, cons cells, small "
"vectors, markers, etc., are segregated in distinct blocks in memory. (Large "
"vectors, long strings, buffers and certain other editing types, which are "
"fairly large, are allocated in individual blocks, one per object; small "
"strings are packed into blocks of 8k bytes, and small vectors are packed "
"into blocks of 4k bytes)."
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:333
#, no-wrap
msgid "vector-like objects, storage"
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:334
#, no-wrap
msgid "storage of vector-like Lisp objects"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:343
msgid ""
"Beyond the basic vector, a lot of objects like markers, overlays and buffers "
"are managed as if they were vectors. The corresponding C data structures "
"include the @code{union vectorlike_header} field whose @code{size} member "
"contains the subtype enumerated by @code{enum pvec_type} and an information "
"about how many @code{Lisp_Object} fields this structure contains and what "
"the size of the rest data is. This information is needed to calculate the "
"memory footprint of an object, and used by the vector allocation code while "
"iterating over the vector blocks."
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:344
#, no-wrap
msgid "garbage collection"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:356
msgid ""
"It is quite common to use some storage for a while, then release it by (for "
"example) killing a buffer or deleting the last pointer to an object. Emacs "
"provides a @dfn{garbage collector} to reclaim this abandoned storage. The "
"garbage collector operates, in essence, by finding and marking all Lisp "
"objects that are still accessible to Lisp programs. To begin with, it "
"assumes all the symbols, their values and associated function definitions, "
"and any data presently on the stack, are accessible. Any objects that can "
"be reached indirectly through other accessible objects are also accessible, "
"but this calculation is done ``conservatively'', so it may slightly "
"overestimate how many objects that are accessible."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:364
msgid ""
"When marking is finished, all objects still unmarked are garbage. No matter "
"what the Lisp program or the user does, it is impossible to refer to them, "
"since there is no longer a way to reach them. Their space might as well be "
"reused, since no one will miss them. The second (sweep) phase of the "
"garbage collector arranges to reuse them. (But since the marking was done "
"``conservatively'', not all unused objects are guaranteed to be "
"garbage-collected by any one sweep.)"
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:367
#, no-wrap
msgid "free list"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:377
msgid ""
"The sweep phase puts unused cons cells onto a @dfn{free list} for future "
"allocation; likewise for symbols and markers. It compacts the accessible "
"strings so they occupy fewer 8k blocks; then it frees the other 8k blocks. "
"Unreachable vectors from vector blocks are coalesced to create largest "
"possible free areas; if a free area spans a complete 4k block, that block is "
"freed. Otherwise, the free area is recorded in a free list array, where "
"each entry corresponds to a free list of areas of the same size. Large "
"vectors, buffers, and other large objects are allocated and freed "
"individually."
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:378
#, no-wrap
msgid "CL note---allocate more storage"
msgstr ""
#. type: quotation
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:385
msgid ""
"@b{Common Lisp note:} Unlike other Lisps, GNU Emacs Lisp does not call the "
"garbage collector when the free list is empty. Instead, it simply requests "
"the operating system to allocate more storage, and processing continues "
"until @code{gc-cons-threshold} bytes have been used."
msgstr ""
#. type: quotation
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:391
msgid ""
"This means that you can make sure that the garbage collector will not run "
"during a certain portion of a Lisp program by calling the garbage collector "
"explicitly just before it (provided that portion of the program does not use "
"so much space as to force a second garbage collection)."
msgstr ""
#. type: deffn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:393
#, no-wrap
msgid "Command garbage-collect"
msgstr ""
#. type: deffn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:398
msgid ""
"This command runs a garbage collection, and returns information on the "
"amount of space in use. (Garbage collection can also occur spontaneously if "
"you use more than @code{gc-cons-threshold} bytes of Lisp data since the "
"previous garbage collection.)"
msgstr ""
#. type: deffn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:407
msgid ""
"@code{garbage-collect} returns a list with information on amount of space in "
"use, where each entry has the form @samp{(@var{name} @var{size} @var{used})} "
"or @samp{(@var{name} @var{size} @var{used} @var{free})}. In the entry, "
"@var{name} is a symbol describing the kind of objects this entry represents, "
"@var{size} is the number of bytes used by each one, @var{used} is the number "
"of those objects that were found live in the heap, and optional @var{free} "
"is the number of those objects that are not live but that Emacs keeps around "
"for future allocations. So an overall result is:"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:419
#, no-wrap
msgid ""
"((@code{conses} @var{cons-size} @var{used-conses} @var{free-conses})\n"
" (@code{symbols} @var{symbol-size} @var{used-symbols} @var{free-symbols})\n"
" (@code{strings} @var{string-size} @var{used-strings} @var{free-strings})\n"
" (@code{string-bytes} @var{byte-size} @var{used-bytes})\n"
" (@code{vectors} @var{vector-size} @var{used-vectors})\n"
" (@code{vector-slots} @var{slot-size} @var{used-slots} @var{free-slots})\n"
" (@code{floats} @var{float-size} @var{used-floats} @var{free-floats})\n"
" (@code{intervals} @var{interval-size} @var{used-intervals} "
"@var{free-intervals})\n"
" (@code{buffers} @var{buffer-size} @var{used-buffers})\n"
" (@code{heap} @var{unit-size} @var{total-size} @var{free-size}))\n"
msgstr ""
#. type: deffn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:422
msgid "Here is an example:"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:431
#, no-wrap
msgid ""
"(garbage-collect)\n"
" @result{} ((conses 16 49126 8058) (symbols 48 14607 0)\n"
" (strings 32 2942 2607)\n"
" (string-bytes 1 78607) (vectors 16 7247)\n"
" (vector-slots 8 341609 29474) (floats 8 71 102)\n"
" (intervals 56 27 26) (buffers 944 8)\n"
" (heap 1024 11715 2678))\n"
msgstr ""
#. type: deffn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:436
msgid ""
"Below is a table explaining each element. Note that last @code{heap} entry "
"is optional and present only if an underlying @code{malloc} implementation "
"provides @code{mallinfo} function."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:438
#, no-wrap
msgid "cons-size"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:440
msgid "Internal size of a cons cell, i.e., @code{sizeof (struct Lisp_Cons)}."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:441
#, no-wrap
msgid "used-conses"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:443
msgid "The number of cons cells in use."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:444
#, no-wrap
msgid "free-conses"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:447
msgid ""
"The number of cons cells for which space has been obtained from the "
"operating system, but that are not currently being used."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:448
#, no-wrap
msgid "symbol-size"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:450
msgid "Internal size of a symbol, i.e., @code{sizeof (struct Lisp_Symbol)}."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:451
#, no-wrap
msgid "used-symbols"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:453
msgid "The number of symbols in use."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:454
#, no-wrap
msgid "free-symbols"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:457
msgid ""
"The number of symbols for which space has been obtained from the operating "
"system, but that are not currently being used."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:458
#, no-wrap
msgid "string-size"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:460
msgid "Internal size of a string header, i.e., @code{sizeof (struct Lisp_String)}."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:461
#, no-wrap
msgid "used-strings"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:463
msgid "The number of string headers in use."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:464
#, no-wrap
msgid "free-strings"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:467
msgid ""
"The number of string headers for which space has been obtained from the "
"operating system, but that are not currently being used."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:468
#, no-wrap
msgid "byte-size"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:470
msgid "This is used for convenience and equals to @code{sizeof (char)}."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:471
#, no-wrap
msgid "used-bytes"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:473
msgid "The total size of all string data in bytes."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:474
#, no-wrap
msgid "vector-size"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:476
msgid "Size in bytes of a vector of length 1, including its header."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:477
#, no-wrap
msgid "used-vectors"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:479
msgid "The number of vector headers allocated from the vector blocks."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:480
#, no-wrap
msgid "slot-size"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:482
msgid "Internal size of a vector slot, always equal to @code{sizeof (Lisp_Object)}."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:483
#, no-wrap
msgid "used-slots"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:487
msgid ""
"The number of slots in all used vectors. Slot counts might include some or "
"all overhead from vector headers, depending on the platform."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:488
#, no-wrap
msgid "free-slots"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:490
msgid "The number of free slots in all vector blocks."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:491
#, no-wrap
msgid "float-size"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:494
msgid ""
"Internal size of a float object, i.e., @code{sizeof (struct Lisp_Float)}. "
"(Do not confuse it with the native platform @code{float} or @code{double}.)"
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:495
#, no-wrap
msgid "used-floats"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:497
msgid "The number of floats in use."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:498
#, no-wrap
msgid "free-floats"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:501
msgid ""
"The number of floats for which space has been obtained from the operating "
"system, but that are not currently being used."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:502
#, no-wrap
msgid "interval-size"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:504
msgid "Internal size of an interval object, i.e., @code{sizeof (struct interval)}."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:505
#, no-wrap
msgid "used-intervals"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:507
msgid "The number of intervals in use."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:508
#, no-wrap
msgid "free-intervals"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:511
msgid ""
"The number of intervals for which space has been obtained from the operating "
"system, but that are not currently being used."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:512
#, no-wrap
msgid "buffer-size"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:515
msgid ""
"Internal size of a buffer, i.e., @code{sizeof (struct buffer)}. (Do not "
"confuse with the value returned by @code{buffer-size} function.)"
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:516
#, no-wrap
msgid "used-buffers"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:519
msgid ""
"The number of buffer objects in use. This includes killed buffers invisible "
"to users, i.e., all buffers in @code{all_buffers} list."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:520
#, no-wrap
msgid "unit-size"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:522
msgid "The unit of heap space measurement, always equal to 1024 bytes."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:523
#, no-wrap
msgid "total-size"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:525
msgid "Total heap size, in @var{unit-size} units."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:526
#, no-wrap
msgid "free-size"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:528
msgid "Heap space which is not currently used, in @var{unit-size} units."
msgstr ""
#. type: deffn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:535
msgid ""
"If there was overflow in pure space (@pxref{Pure Storage}), and Emacs was "
"dumped using the (now obsolete) @code{unexec} method (@pxref{Building "
"Emacs}), then @code{garbage-collect} returns @code{nil}, because a real "
"garbage collection cannot be done in that case."
msgstr ""
#. type: defopt
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:537
#, no-wrap
msgid "garbage-collection-messages"
msgstr ""
#. type: defopt
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:541
msgid ""
"If this variable is non-@code{nil}, Emacs displays a message at the "
"beginning and end of garbage collection. The default value is @code{nil}."
msgstr ""
#. type: defvar
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:543
#, no-wrap
msgid "post-gc-hook"
msgstr ""
#. type: defvar
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:547
msgid ""
"This is a normal hook that is run at the end of garbage collection. Garbage "
"collection is inhibited while the hook functions run, so be careful writing "
"them."
msgstr ""
#. type: defopt
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:549
#, no-wrap
msgid "gc-cons-threshold"
msgstr ""
#. type: defopt
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:555
msgid ""
"The value of this variable is the number of bytes of storage that must be "
"allocated for Lisp objects after one garbage collection in order to trigger "
"another garbage collection. You can use the result returned by "
"@code{garbage-collect} to get an information about size of the particular "
"object type; space allocated to the contents of buffers does not count."
msgstr ""
#. type: defopt
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:563
msgid ""
"The initial threshold value is @code{GC_DEFAULT_THRESHOLD}, defined in "
"@file{alloc.c}. Since it's defined in @code{word_size} units, the value is "
"400,000 for the default 32-bit configuration and 800,000 for the 64-bit "
"one. If you specify a larger value, garbage collection will happen less "
"often. This reduces the amount of time spent garbage collecting, but "
"increases total memory use. You may want to do this when running a program "
"that creates lots of Lisp data."
msgstr ""
#. type: defopt
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:568
msgid ""
"You can make collections more frequent by specifying a smaller value, down "
"to 1/10th of @code{GC_DEFAULT_THRESHOLD}. A value less than this minimum "
"will remain in effect only until the subsequent garbage collection, at which "
"time @code{garbage-collect} will set the threshold back to the minimum."
msgstr ""
#. type: defopt
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:570
#, no-wrap
msgid "gc-cons-percentage"
msgstr ""
#. type: defopt
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:575
msgid ""
"The value of this variable specifies the amount of consing before a garbage "
"collection occurs, as a fraction of the current heap size. This criterion "
"and @code{gc-cons-threshold} apply in parallel, and garbage collection "
"occurs only when both criteria are satisfied."
msgstr ""
#. type: defopt
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:579
msgid ""
"As the heap size increases, the time to perform a garbage collection "
"increases. Thus, it can be desirable to do them less frequently in "
"proportion."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:590
msgid ""
"Control over the garbage collector via @code{gc-cons-threshold} and "
"@code{gc-cons-percentage} is only approximate. Although Emacs checks for "
"threshold exhaustion regularly, for efficiency reasons it does not do so "
"immediately after every change to the heap or to @code{gc-cons-threshold} or "
"@code{gc-cons-percentage}, so exhausting the threshold does not immediately "
"trigger garbage collection. Also, for efficiency in threshold calculations "
"Emacs approximates the heap size, which counts the bytes used by "
"currently-accessible objects in the heap."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:595
msgid ""
"The value returned by @code{garbage-collect} describes the amount of memory "
"used by Lisp data, broken down by data type. By contrast, the function "
"@code{memory-limit} provides information on the total amount of memory Emacs "
"is currently using."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:596
#, no-wrap
msgid "memory-limit"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:601
msgid ""
"This function returns an estimate of the total amount of bytes of virtual "
"memory that Emacs is currently using, divided by 1024. You can use this to "
"get a general idea of how your actions affect the memory usage."
msgstr ""
#. type: defvar
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:603
#, no-wrap
msgid "memory-full"
msgstr ""
#. type: defvar
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:606
msgid ""
"This variable is @code{t} if Emacs is nearly out of memory for Lisp objects, "
"and @code{nil} otherwise."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:608
#, no-wrap
msgid "memory-use-counts"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:612
msgid ""
"This returns a list of numbers that count the number of objects created in "
"this Emacs session. Each of these counters increments for a certain kind of "
"object. See the documentation string for details."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:614
#, no-wrap
msgid "memory-info"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:617
msgid ""
"This functions returns an amount of total system memory and how much of it "
"is free. On an unsupported system, the value may be @code{nil}."
msgstr ""
#. type: defvar
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:619
#, no-wrap
msgid "gcs-done"
msgstr ""
#. type: defvar
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:622
msgid ""
"This variable contains the total number of garbage collections done so far "
"in this Emacs session."
msgstr ""
#. type: defvar
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:624
#, no-wrap
msgid "gc-elapsed"
msgstr ""
#. type: defvar
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:628
msgid ""
"This variable contains the total number of seconds of elapsed time during "
"garbage collection so far in this Emacs session, as a floating-point number."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:630
#, no-wrap
msgid "memory-report"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:635
msgid ""
"It can sometimes be useful to see where Emacs is using memory (in various "
"variables, buffers, and caches). This command will open a new buffer "
"(called @samp{\"*Memory Report*\"}) that will give an overview, in addition "
"to listing the ``largest'' buffers and variables."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:641
msgid ""
"All the data here is approximate, because there's really no consistent way "
"to compute the size of a variable. For instance, two variables may share "
"parts of a data structure, and this will be counted twice, but this command "
"may still give a useful high-level overview of which parts of Emacs are "
"using memory."
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:646
#, no-wrap
msgid "stack allocated Lisp objects"
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:647
#, no-wrap
msgid "Lisp objects, stack-allocated"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:659
msgid ""
"The garbage collector described above is used to manage data visible from "
"Lisp programs, as well as most of the data internally used by the Lisp "
"interpreter. Sometimes it may be useful to allocate temporary internal "
"objects using the C stack of the interpreter. This can help performance, as "
"stack allocation is typically faster than using heap memory to allocate and "
"the garbage collector to free. The downside is that using such objects "
"after they are freed results in undefined behavior, so uses should be well "
"thought out and carefully debugged by using the "
"@code{GC_CHECK_MARKED_OBJECTS} feature (see @file{src/alloc.c}). In "
"particular, stack-allocated objects should never be made visible to user "
"Lisp code."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:667
msgid ""
"Currently, cons cells and strings can be allocated this way. This is "
"implemented by C macros like @code{AUTO_CONS} and @code{AUTO_STRING} that "
"define a named @code{Lisp_Object} with block lifetime. These objects are "
"not freed by the garbage collector; instead, they have automatic storage "
"duration, i.e., they are allocated like local variables and are "
"automatically freed at the end of execution of the C block that defined the "
"object."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:671
msgid ""
"For performance reasons, stack-allocated strings are limited to "
"@acronym{ASCII} characters, and many of these strings are immutable, i.e., "
"calling @code{ASET} on them produces undefined behavior."
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:674
#, no-wrap
msgid "memory usage"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:682
msgid ""
"These functions and variables give information about the total amount of "
"memory allocation that Emacs has done, broken down by data type. Note the "
"difference between these and the values returned by @code{garbage-collect}; "
"those count objects that currently exist, but these count the number or size "
"of all allocations, including those for objects that have since been freed."
msgstr ""
#. type: defvar
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:683
#, no-wrap
msgid "cons-cells-consed"
msgstr ""
#. type: defvar
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:686
msgid ""
"The total number of cons cells that have been allocated so far in this Emacs "
"session."
msgstr ""
#. type: defvar
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:688
#, no-wrap
msgid "floats-consed"
msgstr ""
#. type: defvar
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:691
msgid ""
"The total number of floats that have been allocated so far in this Emacs "
"session."
msgstr ""
#. type: defvar
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:693
#, no-wrap
msgid "vector-cells-consed"
msgstr ""
#. type: defvar
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:698
msgid ""
"The total number of vector cells that have been allocated so far in this "
"Emacs session. This includes vector-like objects such as markers and "
"overlays, plus certain objects not visible to users."
msgstr ""
#. type: defvar
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:700
#, no-wrap
msgid "symbols-consed"
msgstr ""
#. type: defvar
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:703
msgid ""
"The total number of symbols that have been allocated so far in this Emacs "
"session."
msgstr ""
#. type: defvar
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:705
#, no-wrap
msgid "string-chars-consed"
msgstr ""
#. type: defvar
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:708
msgid ""
"The total number of string characters that have been allocated so far in "
"this session."
msgstr ""
#. type: defvar
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:710
#, no-wrap
msgid "intervals-consed"
msgstr ""
#. type: defvar
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:713
msgid ""
"The total number of intervals that have been allocated so far in this Emacs "
"session."
msgstr ""
#. type: defvar
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:715
#, no-wrap
msgid "strings-consed"
msgstr ""
#. type: defvar
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:718
msgid ""
"The total number of strings that have been allocated so far in this Emacs "
"session."
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:722
#, no-wrap
msgid "C programming language"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:730
msgid ""
"The C part of Emacs is portable to C99 or later: C11-specific features such "
"as @samp{<stdalign.h>} and @samp{_Noreturn} are not used without a check, "
"typically at configuration time, and the Emacs build procedure provides a "
"substitute implementation if necessary. Some C11 features, such as "
"anonymous structures and unions, are too difficult to emulate, so they are "
"avoided entirely."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:732
msgid "At some point in the future the base C dialect will no doubt change to C11."
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:735
#, no-wrap
msgid "primitive function internals"
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:736
#, no-wrap
msgid "writing Emacs primitives"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:742
msgid ""
"Lisp primitives are Lisp functions implemented in C@. The details of "
"interfacing the C function so that Lisp can call it are handled by a few C "
"macros. The only way to really understand how to write new C code is to "
"read the source, but we can explain some things here."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:746
msgid ""
"An example of a special form is the definition of @code{or}, from "
"@file{eval.c}. (An ordinary function would have the same general "
"appearance.)"
msgstr ""
#. type: group
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:754
#, no-wrap
msgid ""
"DEFUN (\"or\", For, Sor, 0, UNEVALLED, 0,\n"
" doc: /* Eval args until one of them yields non-nil,\n"
"then return that value.\n"
"The remaining args are not evalled at all.\n"
"If all args return nil, return nil.\n"
msgstr ""
#. type: group
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:760
#, no-wrap
msgid ""
"usage: (or CONDITIONS...) */)\n"
" (Lisp_Object args)\n"
"@{\n"
" Lisp_Object val = Qnil;\n"
msgstr ""
#. type: group
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:771
#, no-wrap
msgid ""
" while (CONSP (args))\n"
" @{\n"
" val = eval_sub (XCAR (args));\n"
" if (!NILP (val))\n"
" break;\n"
" args = XCDR (args);\n"
" maybe_quit ();\n"
" @}\n"
msgstr ""
#. type: group
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:776
#, no-wrap
msgid ""
" return val;\n"
"@}\n"
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:779
#, no-wrap
msgid "@code{DEFUN}, C macro to define Lisp primitives"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:782
msgid ""
"Let's start with a precise explanation of the arguments to the @code{DEFUN} "
"macro. Here is a template for them:"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:785
#, no-wrap
msgid ""
"DEFUN (@var{lname}, @var{fname}, @var{sname}, @var{min}, @var{max}, "
"@var{interactive}, @var{doc})\n"
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:788
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:994
#, no-wrap
msgid "lname"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:791
msgid ""
"This is the name of the Lisp symbol to define as the function name; in the "
"example above, it is @code{or}."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:792
#, no-wrap
msgid "fname"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:798
msgid ""
"This is the C function name for this function. This is the name that is "
"used in C code for calling the function. The name is, by convention, "
"@samp{F} prepended to the Lisp name, with all dashes (@samp{-}) in the Lisp "
"name changed to underscores. Thus, to call this function from C code, call "
"@code{For}."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:799
#, no-wrap
msgid "sname"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:806
msgid ""
"This is a C variable name to use for a structure that holds the data for the "
"subr object that represents the function in Lisp. This structure conveys "
"the Lisp symbol name to the initialization routine that will create the "
"symbol and store the subr object as its definition. By convention, this "
"name is always @var{fname} with @samp{F} replaced with @samp{S}."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:807
#, no-wrap
msgid "min"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:810
msgid ""
"This is the minimum number of arguments that the function requires. The "
"function @code{or} allows a minimum of zero arguments."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:811
#, no-wrap
msgid "max"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:819
msgid ""
"This is the maximum number of arguments that the function accepts, if there "
"is a fixed maximum. Alternatively, it can be @code{UNEVALLED}, indicating a "
"special form that receives unevaluated arguments, or @code{MANY}, indicating "
"an unlimited number of evaluated arguments (the equivalent of "
"@code{&rest}). Both @code{UNEVALLED} and @code{MANY} are macros. If "
"@var{max} is a number, it must be more than @var{min} but less than 8."
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:820
#, no-wrap
msgid "interactive specification in primitives"
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:821
#, no-wrap
msgid "interactive"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:830
msgid ""
"This is an interactive specification, a string such as might be used as the "
"argument of @code{interactive} in a Lisp function (@pxref{Using "
"Interactive}). In the case of @code{or}, it is @code{0} (a null pointer), "
"indicating that @code{or} cannot be called interactively. A value of "
"@code{\"\"} indicates a function that should receive no arguments when "
"called interactively. If the value begins with a @samp{\"(}, the string is "
"evaluated as a Lisp form. For example:"
msgstr ""
#. type: group
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:838
#, no-wrap
msgid ""
"DEFUN (\"foo\", Ffoo, Sfoo, 0, 3,\n"
" \"(list (read-char-by-name \\\"Insert character: \\\")\\\n"
" (prefix-numeric-value current-prefix-arg)\\\n"
" t)\",\n"
" doc: /* @dots{} */)\n"
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:841
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:998
#, no-wrap
msgid "doc"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:848
msgid ""
"This is the documentation string. It uses C comment syntax rather than C "
"string syntax because comment syntax requires nothing special to include "
"multiple lines. The @samp{doc:} identifies the comment that follows as the "
"documentation string. The @samp{/*} and @samp{*/} delimiters that begin and "
"end the comment are not part of the documentation string."
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:855
msgid ""
"If the last line of the documentation string begins with the keyword "
"@samp{usage:}, the rest of the line is treated as the argument list for "
"documentation purposes. This way, you can use different argument names in "
"the documentation string from the ones used in the C code. @samp{usage:} is "
"required if the function has an unlimited number of arguments."
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:862
msgid ""
"Some primitives have multiple definitions, one per platform (e.g., "
"@code{x-create-frame}). In such cases, rather than writing the same "
"documentation string in each definition, only one definition has the actual "
"documentation. The others have placeholders beginning with @samp{SKIP}, "
"which are ignored by the function that parses the @file{DOC} file."
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:866
msgid ""
"All the usual rules for documentation strings in Lisp code "
"(@pxref{Documentation Tips}) apply to C code documentation strings too."
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:870
msgid ""
"The documentation string can be followed by a list of C function attributes "
"for the C function that implements the primitive, like this:"
msgstr ""
#. type: group
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:876
#, no-wrap
msgid ""
"DEFUN (\"bar\", Fbar, Sbar, 0, UNEVALLED, 0\n"
" doc: /* @dots{} */\n"
" attributes: @var{attr1} @var{attr2} @dots{})\n"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:882
msgid ""
"You can specify more than a single attribute, one after the other. "
"Currently, only the following attributes are recognized:"
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:884
#, no-wrap
msgid "noreturn"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:889
msgid ""
"Declares the C function as one that never returns. This corresponds to the "
"C11 keyword @code{_Noreturn} and to @w{@code{__attribute__ "
"((__noreturn__))}} attribute of GCC (@pxref{Function Attributes,,, gcc, "
"Using the GNU Compiler Collection})."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:890
#, no-wrap
msgid "const"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:895
msgid ""
"Declares that the function does not examine any values except its arguments, "
"and has no effects except the return value. This corresponds to "
"@w{@code{__attribute__ ((__const__))}} attribute of GCC."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:896
#, no-wrap
msgid "noinline"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:901
msgid ""
"This corresponds to @w{@code{__attribute__ ((__noinline__))}} attribute of "
"GCC, which prevents the function from being considered for inlining. This "
"might be needed, e.g., to countermand effects of link-time optimizations on "
"stack-based variables."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:923
msgid ""
"After the call to the @code{DEFUN} macro, you must write the argument list "
"for the C function, including the types for the arguments. If the primitive "
"accepts a fixed maximum number of Lisp arguments, there must be one C "
"argument for each Lisp argument, and each argument must be of type "
"@code{Lisp_Object}. (Various macros and functions for creating values of "
"type @code{Lisp_Object} are declared in the file @file{lisp.h}.) If the "
"primitive is a special form, it must accept a Lisp list containing its "
"unevaluated Lisp arguments as a single argument of type @code{Lisp_Object}. "
"If the primitive has no upper limit on the number of evaluated Lisp "
"arguments, it must have exactly two C arguments: the first is the number of "
"Lisp arguments, and the second is the address of a block containing their "
"values. These have types @code{ptrdiff_t} and @w{@code{Lisp_Object *}}, "
"respectively. Since @code{Lisp_Object} can hold any Lisp object of any data "
"type, you can determine the actual data type only at run time; so if you "
"want a primitive to accept only a certain type of argument, you must check "
"the type explicitly using a suitable predicate (@pxref{Type Predicates})."
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:923
#, no-wrap
msgid "type checking internals"
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:925
#, no-wrap
msgid "garbage collection protection"
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:926
#, no-wrap
msgid "protect C variables from garbage collection"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:940
msgid ""
"Within the function @code{For} itself, the local variable @code{args} refers "
"to objects controlled by Emacs's stack-marking garbage collector. Although "
"the garbage collector does not reclaim objects reachable from C "
"@code{Lisp_Object} stack variables, it may move some of the components of an "
"object, such as the contents of a string or the text of a buffer. "
"Therefore, functions that access these components must take care to refetch "
"their addresses after performing Lisp evaluation. This means that instead "
"of keeping C pointers to string contents or buffer text, the code should "
"keep the buffer or string position, and recompute the C pointer from the "
"position after performing Lisp evaluation. Lisp evaluation can occur via "
"calls to @code{eval_sub} or @code{Feval}, either directly or indirectly."
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:941
#, no-wrap
msgid "@code{maybe_quit}, use in Lisp primitives"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:948
msgid ""
"Note the call to @code{maybe_quit} inside the loop: this function checks "
"whether the user pressed @kbd{C-g}, and if so, aborts the processing. You "
"should do that in any loop that can potentially require a large number of "
"iterations; in this case, the list of arguments could be very long. This "
"increases Emacs responsiveness and improves user experience."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:954
msgid ""
"You must not use C initializers for static or global variables unless the "
"variables are never written once Emacs is dumped. These variables with "
"initializers are allocated in an area of memory that becomes read-only (on "
"certain operating systems) as a result of dumping Emacs. @xref{Pure "
"Storage}."
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:955
#, no-wrap
msgid "@code{defsubr}, Lisp symbol for a primitive"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:960
msgid ""
"Defining the C function is not enough to make a Lisp primitive available; "
"you must also create the Lisp symbol for the primitive and store a suitable "
"subr object in its function cell. The code looks like this:"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:963
#, no-wrap
msgid "defsubr (&@var{sname});\n"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:967
msgid "Here @var{sname} is the name you used as the third argument to @code{DEFUN}."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:976
msgid ""
"If you add a new primitive to a file that already has Lisp primitives "
"defined in it, find the function (near the end of the file) named "
"@code{syms_of_@var{something}}, and add the call to @code{defsubr} there. "
"If the file doesn't have this function, or if you create a new file, add to "
"it a @code{syms_of_@var{filename}} (e.g., @code{syms_of_myfile}). Then find "
"the spot in @file{emacs.c} where all of these functions are called, and add "
"a call to @code{syms_of_@var{filename}} there."
msgstr ""
#. type: anchor{#1}
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:978
msgid "Defining Lisp variables in C"
msgstr ""
#. type: vindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:978
#, no-wrap
msgid "byte-boolean-vars"
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:979
#, no-wrap
msgid "defining Lisp variables in C"
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:980
#, no-wrap
msgid "@code{DEFVAR_INT}, @code{DEFVAR_LISP}, @code{DEFVAR_BOOL}, @code{DEFSYM}"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:990
msgid ""
"The function @code{syms_of_@var{filename}} is also the place to define any C "
"variables that are to be visible as Lisp variables. @code{DEFVAR_LISP} "
"makes a C variable of type @code{Lisp_Object} visible in Lisp. "
"@code{DEFVAR_INT} makes a C variable of type @code{int} visible in Lisp with "
"a value that is always an integer. @code{DEFVAR_BOOL} makes a C variable of "
"type @code{int} visible in Lisp with a value that is either @code{t} or "
"@code{nil}. Note that variables defined with @code{DEFVAR_BOOL} are "
"automatically added to the list @code{byte-boolean-vars} used by the byte "
"compiler."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:992
msgid "These macros all expect three arguments:"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:996
msgid "The name of the variable to be used by Lisp programs."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:996
#, no-wrap
msgid "vname"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:998
msgid "The name of the variable in the C sources."
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1001
msgid ""
"The documentation for the variable, as a C comment. @xref{Documentation "
"Basics}, for more details."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1008
msgid ""
"By convention, when defining variables of a ``native'' type (@code{int} and "
"@code{bool}), the name of the C variable is the name of the Lisp variable "
"with @code{-} replaced by @code{_}. When the variable has type "
"@code{Lisp_Object}, the convention is to also prefix the C variable name "
"with @code{V}. i.e."
msgstr ""
#. type: smallexample
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1012
#, no-wrap
msgid ""
"DEFVAR_INT (\"my-int-variable\", my_int_variable,\n"
" doc: /* An integer variable. */);\n"
"\n"
msgstr ""
#. type: smallexample
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1015
#, no-wrap
msgid ""
"DEFVAR_LISP (\"my-lisp-variable\", Vmy_lisp_variable,\n"
" doc: /* A Lisp variable. */);\n"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1025
msgid ""
"There are situations in Lisp where you need to refer to the symbol itself "
"rather than the value of that symbol. One such case is when temporarily "
"overriding the value of a variable, which in Lisp is done with @code{let}. "
"In C sources, this is done by defining a corresponding, constant symbol, and "
"using @code{specbind}. By convention, @code{Qmy_lisp_variable} corresponds "
"to @code{Vmy_lisp_variable}; to define it, use the @code{DEFSYM} macro. "
"i.e."
msgstr ""
#. type: smallexample
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1028
#, no-wrap
msgid "DEFSYM (Qmy_lisp_variable, \"my-lisp-variable\");\n"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1031
msgid "To perform the actual binding:"
msgstr ""
#. type: smallexample
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1034
#, no-wrap
msgid "specbind (Qmy_lisp_variable, Qt);\n"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1040
msgid ""
"In Lisp symbols sometimes need to be quoted, to achieve the same effect in C "
"you again use the corresponding constant symbol @code{Qmy_lisp_variable}. "
"For example, when creating a buffer-local variable (@pxref{Buffer-Local "
"Variables}) in Lisp you would write:"
msgstr ""
#. type: smallexample
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1043
#, no-wrap
msgid "(make-variable-buffer-local 'my-lisp-variable)\n"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1047
msgid ""
"In C the corresponding code uses @code{Fmake_variable_buffer_local} in "
"combination with @code{DEFSYM}, i.e."
msgstr ""
#. type: smallexample
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1051
#, no-wrap
msgid ""
"DEFSYM (Qmy_lisp_variable, \"my-lisp-variable\");\n"
"Fmake_variable_buffer_local (Qmy_lisp_variable);\n"
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1053
#, no-wrap
msgid "defining customization variables in C"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1058
msgid ""
"If you want to make a Lisp variable that is defined in C behave like one "
"declared with @code{defcustom}, add an appropriate entry to "
"@file{cus-start.el}. @xref{Variable Definitions}, for a description of the "
"format to use."
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1059
#, no-wrap
msgid "@code{staticpro}, protection from GC"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1063
msgid ""
"If you directly define a file-scope C variable of type @code{Lisp_Object}, "
"you must protect it from garbage-collection by calling @code{staticpro} in "
"@code{syms_of_@var{filename}}, like this:"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1066
#, no-wrap
msgid "staticpro (&@var{variable});\n"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1071
msgid ""
"Here is another example function, with more complicated arguments. This "
"comes from the code in @file{window.c}, and it demonstrates the use of "
"macros and functions to manipulate Lisp objects."
msgstr ""
#. type: group
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1078
#, no-wrap
msgid ""
"DEFUN (\"coordinates-in-window-p\", Fcoordinates_in_window_p,\n"
" Scoordinates_in_window_p, 2, 2, 0,\n"
" doc: /* Return non-nil if COORDINATES are in WINDOW.\n"
" @dots{}\n"
msgstr ""
#. type: group
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1087
#, no-wrap
msgid ""
" or `right-margin' is returned. */)\n"
" (register Lisp_Object coordinates, Lisp_Object window)\n"
"@{\n"
" struct window *w;\n"
" struct frame *f;\n"
" int x, y;\n"
" Lisp_Object lx, ly;\n"
msgstr ""
#. type: group
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1099
#, no-wrap
msgid ""
" w = decode_live_window (window);\n"
" f = XFRAME (w->frame);\n"
" CHECK_CONS (coordinates);\n"
" lx = Fcar (coordinates);\n"
" ly = Fcdr (coordinates);\n"
" CHECK_NUMBER (lx);\n"
" CHECK_NUMBER (ly);\n"
" x = FRAME_PIXEL_X_FROM_CANON_X (f, lx) + FRAME_INTERNAL_BORDER_WIDTH "
"(f);\n"
" y = FRAME_PIXEL_Y_FROM_CANON_Y (f, ly) + FRAME_INTERNAL_BORDER_WIDTH "
"(f);\n"
msgstr ""
#. type: group
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1106
#, no-wrap
msgid ""
" switch (coordinates_in_window (w, x, y))\n"
" @{\n"
" case ON_NOTHING: /* NOT in window at all. */\n"
" return Qnil;\n"
msgstr ""
#. type: smallexample
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1109
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1116
#, no-wrap
msgid ""
" @dots{}\n"
"\n"
msgstr ""
#. type: group
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1113
#, no-wrap
msgid ""
" case ON_MODE_LINE: /* In mode line of window. */\n"
" return Qmode_line;\n"
msgstr ""
#. type: group
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1121
#, no-wrap
msgid ""
" case ON_SCROLL_BAR: /* On scroll-bar of window. */\n"
" /* Historically we are supposed to return nil in this case. */\n"
" return Qnil;\n"
msgstr ""
#. type: group
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1128
#, no-wrap
msgid ""
" default:\n"
" emacs_abort ();\n"
" @}\n"
"@}\n"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1139
msgid ""
"Note that C code cannot call functions by name unless they are defined in "
"C@. The way to call a function written in Lisp is to use @code{Ffuncall}, "
"which embodies the Lisp function @code{funcall}. Since the Lisp function "
"@code{funcall} accepts an unlimited number of arguments, in C it takes two: "
"the number of Lisp-level arguments, and a one-dimensional array containing "
"their values. The first Lisp-level argument is the Lisp function to call, "
"and the rest are the arguments to pass to it."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1143
msgid ""
"The C functions @code{call0}, @code{call1}, @code{call2}, and so on, provide "
"handy ways to call a Lisp function conveniently with a fixed number of "
"arguments. They work by calling @code{Ffuncall}."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1147
msgid ""
"@file{eval.c} is a very good file to look through for examples; "
"@file{lisp.h} contains the definitions for some important macros and "
"functions."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1151
msgid ""
"If you define a function which is side-effect free or pure, give it a "
"non-@code{nil} @code{side-effect-free} or @code{pure} property, respectively "
"(@pxref{Standard Properties})."
msgstr ""
#. type: section
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1153
#, no-wrap
msgid "Writing Dynamically-Loaded Modules"
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1154
#, no-wrap
msgid "writing emacs modules"
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1155
#, no-wrap
msgid "dynamic modules, writing"
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1157
#, no-wrap
msgid "module @acronym{API}"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1166
msgid ""
"This section describes the Emacs module @acronym{API} and how to use it as "
"part of writing extension modules for Emacs. The module @acronym{API} is "
"defined in the C programming language, therefore the description and the "
"examples in this section assume the module is written in C@. For other "
"programming languages, you will need to use the appropriate bindings, "
"interfaces and facilities for calling C code. Emacs C code requires a C99 "
"or later compiler (@pxref{C Dialect}), and so the code examples in this "
"section also follow that standard."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1169
msgid ""
"Writing a module and integrating it into Emacs comprises the following "
"tasks:"
msgstr ""
#. type: itemize
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1173
msgid "Writing initialization code for the module."
msgstr ""
#. type: itemize
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1176
msgid "Writing one or more module functions."
msgstr ""
#. type: itemize
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1180
msgid "Communicating values and objects between Emacs and your module functions."
msgstr ""
#. type: itemize
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1183
msgid "Handling of error conditions and nonlocal exits."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1188
msgid ""
"The following subsections describe these tasks and the @acronym{API} itself "
"in more detail."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1193
msgid ""
"Once your module is written, compile it to produce a shared library, "
"according to the conventions of the underlying platform. Then place the "
"shared library in a directory mentioned in @code{load-path} (@pxref{Library "
"Search}), where Emacs will find it."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1197
msgid ""
"If you wish to verify the conformance of a module to the Emacs dynamic "
"module @acronym{API}, invoke Emacs with the @kbd{--module-assertions} "
"option. @xref{Initial Options,,,emacs, The GNU Emacs Manual}."
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1204
msgid "Module Initialization::"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1204
msgid "Module Functions::"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1204
msgid "Module Values::"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1204
msgid "Module Misc::"
msgstr ""
#. type: node
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1204
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2091
#, no-wrap
msgid "Module Nonlocal"
msgstr ""
#. type: node
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1206
#, no-wrap
msgid "Module Initialization"
msgstr ""
#. type: subsection
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1207
#, no-wrap
msgid "Module Initialization Code"
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1208
#, no-wrap
msgid "module initialization"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1212
msgid ""
"Begin your module by including the header file @file{emacs-module.h} and "
"defining the GPL compatibility symbol:"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1215
#, no-wrap
msgid ""
"#include <emacs-module.h>\n"
"\n"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1217
#, no-wrap
msgid "int plugin_is_GPL_compatible;\n"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1222
msgid ""
"The @file{emacs-module.h} file is installed into your system's include tree "
"as part of the Emacs installation. Alternatively, you can find it in the "
"Emacs source tree."
msgstr ""
#. type: anchor{#1}
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1225
msgid "module initialization function"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1225
msgid "Next, write an initialization function for the module."
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1226
#, no-wrap
msgid "Function int emacs_module_init (struct emacs_runtime *@var{runtime})"
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1236
msgid ""
"Emacs calls this function when it loads a module. If a module does not "
"export a function named @code{emacs_module_init}, trying to load the module "
"will signal an error. The initialization function should return zero if the "
"initialization succeeds, non-zero otherwise. In the latter case, Emacs will "
"signal an error, and the loading of the module will fail. If the user "
"presses @kbd{C-g} during the initialization, Emacs ignores the return value "
"of the initialization function and quits (@pxref{Quitting}). (If needed, "
"you can catch user quitting inside the initialization function, "
"@pxref{should_quit}.)"
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1242
msgid ""
"The argument @var{runtime} is a pointer to a C @code{struct} that includes 2 "
"public fields: @code{size}, which provides the size of the structure in "
"bytes; and @code{get_environment}, which provides a pointer to a function "
"that allows the module initialization function access to the Emacs "
"environment object and its interfaces."
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1246
msgid ""
"The initialization function should perform whatever initialization is "
"required for the module. In addition, it can perform the following tasks:"
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1248
#, no-wrap
msgid "compatibility, between modules and Emacs"
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1249
#, no-wrap
msgid "Compatibility verification"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1253
msgid ""
"A module can verify that the Emacs executable which loads the module is "
"compatible with the module, by comparing the @code{size} member of the "
"@var{runtime} structure with the value compiled into the module:"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1261
#, no-wrap
msgid ""
"int\n"
"emacs_module_init (struct emacs_runtime *runtime)\n"
"@{\n"
" if (runtime->size < sizeof (*runtime))\n"
" return 1;\n"
"@}\n"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1268
msgid ""
"If the size of the runtime object passed to the module is smaller than what "
"it expects, it means the module was compiled for an Emacs version newer "
"(later) than the one which attempts to load it, i.e.@: the module might be "
"incompatible with the Emacs binary."
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1273
msgid ""
"In addition, a module can verify the compatibility of the module "
"@acronym{API} with what the module expects. The following sample code "
"assumes it is part of the @code{emacs_module_init} function shown above:"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1278
#, no-wrap
msgid ""
" emacs_env *env = runtime->get_environment (runtime);\n"
" if (env->size < sizeof (*env))\n"
" return 2;\n"
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1281
#, no-wrap
msgid "module runtime environment"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1286
msgid ""
"This calls the @code{get_environment} function using the pointer provided in "
"the @code{runtime} structure to retrieve a pointer to the @acronym{API}'s "
"@dfn{environment}, a C @code{struct} which also has a @code{size} field "
"holding the size of the structure in bytes."
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1290
msgid ""
"Finally, you can write a module that will work with older versions of Emacs, "
"by comparing the size of the environment passed by Emacs with known sizes, "
"like this:"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1299
#, no-wrap
msgid ""
" emacs_env *env = runtime->get_environment (runtime);\n"
" if (env->size >= sizeof (struct emacs_env_26))\n"
" emacs_version = 26; /* Emacs 26 or later. */\n"
" else if (env->size >= sizeof (struct emacs_env_25))\n"
" emacs_version = 25;\n"
" else\n"
" return 2; /* Unknown or unsupported version. */\n"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1307
msgid ""
"This works because later Emacs versions always @emph{add} members to the "
"environment, never @emph{remove} any members, so the size can only grow with "
"new Emacs releases. Given the version of Emacs, the module can use only the "
"parts of the module @acronym{API} that existed in that version, since those "
"parts are identical in later versions."
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1318
msgid ""
"@file{emacs-module.h} defines a preprocessor macro "
"@code{EMACS_MAJOR_VERSION}. It expands to an integer literal which is the "
"latest major version of Emacs supported by the header. @xref{Version "
"Info}. Note that the value of @code{EMACS_MAJOR_VERSION} is a compile-time "
"constant and does not represent the version of Emacs that is currently "
"running and has loaded your module. If you want your module to be "
"compatible with various versions of @file{emacs-module.h} as well as various "
"versions of Emacs, you can use conditional compilation based on "
"@code{EMACS_MAJOR_VERSION}."
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1323
msgid ""
"We recommend that modules always perform the compatibility verification, "
"unless they do their job entirely in the initialization function, and don't "
"access any Lisp objects or use any Emacs functions accessible through the "
"environment structure."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1324
#, no-wrap
msgid "Binding module functions to Lisp symbols"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1328
msgid ""
"This gives the module functions names so that Lisp code could call it by "
"that name. We describe how to do this in @ref{Module Functions} below."
msgstr ""
#. type: node
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1331
#, no-wrap
msgid "Module Functions"
msgstr ""
#. type: subsection
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1332
#, no-wrap
msgid "Writing Module Functions"
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1333
#, no-wrap
msgid "writing module functions"
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1334
#, no-wrap
msgid "module functions"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1339
msgid ""
"The main reason for writing an Emacs module is to make additional functions "
"available to Lisp programs that load the module. This subsection describes "
"how to write such @dfn{module functions}."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1341
msgid "A module function has the following general form and signature:"
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1342
#, no-wrap
msgid ""
"Function emacs_value emacs_function (emacs_env *@var{env}, ptrdiff_t "
"@var{nargs}, emacs_value *@var{args}, void *@var{data})"
msgstr ""
#. type: tindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1343
#, no-wrap
msgid "emacs_function"
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1353
msgid ""
"The @var{env} argument provides a pointer to the @acronym{API} environment, "
"needed to access Emacs objects and functions. The @var{nargs} argument is "
"the required number of arguments, which can be zero (see "
"@code{make_function} below for more flexible specification of the argument "
"number), and @var{args} is a pointer to the array of the function "
"arguments. The argument @var{data} points to additional data required by "
"the function, which was arranged when @code{make_function} (see below) was "
"called to create an Emacs function from @code{emacs_function}."
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1359
msgid ""
"Module functions use the type @code{emacs_value} to communicate Lisp objects "
"between Emacs and the module (@pxref{Module Values}). The @acronym{API}, "
"described below and in the following subsections, provides facilities for "
"conversion between basic C data types and the corresponding "
"@code{emacs_value} objects."
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1367
msgid ""
"A module function always returns a value. If the function returns normally, "
"the Lisp code which called it will see the Lisp object corresponding to the "
"@code{emacs_value} value the function returned. However, if the user typed "
"@kbd{C-g}, or if the module function or its callees signaled an error or "
"exited nonlocally (@pxref{Module Nonlocal}), Emacs will ignore the returned "
"value and quit or throw as it does when Lisp code encounters the same "
"situations."
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1371
msgid ""
"The header @file{emacs-module.h} provides the type @code{emacs_function} as "
"an alias type for a function pointer to a module function."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1380
msgid ""
"After writing your C code for a module function, you should make a Lisp "
"function object from it using the @code{make_function} function, whose "
"pointer is provided in the environment (recall that the pointer to the "
"environment is returned by @code{get_environment}). This is normally done "
"in the module initialization function (@pxref{module initialization "
"function}), after verifying the @acronym{API} compatibility."
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1381
#, no-wrap
msgid ""
"Function emacs_value make_function (emacs_env *@var{env}, ptrdiff_t "
"@var{min_arity}, ptrdiff_t @var{max_arity}, emacs_function @var{func}, const "
"char *@var{docstring}, void *@var{data})"
msgstr ""
#. type: vindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1382
#, no-wrap
msgid "emacs_variadic_function"
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1391
msgid ""
"This returns an Emacs function created from the C function @var{func}, whose "
"signature is as described for @code{emacs_function} above. The arguments "
"@var{min_arity} and @var{max_arity} specify the minimum and maximum number "
"of arguments that @var{func} can accept. The @var{max_arity} argument can "
"have the special value @code{emacs_variadic_function}, which makes the "
"function accept an unlimited number of arguments, like the @code{&rest} "
"keyword in Lisp (@pxref{Argument List})."
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1396
msgid ""
"The argument @var{data} is a way to arrange for arbitrary additional data to "
"be passed to @var{func} when it is called. Whatever pointer is passed to "
"@code{make_function} will be passed unaltered to @var{func}."
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1403
msgid ""
"The argument @var{docstring} specifies the documentation string for the "
"function. It should be either an @acronym{ASCII} string, or a UTF-8 encoded "
"non-@acronym{ASCII} string, or a @code{NULL} pointer; in the latter case the "
"function will have no documentation. The documentation string can end with "
"a line that specifies the advertised calling convention, see @ref{Function "
"Documentation}."
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1409
msgid ""
"Since every module function must accept the pointer to the environment as "
"its first argument, the call to @code{make_function} could be made from any "
"module function, but you will normally want to do that from the module "
"initialization function, so that all the module functions are known to Emacs "
"once the module is loaded."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1415
msgid ""
"Finally, you should bind the Lisp function to a symbol, so that Lisp code "
"could call your function by name. For that, use the module @acronym{API} "
"function @code{intern} (@pxref{intern}) whose pointer is also provided in "
"the environment that module functions can access."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1419
msgid ""
"Combining the above steps, code that arranges for a C function "
"@code{module_func} to be callable as @code{module-func} from Lisp will look "
"like this, as part of the module initialization function:"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1427
#, no-wrap
msgid ""
" emacs_env *env = runtime->get_environment (runtime);\n"
" emacs_value func = env->make_function (env, min_arity, max_arity,\n"
" module_func, docstring, data);\n"
" emacs_value symbol = env->intern (env, \"module-func\");\n"
" emacs_value args[] = @{symbol, func@};\n"
" env->funcall (env, env->intern (env, \"defalias\"), 2, args);\n"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1435
msgid ""
"This makes the symbol @code{module-func} known to Emacs by calling "
"@code{env->intern}, then invokes @code{defalias} from Emacs to bind the "
"function to that symbol. Note that it is possible to use @code{fset} "
"instead of @code{defalias}; the differences are described in @ref{Defining "
"Functions, defalias}."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1451
msgid ""
"Module functions including the @code{emacs_module_init} function "
"(@pxref{module initialization function}) may only interact with Emacs by "
"calling environment functions from some live @code{emacs_env} pointer while "
"being called directly or indirectly from Emacs. In other words, if a module "
"function wants to call Lisp functions or Emacs primitives, convert "
"@code{emacs_value} objects to and from C datatypes (@pxref{Module Values}), "
"or interact with Emacs in any other way, some call from Emacs to "
"@code{emacs_module_init} or to a module function must be in the call stack. "
"Module functions may not interact with Emacs while garbage collection is "
"running; @pxref{Garbage Collection}. They may only interact with Emacs from "
"Lisp interpreter threads (including the main thread) created by Emacs; "
"@pxref{Threads}. The @kbd{--module-assertions} command-line option can "
"detect some violations of the above requirements. @xref{Initial "
"Options,,,emacs, The GNU Emacs Manual}."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1463
msgid ""
"Using the module @acronym{API}, it is possible to define more complex "
"function and data types: inline functions, macros, etc. However, the "
"resulting C code will be cumbersome and hard to read. Therefore, we "
"recommend that you limit the module code which creates functions and data "
"structures to the absolute minimum, and leave the rest for a Lisp package "
"that will accompany your module, because doing these additional tasks in "
"Lisp is much easier, and will produce a much more readable code. For "
"example, given a module function @code{module-func} defined as above, one "
"way of making a macro @code{module-macro} based on it is with the following "
"simple Lisp wrapper:"
msgstr ""
#. type: lisp
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1468
#, no-wrap
msgid ""
"(defmacro module-macro (&rest args)\n"
" \"Documentation string for the macro.\"\n"
" (module-func args))\n"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1473
msgid ""
"The Lisp package which goes with your module could then load the module "
"using the @code{load} primitive (@pxref{Dynamic Modules}) when the package "
"is loaded into Emacs."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1477
msgid ""
"By default, module functions created by @code{make_function} are not "
"interactive. To make them interactive, you can use the following function."
msgstr ""
#. type: deftypefun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1478
#, no-wrap
msgid ""
"void make_interactive (emacs_env *@var{env}, emacs_value @var{function}, "
"emacs_value @var{spec})"
msgstr ""
#. type: deftypefun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1485
msgid ""
"This function, which is available since Emacs 28, makes the function "
"@var{function} interactive using the interactive specification @var{spec}. "
"Emacs interprets @var{spec} like the argument to the @code{interactive} "
"form. @ref{Using Interactive}, and @pxref{Interactive Codes}. "
"@var{function} must be an Emacs module function returned by "
"@code{make_function}."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1492
msgid ""
"Note that there is no native module support for retrieving the interactive "
"specification of a module function. Use the function "
"@code{interactive-form} for that. @ref{Using Interactive}. It is not "
"possible to make a module function non-interactive once you have made it "
"interactive using @code{make_interactive}."
msgstr ""
#. type: anchor{#1}
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1502
msgid "Module Function Finalizers"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1502
msgid ""
"If you want to run some code when a module function object (i.e., an object "
"returned by @code{make_function}) is garbage-collected, you can install a "
"@dfn{function finalizer}. Function finalizers are available since Emacs "
"28. For example, if you have passed some heap-allocated structure to the "
"@var{data} argument of @code{make_function}, you can use the finalizer to "
"deallocate the structure. @xref{Basic Allocation,,,libc}, and "
"@pxref{Freeing after Malloc,,,libc}. The finalizer function has the "
"following signature:"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1505
#, no-wrap
msgid "void finalizer (void *@var{data})\n"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1510
msgid ""
"Here, @var{data} receives the value passed to @var{data} when calling "
"@code{make_function}. Note that the finalizer can't interact with Emacs in "
"any way."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1514
msgid ""
"Directly after calling @code{make_function}, the newly-created function "
"doesn't have a finalizer. Use @code{set_function_finalizer} to add one, if "
"desired."
msgstr ""
#. type: deftypefun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1515
#, no-wrap
msgid "void emacs_finalizer (void *@var{ptr})"
msgstr ""
#. type: deftypefun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1519
msgid ""
"The header @file{emacs-module.h} provides the type @code{emacs_finalizer} as "
"a type alias for an Emacs finalizer function."
msgstr ""
#. type: deftypefun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1521
#, no-wrap
msgid ""
"emacs_finalizer get_function_finalizer (emacs_env *@var{env}, emacs_value "
"@var{arg})"
msgstr ""
#. type: deftypefun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1527
msgid ""
"This function, which is available since Emacs 28, returns the function "
"finalizer associated with the module function represented by @var{arg}. "
"@var{arg} must refer to a module function, that is, an object returned by "
"@code{make_function}. If no finalizer is associated with the function, "
"@code{NULL} is returned."
msgstr ""
#. type: deftypefun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1529
#, no-wrap
msgid ""
"void set_function_finalizer (emacs_env *@var{env}, emacs_value @var{arg}, "
"emacs_finalizer @var{fin})"
msgstr ""
#. type: deftypefun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1539
msgid ""
"This function, which is available since Emacs 28, sets the function "
"finalizer associated with the module function represented by @var{arg} to "
"@var{fin}. @var{arg} must refer to a module function, that is, an object "
"returned by @code{make_function}. @var{fin} can either be @code{NULL} to "
"clear @var{arg}'s function finalizer, or a pointer to a function to be "
"called when the object represented by @var{arg} is garbage-collected. At "
"most one function finalizer can be set per function; if @var{arg} already "
"has a finalizer, it is replaced by @var{fin}."
msgstr ""
#. type: node
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1541
#, no-wrap
msgid "Module Values"
msgstr ""
#. type: subsection
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1542
#, no-wrap
msgid "Conversion Between Lisp and Module Values"
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1543
#, no-wrap
msgid "module values, conversion"
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1545
#, no-wrap
msgid "@code{emacs_value} data type"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1557
msgid ""
"With very few exceptions, most modules need to exchange data with Lisp "
"programs that call them: accept arguments to module functions and return "
"values from module functions. For this purpose, the module @acronym{API} "
"provides the @code{emacs_value} type, which represents Emacs Lisp objects "
"communicated via the @acronym{API}; it is the functional equivalent of the "
"@code{Lisp_Object} type used in Emacs C primitives (@pxref{Writing Emacs "
"Primitives}). This section describes the parts of the module @acronym{API} "
"that allow to create @code{emacs_value} objects corresponding to basic Lisp "
"data types, and how to access from C data in @code{emacs_value} objects that "
"correspond to Lisp objects."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1562
msgid ""
"All of the functions described below are actually @emph{function pointers} "
"provided via the pointer to the environment which every module function "
"accepts. Therefore, module code should call these functions through the "
"environment pointer, like this:"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1566
#, no-wrap
msgid ""
"emacs_env *env; /* the environment pointer */\n"
"env->some_function (arguments@dots{});\n"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1572
msgid ""
"The @code{emacs_env} pointer will usually come from the first argument to "
"the module function, or from the call to @code{get_environment} if you need "
"the environment in the module initialization function."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1577
msgid ""
"Most of the functions described below became available in Emacs 25, the "
"first Emacs release that supported dynamic modules. For the few functions "
"that became available in later Emacs releases, we mention the first Emacs "
"version that supported them."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1587
msgid ""
"The following @acronym{API} functions extract values of various C data types "
"from @code{emacs_value} objects. They all raise the "
"@code{wrong-type-argument} error condition (@pxref{Type Predicates}) if the "
"argument @code{emacs_value} object is not of the type expected by the "
"function. @xref{Module Nonlocal}, for details of how signaling errors works "
"in Emacs modules, and how to catch error conditions inside the module before "
"they are reported to Emacs. The @acronym{API} function @code{type_of} "
"(@pxref{Module Misc, type_of}) can be used to obtain the type of a "
"@code{emacs_value} object."
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1588
#, no-wrap
msgid ""
"Function intmax_t extract_integer (emacs_env *@var{env}, emacs_value "
"@var{arg})"
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1595
msgid ""
"This function returns the value of a Lisp integer specified by @var{arg}. "
"The C data type of the return value, @code{intmax_t}, is the widest integer "
"data type supported by the C compiler, typically @w{@code{long long}}. If "
"the value of @var{arg} doesn't fit into an @code{intmax_t}, the function "
"signals an error using the error symbol @code{overflow-error}."
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1597
#, no-wrap
msgid ""
"Function bool extract_big_integer (emacs_env *@var{env}, emacs_value "
"@var{arg}, int *@var{sign}, ptrdiff_t *@var{count}, emacs_limb_t "
"*@var{magnitude})"
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1614
msgid ""
"This function, which is available since Emacs 27, extracts the integer value "
"of @var{arg}. The value of @var{arg} must be an integer (fixnum or "
"bignum). If @var{sign} is not @code{NULL}, it stores the sign of @var{arg} "
"(-1, 0, or +1) into @code{*sign}. The magnitude is stored into "
"@var{magnitude} as follows. If @var{count} and @var{magnitude} are both "
"non-@code{NULL}, then @var{magnitude} must point to an array of at least "
"@code{*count} @code{unsigned long} elements. If @var{magnitude} is large "
"enough to hold the magnitude of @var{arg}, then this function writes the "
"magnitude into the @var{magnitude} array in little-endian form, stores the "
"number of array elements written into @code{*count}, and returns "
"@code{true}. If @var{magnitude} is not large enough, it stores the required "
"array size into @code{*count}, signals an error, and returns @code{false}. "
"If @var{count} is not @code{NULL} and @var{magnitude} is @code{NULL}, then "
"the function stores the required array size into @code{*count} and returns "
"@code{true}."
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1620
msgid ""
"Emacs guarantees that the maximum required value of @code{*count} never "
"exceeds @code{min (PTRDIFF_MAX, SIZE_MAX) / sizeof (emacs_limb_t)}, so you "
"can use @code{malloc (*count * sizeof *magnitude)} to allocate the "
"@code{magnitude} array without worrying about integer overflow in the size "
"calculation."
msgstr ""
#. type: deftp
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1622
#, no-wrap
msgid "{Type alias} emacs_limb_t"
msgstr ""
#. type: deftp
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1627
msgid ""
"This is an unsigned integer type, used as the element type for the magnitude "
"arrays for the big integer conversion functions. The type is guaranteed to "
"have unique object representations, i.e., no padding bits."
msgstr ""
#. type: defvr
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1629
#, no-wrap
msgid "Macro EMACS_LIMB_MAX"
msgstr ""
#. type: defvr
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1633
msgid ""
"This macro expands to a constant expression specifying the maximum possible "
"value for an @code{emacs_limb_t} object. The expression is suitable for use "
"in @code{#if}."
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1635
#, no-wrap
msgid "Function double extract_float (emacs_env *@var{env}, emacs_value @var{arg})"
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1638
msgid ""
"This function returns the value of a Lisp float specified by @var{arg}, as a "
"C @code{double} value."
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1640
#, no-wrap
msgid ""
"Function struct timespec extract_time (emacs_env *@var{env}, emacs_value "
"@var{arg})"
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1645
msgid ""
"This function, which is available since Emacs 27, interprets @var{arg} as an "
"Emacs Lisp time value and returns the corresponding @code{struct timespec}. "
"@xref{Time of Day}. @code{struct timespec} represents a timestamp with "
"nanosecond precision. It has the following members:"
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1647
#, no-wrap
msgid "time_t tv_sec"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1649
msgid "Whole number of seconds."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1649
#, no-wrap
msgid "long tv_nsec"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1655
msgid ""
"Fractional seconds as a number of nanoseconds. For timestamps returned by "
"@code{extract_time}, this is always nonnegative and less than one billion. "
"(Although POSIX requires the type of @code{tv_nsec} to be @code{long}, the "
"type is @code{long long} on some nonstandard platforms.)"
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1659
msgid "@xref{Elapsed Time,,,libc}."
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1667
msgid ""
"If @var{time} has higher precision than nanoseconds, then this function "
"truncates it to nanosecond precision towards negative infinity. This "
"function signals an error if @var{time} (truncated to nanoseconds) cannot be "
"represented by @code{struct timespec}. For example, if @code{time_t} is a "
"32-bit integer type, then a @var{time} value of ten billion seconds would "
"signal an error, but a @var{time} value of 600 picoseconds would get "
"truncated to zero."
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1672
msgid ""
"If you need to deal with time values that are not representable by "
"@code{struct timespec}, or if you want higher precision, call the Lisp "
"function @code{encode-time} and work with its return value. @xref{Time "
"Conversion}."
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1674
#, no-wrap
msgid ""
"Function bool copy_string_contents (emacs_env *@var{env}, emacs_value "
"@var{arg}, char *@var{buf}, ptrdiff_t *@var{len})"
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1681
msgid ""
"This function stores the UTF-8 encoded text of a Lisp string specified by "
"@var{arg} in the array of @code{char} pointed by @var{buf}, which should "
"have enough space to hold at least @code{*@var{len}} bytes, including the "
"terminating null byte. The argument @var{len} must not be a @code{NULL} "
"pointer, and, when the function is called, it should point to a value that "
"specifies the size of @var{buf} in bytes."
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1690
msgid ""
"If the buffer size specified by @code{*@var{len}} is large enough to hold "
"the string's text, the function stores in @code{*@var{len}} the actual "
"number of bytes copied to @var{buf}, including the terminating null byte, "
"and returns @code{true}. If the buffer is too small, the function raises "
"the @code{args-out-of-range} error condition, stores the required number of "
"bytes in @code{*@var{len}}, and returns @code{false}. @xref{Module "
"Nonlocal}, for how to handle pending error conditions."
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1700
msgid ""
"The argument @var{buf} can be a @code{NULL} pointer, in which case the "
"function stores in @code{*@var{len}} the number of bytes required for "
"storing the contents of @var{arg}, and returns @code{true}. This is how you "
"can determine the size of @var{buf} needed to store a particular string: "
"first call @code{copy_string_contents} with @code{NULL} as @var{buf}, then "
"allocate enough memory to hold the number of bytes stored by the function in "
"@code{*@var{len}}, and call the function again with non-@code{NULL} "
"@var{buf} to actually perform the text copying."
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1702
#, no-wrap
msgid ""
"Function emacs_value vec_get (emacs_env *@var{env}, emacs_value "
"@var{vector}, ptrdiff_t @var{index})"
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1710
msgid ""
"This function returns the element of @var{vector} at @var{index}. The "
"@var{index} of the first vector element is zero. The function raises the "
"@code{args-out-of-range} error condition if the value of @var{index} is "
"invalid. To extract C data from the value the function returns, use the "
"other extraction functions described here, as appropriate for the Lisp data "
"type stored in that element of the vector."
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1712
#, no-wrap
msgid "Function ptrdiff_t vec_size (emacs_env *@var{env}, emacs_value @var{vector})"
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1714
msgid "This function returns the number of elements in @var{vector}."
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1716
#, no-wrap
msgid ""
"Function void vec_set (emacs_env *@var{env}, emacs_value @var{vector}, "
"ptrdiff_t @var{index}, emacs_value @var{value})"
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1720
msgid ""
"This function stores @var{value} in the element of @var{vector} whose index "
"is @var{index}. It raises the @code{args-out-of-range} error condition if "
"the value of @var{index} is invalid."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1725
msgid ""
"The following @acronym{API} functions create @code{emacs_value} objects from "
"basic C data types. They all return the created @code{emacs_value} object."
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1726
#, no-wrap
msgid "Function emacs_value make_integer (emacs_env *@var{env}, intmax_t @var{n})"
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1732
msgid ""
"This function takes an integer argument @var{n} and returns the "
"corresponding @code{emacs_value} object. It returns either a fixnum or a "
"bignum depending on whether the value of @var{n} is inside the limits set by "
"@code{most-negative-fixnum} and @code{most-positive-fixnum} (@pxref{Integer "
"Basics})."
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1734
#, no-wrap
msgid ""
"Function emacs_value make_big_integer (emacs_env *@var{env}, int sign, "
"ptrdiff_t count, const emacs_limb_t *magnitude)"
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1741
msgid ""
"This function, which is available since Emacs 27, takes an arbitrary-sized "
"integer argument and returns a corresponding @code{emacs_value} object. The "
"@var{sign} argument gives the sign of the return value. If @var{sign} is "
"nonzero, then @var{magnitude} must point to an array of at least @var{count} "
"elements specifying the little-endian magnitude of the return value."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1748
msgid ""
"The following example uses the GNU Multiprecision Library (GMP) to calculate "
"the next probable prime after a given integer. @xref{Top,,,gmp}, for a "
"general overview of GMP, and @pxref{Integer Import and Export,,,gmp} for how "
"to convert the @code{magnitude} array to and from GMP @code{mpz_t} values."
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1752
#, no-wrap
msgid ""
"#include <emacs-module.h>\n"
"int plugin_is_GPL_compatible;\n"
"\n"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1758
#, no-wrap
msgid ""
"#include <assert.h>\n"
"#include <limits.h>\n"
"#include <stdint.h>\n"
"#include <stdlib.h>\n"
"#include <string.h>\n"
"\n"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1760
#, no-wrap
msgid ""
"#include <gmp.h>\n"
"\n"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1771
#, no-wrap
msgid ""
"static void\n"
"memory_full (emacs_env *env)\n"
"@{\n"
" static const char message[] = \"Memory exhausted\";\n"
" emacs_value data = env->make_string (env, message,\n"
" strlen (message));\n"
" env->non_local_exit_signal\n"
" (env, env->intern (env, \"error\"),\n"
" env->funcall (env, env->intern (env, \"list\"), 1, &data));\n"
"@}\n"
"\n"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1779
#, no-wrap
msgid ""
"enum\n"
"@{\n"
" order = -1, endian = 0, nails = 0,\n"
" limb_size = sizeof (emacs_limb_t),\n"
" max_nlimbs = ((SIZE_MAX < PTRDIFF_MAX ? SIZE_MAX : PTRDIFF_MAX)\n"
" / limb_size)\n"
"@};\n"
"\n"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1803
#, no-wrap
msgid ""
"static bool\n"
"extract_big_integer (emacs_env *env, emacs_value arg, mpz_t result)\n"
"@{\n"
" ptrdiff_t nlimbs;\n"
" bool ok = env->extract_big_integer (env, arg, NULL, &nlimbs, NULL);\n"
" if (!ok)\n"
" return false;\n"
" assert (0 < nlimbs && nlimbs <= max_nlimbs);\n"
" emacs_limb_t *magnitude = malloc (nlimbs * limb_size);\n"
" if (magnitude == NULL)\n"
" @{\n"
" memory_full (env);\n"
" return false;\n"
" @}\n"
" int sign;\n"
" ok = env->extract_big_integer (env, arg, &sign, &nlimbs, magnitude);\n"
" assert (ok);\n"
" mpz_import (result, nlimbs, order, limb_size, endian, nails, magnitude);\n"
" free (magnitude);\n"
" if (sign < 0)\n"
" mpz_neg (result, result);\n"
" return true;\n"
"@}\n"
"\n"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1826
#, no-wrap
msgid ""
"static emacs_value\n"
"make_big_integer (emacs_env *env, const mpz_t value)\n"
"@{\n"
" size_t nbits = mpz_sizeinbase (value, 2);\n"
" int bitsperlimb = CHAR_BIT * limb_size - nails;\n"
" size_t nlimbs = nbits / bitsperlimb + (nbits % bitsperlimb != 0);\n"
" emacs_limb_t *magnitude\n"
" = nlimbs <= max_nlimbs ? malloc (nlimbs * limb_size) : NULL;\n"
" if (magnitude == NULL)\n"
" @{\n"
" memory_full (env);\n"
" return NULL;\n"
" @}\n"
" size_t written;\n"
" mpz_export (magnitude, &written, order, limb_size, endian, nails, "
"value);\n"
" assert (written == nlimbs);\n"
" assert (nlimbs <= PTRDIFF_MAX);\n"
" emacs_value result = env->make_big_integer (env, mpz_sgn (value),\n"
" nlimbs, magnitude);\n"
" free (magnitude);\n"
" return result;\n"
"@}\n"
"\n"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1840
#, no-wrap
msgid ""
"static emacs_value\n"
"next_prime (emacs_env *env, ptrdiff_t nargs, emacs_value *args,\n"
" void *data)\n"
"@{\n"
" assert (nargs == 1);\n"
" mpz_t p;\n"
" mpz_init (p);\n"
" extract_big_integer (env, args[0], p);\n"
" mpz_nextprime (p, p);\n"
" emacs_value result = make_big_integer (env, p);\n"
" mpz_clear (p);\n"
" return result;\n"
"@}\n"
"\n"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1852
#, no-wrap
msgid ""
"int\n"
"emacs_module_init (struct emacs_runtime *runtime)\n"
"@{\n"
" emacs_env *env = runtime->get_environment (runtime);\n"
" emacs_value symbol = env->intern (env, \"next-prime\");\n"
" emacs_value func\n"
" = env->make_function (env, 1, 1, next_prime, NULL, NULL);\n"
" emacs_value args[] = @{symbol, func@};\n"
" env->funcall (env, env->intern (env, \"defalias\"), 2, args);\n"
" return 0;\n"
"@}\n"
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1854
#, no-wrap
msgid "Function emacs_value make_float (emacs_env *@var{env}, double @var{d})"
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1857
msgid ""
"This function takes a @code{double} argument @var{d} and returns the "
"corresponding Emacs floating-point value."
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1859
#, no-wrap
msgid ""
"Function emacs_value make_time (emacs_env *@var{env}, struct timespec "
"@var{time})"
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1869
msgid ""
"This function, which is available since Emacs 27, takes a @code{struct "
"timespec} argument @var{time} and returns the corresponding Emacs timestamp "
"as a pair @code{(@var{ticks} . @var{hz})}. @xref{Time of Day}. The return "
"value represents exactly the same timestamp as @var{time}: all input values "
"are representable, and there is never a loss of precision. "
"@code{@var{time}.tv_sec} and @code{@var{time}.tv_nsec} can be arbitrary "
"values. In particular, there's no requirement that @var{time} be "
"normalized. This means that @code{@var{time}.tv_nsec} can be negative or "
"larger than 999,999,999."
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1871
#, no-wrap
msgid ""
"Function emacs_value make_string (emacs_env *@var{env}, const char "
"*@var{str}, ptrdiff_t @var{len})"
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1883
msgid ""
"This function creates an Emacs string from C text string pointed by "
"@var{str} whose length in bytes, not including the terminating null byte, is "
"@var{len}. The original string in @var{str} can be either an "
"@acronym{ASCII} string or a UTF-8 encoded non-@acronym{ASCII} string; it can "
"include embedded null bytes, and doesn't have to end in a terminating null "
"byte at @code{@var{str}[@var{len}]}. The function raises the "
"@code{overflow-error} error condition if @var{len} is negative or exceeds "
"the maximum length of an Emacs string. If @var{len} is zero, then @var{str} "
"can be @code{NULL}, otherwise it must point to valid memory. For nonzero "
"@var{len}, @code{make_string} returns unique mutable string objects."
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1885
#, no-wrap
msgid ""
"Function emacs_value make_unibyte_string (emacs_env *@var{env}, const char "
"*@var{str}, ptrdiff_t @var{len})"
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1889
msgid ""
"This function is like @code{make_string}, but has no restrictions on the "
"values of the bytes in the C string, and can be used to pass binary data to "
"Emacs in the form of a unibyte string."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1898
msgid ""
"The @acronym{API} does not provide functions to manipulate Lisp data "
"structures, for example, create lists with @code{cons} and @code{list} "
"(@pxref{Building Lists}), extract list members with @code{car} and "
"@code{cdr} (@pxref{List Elements}), create vectors with @code{vector} "
"(@pxref{Vector Functions}), etc. For these, use @code{intern} and "
"@code{funcall}, described in the next subsection, to call the corresponding "
"Lisp functions."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1904
msgid ""
"Normally, @code{emacs_value} objects have a rather short lifetime: it ends "
"when the @code{emacs_env} pointer used for their creation goes out of "
"scope. Occasionally, you may need to create @dfn{global references}: "
"@code{emacs_value} objects that live as long as you wish. Use the following "
"two functions to manage such objects."
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1905
#, no-wrap
msgid ""
"Function emacs_value make_global_ref (emacs_env *@var{env}, emacs_value "
"@var{value})"
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1907
msgid "This function returns a global reference for @var{value}."
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1909
#, no-wrap
msgid ""
"Function void free_global_ref (emacs_env *@var{env}, emacs_value "
"@var{global_value})"
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1914
msgid ""
"This function frees the @var{global_value} previously created by "
"@code{make_global_ref}. The @var{global_value} is no longer valid after the "
"call. Your module code should pair each call to @code{make_global_ref} with "
"the corresponding @code{free_global_ref}."
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1916
#, no-wrap
msgid "user pointer, using in module functions"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1927
msgid ""
"An alternative to keeping around C data structures that need to be passed to "
"module functions later is to create @dfn{user pointer} objects. A user "
"pointer, or @code{user-ptr}, object is a Lisp object that encapsulates a C "
"pointer and can have an associated finalizer function, which is called when "
"the object is garbage-collected (@pxref{Garbage Collection}). The module "
"@acronym{API} provides functions to create and access @code{user-ptr} "
"objects. These functions raise the @code{wrong-type-argument} error "
"condition if they are called on @code{emacs_value} that doesn't represent a "
"@code{user-ptr} object."
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1928
#, no-wrap
msgid ""
"Function emacs_value make_user_ptr (emacs_env *@var{env}, emacs_finalizer "
"@var{fin}, void *@var{ptr})"
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1933
msgid ""
"This function creates and returns a @code{user-ptr} object which wraps the C "
"pointer @var{ptr}. The finalizer function @var{fin} can be a @code{NULL} "
"pointer (meaning no finalizer), or it can be a function of the following "
"signature:"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1936
#, no-wrap
msgid "typedef void (*emacs_finalizer) (void *@var{ptr});\n"
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1943
msgid ""
"If @var{fin} is not a @code{NULL} pointer, it will be called with the "
"@var{ptr} as the argument when the @code{user-ptr} object is "
"garbage-collected. Don't run any expensive code in a finalizer, because GC "
"must finish quickly to keep Emacs responsive."
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1945
#, no-wrap
msgid "Function void *get_user_ptr (emacs_env *@var{env}, emacs_value @var{arg})"
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1948
msgid ""
"This function extracts the C pointer from the Lisp object represented by "
"@var{arg}."
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1950
#, no-wrap
msgid ""
"Function void set_user_ptr (emacs_env *@var{env}, emacs_value @var{arg}, "
"void *@var{ptr})"
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1953
msgid ""
"This function sets the C pointer embedded in the @code{user-ptr} object "
"represented by @var{arg} to @var{ptr}."
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1955
#, no-wrap
msgid ""
"Function emacs_finalizer get_user_finalizer (emacs_env *@var{env}, "
"emacs_value @var{arg})"
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1959
msgid ""
"This function returns the finalizer of the @code{user-ptr} object "
"represented by @var{arg}, or @code{NULL} if it doesn't have a finalizer."
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1961
#, no-wrap
msgid ""
"Function void set_user_finalizer (emacs_env *@var{env}, emacs_value "
"@var{arg}, emacs_finalizer @var{fin})"
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1966
msgid ""
"This function changes the finalizer of the @code{user-ptr} object "
"represented by @var{arg} to be @var{fin}. If @var{fin} is a @code{NULL} "
"pointer, the @code{user-ptr} object will have no finalizer."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1970
msgid ""
"Note that the @code{emacs_finalizer} type works for both user pointer an "
"module function finalizers. @xref{Module Function Finalizers}."
msgstr ""
#. type: node
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1971
#, no-wrap
msgid "Module Misc"
msgstr ""
#. type: subsection
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1972
#, no-wrap
msgid "Miscellaneous Convenience Functions for Modules"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1980
msgid ""
"This subsection describes a few convenience functions provided by the module "
"@acronym{API}. Like the functions described in previous subsections, all of "
"them are actually function pointers, and need to be called via the "
"@code{emacs_env} pointer. Description of functions that were introduced "
"after Emacs 25 calls out the first version where they became available."
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1981
#, no-wrap
msgid ""
"Function bool eq (emacs_env *@var{env}, emacs_value @var{a}, emacs_value "
"@var{b})"
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1987
msgid ""
"This function returns @code{true} if the Lisp objects represented by @var{a} "
"and @var{b} are identical, @code{false} otherwise. This is the same as the "
"Lisp function @code{eq} (@pxref{Equality Predicates}), but avoids the need "
"to intern the objects represented by the arguments."
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1991
msgid ""
"There are no @acronym{API} functions for other equality predicates, so you "
"will need to use @code{intern} and @code{funcall}, described below, to "
"perform more complex equality tests."
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1993
#, no-wrap
msgid "Function bool is_not_nil (emacs_env *@var{env}, emacs_value @var{arg})"
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:1996
msgid ""
"This function tests whether the Lisp object represented by @var{arg} is "
"non-@code{nil}; it returns @code{true} or @code{false} accordingly."
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2001
msgid ""
"Note that you could implement an equivalent test by using @code{intern} to "
"get an @code{emacs_value} representing @code{nil}, then use @code{eq}, "
"described above, to test for equality. But using this function is more "
"convenient."
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2003
#, no-wrap
msgid "Function emacs_value type_of (emacs_env *@var{env}, emacs_value @code{arg})"
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2009
msgid ""
"This function returns the type of @var{arg} as a value that represents a "
"symbol: @code{string} for a string, @code{integer} for an integer, "
"@code{process} for a process, etc. @xref{Type Predicates}. You can use "
"@code{intern} and @code{eq} to compare against known type symbols, if your "
"code needs to depend on the object type."
msgstr ""
#. type: anchor{#1}
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2012
msgid "intern"
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2012
#, no-wrap
msgid "Function emacs_value intern (emacs_env *@var{env}, const char *name)"
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2016
msgid ""
"This function returns an interned Emacs symbol whose name is @var{name}, "
"which should be an @acronym{ASCII} null-terminated string. It creates a new "
"symbol if one does not already exist."
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2023
msgid ""
"Together with @code{funcall}, described below, this function provides a "
"means for invoking any Lisp-callable Emacs function, provided that its name "
"is a pure @acronym{ASCII} string. For example, here's how to intern a "
"symbol whose name @code{name_str} is non-@acronym{ASCII}, by calling the "
"more powerful Emacs @code{intern} function (@pxref{Creating Symbols}):"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2029
#, no-wrap
msgid ""
"emacs_value fintern = env->intern (env, \"intern\");\n"
"emacs_value sym_name =\n"
" env->make_string (env, name_str, strlen (name_str));\n"
"emacs_value symbol = env->funcall (env, fintern, 1, &sym_name);\n"
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2033
#, no-wrap
msgid ""
"Function emacs_value funcall (emacs_env *@var{env}, emacs_value @var{func}, "
"ptrdiff_t @var{nargs}, emacs_value *@var{args})"
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2040
msgid ""
"This function calls the specified @var{func} passing it @var{nargs} "
"arguments from the array pointed to by @var{args}. The argument @var{func} "
"can be a function symbol (e.g., returned by @code{intern} described above), "
"a module function returned by @code{make_function} (@pxref{Module "
"Functions}), a subroutine written in C, etc. If @var{nargs} is zero, "
"@var{args} can be a @code{NULL} pointer."
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2042
msgid "The function returns the value that @var{func} returned."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2049
msgid ""
"If your module includes potentially long-running code, it is a good idea to "
"check from time to time in that code whether the user wants to quit, e.g., "
"by typing @kbd{C-g} (@pxref{Quitting}). The following function, which is "
"available since Emacs 26.1, is provided for that purpose."
msgstr ""
#. type: anchor{#1}
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2051
msgid "should_quit"
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2051
#, no-wrap
msgid "Function bool should_quit (emacs_env *@var{env})"
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2056
msgid ""
"This function returns @code{true} if the user wants to quit. In that case, "
"we recommend that your module function aborts any on-going processing and "
"returns as soon as possible. In most cases, use @code{process_input} "
"instead."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2061
msgid ""
"To process input events in addition to checking whether the user wants to "
"quit, use the following function, which is available since Emacs 27.1."
msgstr ""
#. type: anchor{#1}
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2063
msgid "process_input"
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2063
#, no-wrap
msgid ""
"Function enum emacs_process_input_result process_input (emacs_env "
"*@var{env})"
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2075
msgid ""
"This function processes pending input events. It returns "
"@code{emacs_process_input_quit} if the user wants to quit or an error "
"occurred while processing signals. In that case, we recommend that your "
"module function aborts any on-going processing and returns as soon as "
"possible. If the module code may continue running, @code{process_input} "
"returns @code{emacs_process_input_continue}. The return value is "
"@code{emacs_process_input_continue} if and only if there is no pending "
"nonlocal exit in @code{env}. If the module continues after calling "
"@code{process_input}, global state such as variable values and buffer "
"content may have been modified in arbitrary ways."
msgstr ""
#. type: anchor{#1}
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2078
msgid "open_channel"
msgstr ""
#. type: deftypefun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2078
#, no-wrap
msgid "int open_channel (emacs_env *@var{env}, emacs_value @var{pipe_process})"
msgstr ""
#. type: deftypefun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2089
msgid ""
"This function, which is available since Emacs 28, opens a channel to an "
"existing pipe process. @var{pipe_process} must refer to an existing pipe "
"process created by @code{make-pipe-process}. @ref{Pipe Processes}. If "
"successful, the return value will be a new file descriptor that you can use "
"to write to the pipe. Unlike all other module functions, you can use the "
"returned file descriptor from arbitrary threads, even if no module "
"environment is active. You can use the @code{write} function to write to "
"the file descriptor. Once done, close the file descriptor using "
"@code{close}. @ref{Low-Level I/O,,,libc}."
msgstr ""
#. type: subsection
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2092
#, no-wrap
msgid "Nonlocal Exits in Modules"
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2093
#, no-wrap
msgid "nonlocal exits, in modules"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2107
msgid ""
"Emacs Lisp supports nonlocal exits, whereby program control is transferred "
"from one point in a program to another remote point. @xref{Nonlocal "
"Exits}. Thus, Lisp functions called by your module might exit nonlocally by "
"calling @code{signal} or @code{throw}, and your module functions must handle "
"such nonlocal exits properly. Such handling is needed because C programs "
"will not automatically release resources and perform other cleanups in these "
"cases; your module code must itself do it. The module @acronym{API} "
"provides facilities for that, described in this subsection. They are "
"generally available since Emacs 25; those of them that became available in "
"later releases explicitly call out the first Emacs version where they became "
"part of the @acronym{API}."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2118
msgid ""
"When some Lisp code called by a module function signals an error or throws, "
"the nonlocal exit is trapped, and the pending exit and its associated data "
"are stored in the environment. Whenever a nonlocal exit is pending in the "
"environment, any module @acronym{API} function called with a pointer to that "
"environment will return immediately without any processing (the functions "
"@code{non_local_exit_check}, @code{non_local_exit_get}, and "
"@code{non_local_exit_clear} are exceptions from this rule). If your module "
"function then does nothing and returns to Emacs, a pending nonlocal exit "
"will cause Emacs to act on it: signal an error or throw to the corresponding "
"@code{catch}."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2122
msgid ""
"So the simplest ``handling'' of nonlocal exits in module functions is to do "
"nothing special and let the rest of your code to run as if nothing "
"happened. However, this can cause two classes of problems:"
msgstr ""
#. type: itemize
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2128
msgid ""
"Your module function might use uninitialized or undefined values, since "
"@acronym{API} functions return immediately without producing the expected "
"results."
msgstr ""
#. type: itemize
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2132
msgid ""
"Your module might leak resources, because it might not have the opportunity "
"to release them."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2137
msgid ""
"Therefore, we recommend that your module functions check for nonlocal exit "
"conditions and recover from them, using the functions described below."
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2138
#, no-wrap
msgid "Function enum emacs_funcall_exit non_local_exit_check (emacs_env *@var{env})"
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2141
msgid ""
"This function returns the kind of nonlocal exit condition stored in "
"@var{env}. The possible values are:"
msgstr ""
#. type: vindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2142
#, no-wrap
msgid "emacs_funcall_exit@r{, enumeration}"
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2144
msgid "@vtable @code"
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2144
#, no-wrap
msgid "emacs_funcall_exit_return"
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2146
msgid "The last @acronym{API} function exited normally."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2146
#, no-wrap
msgid "emacs_funcall_exit_signal"
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2148
msgid "The last @acronym{API} function signaled an error."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2148
#, no-wrap
msgid "emacs_funcall_exit_throw"
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2150
msgid "The last @acronym{API} function exited via @code{throw}."
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2153
#, no-wrap
msgid ""
"Function enum emacs_funcall_exit non_local_exit_get (emacs_env *@var{env}, "
"emacs_value *@var{symbol}, emacs_value *@var{data})"
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2165
msgid ""
"This function returns the kind of nonlocal exit condition stored in "
"@var{env}, like @code{non_local_exit_check} does, but it also returns the "
"full information about the nonlocal exit, if any. If the return value is "
"@code{emacs_funcall_exit_signal}, the function stores the error symbol in "
"@code{*@var{symbol}} and the error data in @code{*@var{data}} "
"(@pxref{Signaling Errors}). If the return value is "
"@code{emacs_funcall_exit_throw}, the function stores the @code{catch} tag "
"symbol in @code{*@var{symbol}} and the @code{throw} value in "
"@code{*@var{data}}. The function doesn't store anything in memory pointed "
"by these arguments when the return value is "
"@code{emacs_funcall_exit_return}."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2171
msgid ""
"You should check nonlocal exit conditions where it matters: before you "
"allocated some resource or after you allocated a resource that might need "
"freeing, or where a failure means further processing is impossible or "
"infeasible."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2176
msgid ""
"Once your module function detected that a nonlocal exit is pending, it can "
"either return to Emacs (after performing the necessary local cleanup), or it "
"can attempt to recover from the nonlocal exit. The following @acronym{API} "
"functions will help with these tasks."
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2177
#, no-wrap
msgid "Function void non_local_exit_clear (emacs_env *@var{env})"
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2185
msgid ""
"This function clears the pending nonlocal exit conditions and data from "
"@var{env}. After calling it, the module @acronym{API} functions will work "
"normally. Use this function if your module function can recover from "
"nonlocal exits of the Lisp functions it calls and continue, and also before "
"calling any of the following two functions (or any other @acronym{API} "
"functions, if you want them to perform their intended processing when a "
"nonlocal exit is pending)."
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2187
#, no-wrap
msgid ""
"Function void non_local_exit_throw (emacs_env *@var{env}, emacs_value "
"@var{tag}, emacs_value @var{value})"
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2193
msgid ""
"This function throws to the Lisp @code{catch} symbol represented by "
"@var{tag}, passing it @var{value} as the value to return. Your module "
"function should in general return soon after calling this function. One use "
"of this function is when you want to re-throw a non-local exit from one of "
"the called @acronym{API} or Lisp functions."
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2195
#, no-wrap
msgid ""
"Function void non_local_exit_signal (emacs_env *@var{env}, emacs_value "
"@var{symbol}, emacs_value @var{data})"
msgstr ""
#. type: deftypefn
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2201
msgid ""
"This function signals the error represented by the error symbol @var{symbol} "
"with the specified error data @var{data}. The module function should return "
"soon after calling this function. This function could be useful, e.g., for "
"signaling errors from module functions to Emacs."
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2206
#, no-wrap
msgid "object internals"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2216
msgid ""
"Emacs Lisp provides a rich set of the data types. Some of them, like cons "
"cells, integers and strings, are common to nearly all Lisp dialects. Some "
"others, like markers and buffers, are quite special and needed to provide "
"the basic support to write editor commands in Lisp. To implement such a "
"variety of object types and provide an efficient way to pass objects between "
"the subsystems of an interpreter, there is a set of C data structures and a "
"special type to represent the pointers to all of them, which is known as "
"@dfn{tagged pointer}."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2233
msgid ""
"In C, the tagged pointer is an object of type @code{Lisp_Object}. Any "
"initialized variable of such a type always holds the value of one of the "
"following basic data types: integer, symbol, string, cons cell, float, or "
"vectorlike object. Each of these data types has the corresponding tag "
"value. All tags are enumerated by @code{enum Lisp_Type} and placed into a "
"3-bit bitfield of the @code{Lisp_Object}. The rest of the bits is the value "
"itself. Integers are immediate, i.e., directly represented by those "
"@dfn{value bits}, and all other objects are represented by the C pointers to "
"a corresponding object allocated from the heap. Width of the "
"@code{Lisp_Object} is platform- and configuration-dependent: usually it's "
"equal to the width of an underlying platform pointer (i.e., 32-bit on a "
"32-bit machine and 64-bit on a 64-bit one), but also there is a special "
"configuration where @code{Lisp_Object} is 64-bit but all pointers are "
"32-bit. The latter trick was designed to overcome the limited range of "
"values for Lisp integers on a 32-bit system by using 64-bit @code{long long} "
"type for @code{Lisp_Object}."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2236
msgid ""
"The following C data structures are defined in @file{lisp.h} to represent "
"the basic data types beyond integers:"
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2238
#, no-wrap
msgid "struct Lisp_Cons"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2240
msgid "Cons cell, an object used to construct lists."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2241
#, no-wrap
msgid "struct Lisp_String"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2243
msgid "String, the basic object to represent a sequence of characters."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2244
#, no-wrap
msgid "struct Lisp_Vector"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2246
msgid "Array, a fixed-size set of Lisp objects which may be accessed by an index."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2247
#, no-wrap
msgid "struct Lisp_Symbol"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2249
msgid "Symbol, the unique-named entity commonly used as an identifier."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2250
#, no-wrap
msgid "struct Lisp_Float"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2252
msgid "Floating-point value."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2259
msgid ""
"These types are the first-class citizens of an internal type system. Since "
"the tag space is limited, all other types are the subtypes of "
"@code{Lisp_Vectorlike}. Vector subtypes are enumerated by @code{enum "
"pvec_type}, and nearly all complex objects like windows, buffers, frames, "
"and processes fall into this category."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2267
msgid ""
"Below there is a description of a few subtypes of @code{Lisp_Vectorlike}. "
"Buffer object represents the text to display and edit. Window is the part "
"of display structure which shows the buffer or is used as a container to "
"recursively place other windows on the same frame. (Do not confuse Emacs "
"Lisp window object with the window as an entity managed by the user "
"interface system like X; in Emacs terminology, the latter is called frame.) "
"Finally, process object is used to manage the subprocesses."
msgstr ""
#. type: subsection
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2272
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2274
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2275
#, no-wrap
msgid "Buffer Internals"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2272
msgid "Components of a buffer structure."
msgstr ""
#. type: subsection
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2272
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2559
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2560
#, no-wrap
msgid "Window Internals"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2272
msgid "Components of a window structure."
msgstr ""
#. type: subsection
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2272
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2823
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2824
#, no-wrap
msgid "Process Internals"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2272
msgid "Components of a process structure."
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2276
#, no-wrap
msgid "internals, of buffer"
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2277
#, no-wrap
msgid "buffer internals"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2284
msgid ""
"Two structures (see @file{buffer.h}) are used to represent buffers in C@. "
"The @code{buffer_text} structure contains fields describing the text of a "
"buffer; the @code{buffer} structure holds other fields. In the case of "
"indirect buffers, two or more @code{buffer} structures reference the same "
"@code{buffer_text} structure."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2286
msgid "Here are some of the fields in @code{struct buffer_text}:"
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2288
#, no-wrap
msgid "beg"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2291
msgid ""
"The address of the buffer contents. The buffer contents is a linear C array "
"of @code{char}, with the gap somewhere in its midst."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2292
#, no-wrap
msgid "gpt"
msgstr ""
#. type: itemx
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2293
#, no-wrap
msgid "gpt_byte"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2296
msgid "The character and byte positions of the buffer gap. @xref{Buffer Gap}."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2297
#, no-wrap
msgid "z"
msgstr ""
#. type: itemx
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2298
#, no-wrap
msgid "z_byte"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2300
msgid "The character and byte positions of the end of the buffer text."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2301
#, no-wrap
msgid "gap_size"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2303
msgid "The size of buffer's gap. @xref{Buffer Gap}."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2304
#, no-wrap
msgid "modiff"
msgstr ""
#. type: itemx
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2305
#, no-wrap
msgid "save_modiff"
msgstr ""
#. type: itemx
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2306
#, no-wrap
msgid "chars_modiff"
msgstr ""
#. type: itemx
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2307
#, no-wrap
msgid "overlay_modiff"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2316
msgid ""
"These fields count the number of buffer-modification events performed in "
"this buffer. @code{modiff} is incremented after each buffer-modification "
"event, and is never otherwise changed; @code{save_modiff} contains the value "
"of @code{modiff} the last time the buffer was visited or saved; "
"@code{chars_modiff} counts only modifications to the characters in the "
"buffer, ignoring all other kinds of changes (such as text properties); and "
"@code{overlay_modiff} counts only modifications to the buffer's overlays."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2317
#, no-wrap
msgid "beg_unchanged"
msgstr ""
#. type: itemx
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2318
#, no-wrap
msgid "end_unchanged"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2321
msgid ""
"The number of characters at the start and end of the text that are known to "
"be unchanged since the last complete redisplay."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2322
#, no-wrap
msgid "unchanged_modified"
msgstr ""
#. type: itemx
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2323
#, no-wrap
msgid "overlay_unchanged_modified"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2329
msgid ""
"The values of @code{modiff} and @code{overlay_modiff}, respectively, after "
"the last complete redisplay. If their current values match @code{modiff} or "
"@code{overlay_modiff}, that means @code{beg_unchanged} and "
"@code{end_unchanged} contain no useful information."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2330
#, no-wrap
msgid "markers"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2334
msgid ""
"The markers that refer to this buffer. This is actually a single marker, "
"and successive elements in its marker @dfn{chain} (a linked list) are the "
"other markers referring to this buffer text."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2335
#, no-wrap
msgid "intervals"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2337
msgid "The interval tree which records the text properties of this buffer."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2340
msgid "Some of the fields of @code{struct buffer} are:"
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2342
#, no-wrap
msgid "header"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2345
msgid ""
"A header of type @code{union vectorlike_header} is common to all vectorlike "
"objects."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2346
#, no-wrap
msgid "own_text"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2349
msgid ""
"A @code{struct buffer_text} structure that ordinarily holds the buffer "
"contents. In indirect buffers, this field is not used."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2350
#, no-wrap
msgid "text"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2354
msgid ""
"A pointer to the @code{buffer_text} structure for this buffer. In an "
"ordinary buffer, this is the @code{own_text} field above. In an indirect "
"buffer, this is the @code{own_text} field of the base buffer."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2355
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2602
#, no-wrap
msgid "next"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2359
msgid ""
"A pointer to the next buffer, in the chain of all buffers, including killed "
"buffers. This chain is used only for allocation and garbage collection, in "
"order to collect killed buffers properly."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2360
#, no-wrap
msgid "pt"
msgstr ""
#. type: itemx
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2361
#, no-wrap
msgid "pt_byte"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2363
msgid "The character and byte positions of point in a buffer."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2364
#, no-wrap
msgid "begv"
msgstr ""
#. type: itemx
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2365
#, no-wrap
msgid "begv_byte"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2368
msgid ""
"The character and byte positions of the beginning of the accessible range of "
"text in the buffer."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2369
#, no-wrap
msgid "zv"
msgstr ""
#. type: itemx
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2370
#, no-wrap
msgid "zv_byte"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2373
msgid ""
"The character and byte positions of the end of the accessible range of text "
"in the buffer."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2374
#, no-wrap
msgid "base_buffer"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2377
msgid ""
"In an indirect buffer, this points to the base buffer. In an ordinary "
"buffer, it is null."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2378
#, no-wrap
msgid "local_flags"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2384
msgid ""
"This field contains flags indicating that certain variables are local in "
"this buffer. Such variables are declared in the C code using "
"@code{DEFVAR_PER_BUFFER}, and their buffer-local bindings are stored in "
"fields in the buffer structure itself. (Some of these fields are described "
"in this table.)"
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2385
#, no-wrap
msgid "modtime"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2390
msgid ""
"The modification time of the visited file. It is set when the file is "
"written or read. Before writing the buffer into a file, this field is "
"compared to the modification time of the file to see if the file has changed "
"on disk. @xref{Buffer Modification}."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2391
#, no-wrap
msgid "auto_save_modified"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2393
msgid "The time when the buffer was last auto-saved."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2394
#, no-wrap
msgid "last_window_start"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2397
msgid ""
"The @code{window-start} position in the buffer as of the last time the "
"buffer was displayed in a window."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2398
#, no-wrap
msgid "clip_changed"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2401
msgid ""
"This flag indicates that narrowing has changed in the buffer. "
"@xref{Narrowing}."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2402
#, no-wrap
msgid "prevent_redisplay_optimizations_p"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2405
msgid ""
"This flag indicates that redisplay optimizations should not be used to "
"display this buffer."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2406
#, no-wrap
msgid "inhibit_buffer_hooks"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2414
msgid ""
"This flag indicates that the buffer should not run the hooks "
"@code{kill-buffer-hook}, @code{kill-buffer-query-functions} (@pxref{Killing "
"Buffers}), and @code{buffer-list-update-hook} (@pxref{Buffer List}). It is "
"set at buffer creation (@pxref{Creating Buffers}), and avoids slowing down "
"internal or temporary buffers, such as those created by "
"@code{with-temp-buffer} (@pxref{Definition of with-temp-buffer,, Current "
"Buffer})."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2415
#, no-wrap
msgid "overlay_center"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2418
msgid ""
"This field holds the current overlay center position. @xref{Managing "
"Overlays}."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2419
#, no-wrap
msgid "overlays_before"
msgstr ""
#. type: itemx
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2420
#, no-wrap
msgid "overlays_after"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2427
msgid ""
"These fields hold, respectively, a list of overlays that end at or before "
"the current overlay center, and a list of overlays that end after the "
"current overlay center. @xref{Managing Overlays}. @code{overlays_before} "
"is sorted in order of decreasing end position, and @code{overlays_after} is "
"sorted in order of increasing beginning position."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2428
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2832
#, no-wrap
msgid "name"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2434
msgid ""
"A Lisp string that names the buffer. It is guaranteed to be unique. "
"@xref{Buffer Names}. This and the following fields have their names in the "
"C struct definition end in a @code{_} to indicate that they should not be "
"accessed directly, but via the @code{BVAR} macro, like this:"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2437
#, no-wrap
msgid " Lisp_Object buf_name = BVAR (buffer, name);\n"
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2439
#, no-wrap
msgid "save_length"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2446
msgid ""
"The length of the file this buffer is visiting, when last read or saved. It "
"can have 2 special values: @minus{}1 means auto-saving was turned off in "
"this buffer, and @minus{}2 means don't turn off auto-saving if buffer text "
"shrinks a lot. This and other fields concerned with saving are not kept in "
"the @code{buffer_text} structure because indirect buffers are never saved."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2447
#, no-wrap
msgid "directory"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2450
msgid ""
"The directory for expanding relative file names. This is the value of the "
"buffer-local variable @code{default-directory} (@pxref{File Name "
"Expansion})."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2451
#, no-wrap
msgid "filename"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2455
msgid ""
"The name of the file visited in this buffer, or @code{nil}. This is the "
"value of the buffer-local variable @code{buffer-file-name} (@pxref{Buffer "
"File Name})."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2456
#, no-wrap
msgid "undo_list"
msgstr ""
#. type: itemx
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2457
#, no-wrap
msgid "backed_up"
msgstr ""
#. type: itemx
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2458
#, no-wrap
msgid "auto_save_file_name"
msgstr ""
#. type: itemx
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2459
#, no-wrap
msgid "auto_save_file_format"
msgstr ""
#. type: itemx
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2460
#, no-wrap
msgid "read_only"
msgstr ""
#. type: itemx
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2461
#, no-wrap
msgid "file_format"
msgstr ""
#. type: itemx
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2462
#, no-wrap
msgid "file_truename"
msgstr ""
#. type: itemx
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2463
#, no-wrap
msgid "invisibility_spec"
msgstr ""
#. type: itemx
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2464
#, no-wrap
msgid "display_count"
msgstr ""
#. type: itemx
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2465
#, no-wrap
msgid "display_time"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2471
msgid ""
"These fields store the values of Lisp variables that are automatically "
"buffer-local (@pxref{Buffer-Local Variables}), whose corresponding variable "
"names have the additional prefix @code{buffer-} and have underscores "
"replaced with dashes. For instance, @code{undo_list} stores the value of "
"@code{buffer-undo-list}."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2472
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2858
#, no-wrap
msgid "mark"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2475
msgid ""
"The mark for the buffer. The mark is a marker, hence it is also included on "
"the list @code{markers}. @xref{The Mark}."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2476
#, no-wrap
msgid "local_var_alist"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2481
msgid ""
"The association list describing the buffer-local variable bindings of this "
"buffer, not including the built-in buffer-local bindings that have special "
"slots in the buffer object. (Those slots are omitted from this table.) "
"@xref{Buffer-Local Variables}."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2482
#, no-wrap
msgid "major_mode"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2484
msgid "Symbol naming the major mode of this buffer, e.g., @code{lisp-mode}."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2485
#, no-wrap
msgid "mode_name"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2487
msgid "Pretty name of the major mode, e.g., @code{\"Lisp\"}."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2488
#, no-wrap
msgid "keymap"
msgstr ""
#. type: itemx
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2489
#, no-wrap
msgid "abbrev_table"
msgstr ""
#. type: itemx
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2490
#, no-wrap
msgid "syntax_table"
msgstr ""
#. type: itemx
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2491
#, no-wrap
msgid "category_table"
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2492
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2794
#, no-wrap
msgid "display_table"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2497
msgid ""
"These fields store the buffer's local keymap (@pxref{Keymaps}), abbrev table "
"(@pxref{Abbrev Tables}), syntax table (@pxref{Syntax Tables}), category "
"table (@pxref{Categories}), and display table (@pxref{Display Tables})."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2498
#, no-wrap
msgid "downcase_table"
msgstr ""
#. type: itemx
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2499
#, no-wrap
msgid "upcase_table"
msgstr ""
#. type: itemx
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2500
#, no-wrap
msgid "case_canon_table"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2504
msgid ""
"These fields store the conversion tables for converting text to lower case, "
"upper case, and for canonicalizing text for case-fold search. @xref{Case "
"Tables}."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2505
#, no-wrap
msgid "minor_modes"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2507
msgid "An alist of the minor modes of this buffer."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2508
#, no-wrap
msgid "pt_marker"
msgstr ""
#. type: itemx
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2509
#, no-wrap
msgid "begv_marker"
msgstr ""
#. type: itemx
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2510
#, no-wrap
msgid "zv_marker"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2515
msgid ""
"These fields are only used in an indirect buffer, or in a buffer that is the "
"base of an indirect buffer. Each holds a marker that records @code{pt}, "
"@code{begv}, and @code{zv} respectively, for this buffer when the buffer is "
"not current."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2516
#, no-wrap
msgid "mode_line_format"
msgstr ""
#. type: itemx
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2517
#, no-wrap
msgid "header_line_format"
msgstr ""
#. type: itemx
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2518
#, no-wrap
msgid "case_fold_search"
msgstr ""
#. type: itemx
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2519
#, no-wrap
msgid "tab_width"
msgstr ""
#. type: itemx
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2520
#, no-wrap
msgid "fill_column"
msgstr ""
#. type: itemx
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2521
#, no-wrap
msgid "left_margin"
msgstr ""
#. type: itemx
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2522
#, no-wrap
msgid "auto_fill_function"
msgstr ""
#. type: itemx
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2523
#, no-wrap
msgid "truncate_lines"
msgstr ""
#. type: itemx
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2524
#, no-wrap
msgid "word_wrap"
msgstr ""
#. type: itemx
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2525
#, no-wrap
msgid "ctl_arrow"
msgstr ""
#. type: itemx
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2526
#, no-wrap
msgid "bidi_display_reordering"
msgstr ""
#. type: itemx
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2527
#, no-wrap
msgid "bidi_paragraph_direction"
msgstr ""
#. type: itemx
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2528
#, no-wrap
msgid "selective_display"
msgstr ""
#. type: itemx
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2529
#, no-wrap
msgid "selective_display_ellipses"
msgstr ""
#. type: itemx
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2530
#, no-wrap
msgid "overwrite_mode"
msgstr ""
#. type: itemx
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2531
#, no-wrap
msgid "abbrev_mode"
msgstr ""
#. type: itemx
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2532
#, no-wrap
msgid "mark_active"
msgstr ""
#. type: itemx
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2533
#, no-wrap
msgid "enable_multibyte_characters"
msgstr ""
#. type: itemx
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2534
#, no-wrap
msgid "buffer_file_coding_system"
msgstr ""
#. type: itemx
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2535
#, no-wrap
msgid "cache_long_line_scans"
msgstr ""
#. type: itemx
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2536
#, no-wrap
msgid "point_before_scroll"
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2537
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2709
#, no-wrap
msgid "left_fringe_width"
msgstr ""
#. type: itemx
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2538
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2710
#, no-wrap
msgid "right_fringe_width"
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2539
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2714
#, no-wrap
msgid "fringes_outside_margins"
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2540
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2699
#, no-wrap
msgid "scroll_bar_width"
msgstr ""
#. type: itemx
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2541
#, no-wrap
msgid "indicate_empty_lines"
msgstr ""
#. type: itemx
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2542
#, no-wrap
msgid "indicate_buffer_boundaries"
msgstr ""
#. type: itemx
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2543
#, no-wrap
msgid "fringe_indicator_alist"
msgstr ""
#. type: itemx
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2544
#, no-wrap
msgid "fringe_cursor_alist"
msgstr ""
#. type: itemx
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2545
#, no-wrap
msgid "scroll_up_aggressively"
msgstr ""
#. type: itemx
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2546
#, no-wrap
msgid "scroll_down_aggressively"
msgstr ""
#. type: itemx
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2547
#, no-wrap
msgid "cursor_type"
msgstr ""
#. type: itemx
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2548
#, no-wrap
msgid "cursor_in_non_selected_windows"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2553
msgid ""
"These fields store the values of Lisp variables that are automatically "
"buffer-local (@pxref{Buffer-Local Variables}), whose corresponding variable "
"names have underscores replaced with dashes. For instance, "
"@code{mode_line_format} stores the value of @code{mode-line-format}."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2554
#, no-wrap
msgid "last_selected_window"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2557
msgid ""
"This is the last window that was selected with this buffer in it, or "
"@code{nil} if that window no longer displays this buffer."
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2561
#, no-wrap
msgid "internals, of window"
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2562
#, no-wrap
msgid "window internals"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2566
msgid ""
"The fields of a window (for a complete list, see the definition of "
"@code{struct window} in @file{window.h}) include:"
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2568
#, no-wrap
msgid "frame"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2570
msgid "The frame that this window is on, as a Lisp object."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2571
#, no-wrap
msgid "mini"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2574
msgid ""
"Non-zero if this window is a minibuffer window, a window showing the "
"minibuffer or the echo area."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2575
#, no-wrap
msgid "pseudo_window_p"
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2576
#, no-wrap
msgid "pseudo window"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2582
msgid ""
"Non-zero if this window is a @dfn{pseudo window}. A pseudo window is either "
"a window used to display the menu bar or the tool bar (when Emacs uses "
"toolkits that don't display their own menu bar and tool bar) or the tab bar "
"or a window showing a tooltip on a tooltip frame. Pseudo windows are in "
"general not accessible from Lisp code."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2583
#, no-wrap
msgid "parent"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2589
msgid ""
"Internally, Emacs arranges windows in a tree; each group of siblings has a "
"parent window whose area includes all the siblings. This field points to "
"the window's parent in that tree, as a Lisp object. For the root window of "
"the tree and a minibuffer window this is always @code{nil}."
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2594
msgid ""
"Parent windows do not display buffers, and play little role in display "
"except to shape their child windows. Emacs Lisp programs cannot directly "
"manipulate parent windows; they operate on the windows at the leaves of the "
"tree, which actually display buffers."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2595
#, no-wrap
msgid "contents"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2601
msgid ""
"For a leaf window and windows showing a tooltip, this is the buffer, as a "
"Lisp object, that the window is displaying. For an internal (``parent'') "
"window, this is its first child window. For a pseudo window showing a menu "
"or tool bar this is @code{nil}. It is also @code{nil} for a window that has "
"been deleted."
msgstr ""
#. type: itemx
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2603
#, no-wrap
msgid "prev"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2611
msgid ""
"The next and previous sibling of this window as Lisp objects. @code{next} "
"is @code{nil} if the window is the right-most or bottom-most in its group; "
"@code{prev} is @code{nil} if it is the left-most or top-most in its group. "
"Whether the sibling is left/right or up/down is determined by the "
"@code{horizontal} field of the sibling's parent: if it's non-zero, the "
"siblings are arranged horizontally."
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2618
msgid ""
"As a special case, @code{next} of a frame's root window points to the "
"frame's minibuffer window, provided this is not a minibuffer-only or "
"minibuffer-less frame. On such frames @code{prev} of the minibuffer window "
"points to that frame's root window. In any other case, the root window's "
"@code{next} and the minibuffer window's (if present) @code{prev} fields are "
"@code{nil}."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2619
#, no-wrap
msgid "left_col"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2622
msgid ""
"The left-hand edge of the window, measured in columns, relative to the "
"leftmost column (column 0) of the window's native frame."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2623
#, no-wrap
msgid "top_line"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2626
msgid ""
"The top edge of the window, measured in lines, relative to the topmost line "
"(line 0) of the window's native frame."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2627
#, no-wrap
msgid "pixel_left"
msgstr ""
#. type: itemx
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2628
#, no-wrap
msgid "pixel_top"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2631
msgid ""
"The left-hand and top edges of this window, measured in pixels, relative to "
"the top-left corner (0, 0) of the window's native frame."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2632
#, no-wrap
msgid "total_cols"
msgstr ""
#. type: itemx
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2633
#, no-wrap
msgid "total_lines"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2638
msgid ""
"The total width and height of the window, measured in columns and lines "
"respectively. The values include scroll bars and fringes, dividers and/or "
"the separator line on the right of the window (if any)."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2639
#, no-wrap
msgid "pixel_width;"
msgstr ""
#. type: itemx
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2640
#, no-wrap
msgid "pixel_height;"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2642
msgid "The total width and height of the window measured in pixels."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2643
#, no-wrap
msgid "start"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2647
msgid ""
"A marker pointing to the position in the buffer that is the first character "
"(in the logical order, @pxref{Bidirectional Display}) displayed in the "
"window."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2648
#, no-wrap
msgid "pointm"
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2649
#, no-wrap
msgid "window point internals"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2652
msgid ""
"This is the value of point in the current buffer when this window is "
"selected; when it is not selected, it retains its previous value."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2653
#, no-wrap
msgid "old_pointm"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2655
msgid "The value of @code{pointm} at the last redisplay time."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2656
#, no-wrap
msgid "force_start"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2663
msgid ""
"If this flag is non-@code{nil}, it says that the window has been scrolled "
"explicitly by the Lisp program, and the value of the window's @code{start} "
"was set for redisplay to honor. This affects what the next redisplay does "
"if point is off the screen: instead of scrolling the window to show the text "
"around point, it moves point to a location that is on the screen."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2664
#, no-wrap
msgid "optional_new_start"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2667
msgid ""
"This is similar to @code{force_start}, but the next redisplay will only obey "
"it if point stays visible."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2668
#, no-wrap
msgid "start_at_line_beg"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2671
msgid ""
"Non-@code{nil} means current value of @code{start} was the beginning of a "
"line when it was chosen."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2672
#, no-wrap
msgid "use_time"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2675
msgid ""
"This is the last time that the window was selected. The function "
"@code{get-lru-window} uses this field."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2676
#, no-wrap
msgid "sequence_number"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2678
msgid "A unique number assigned to this window when it was created."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2679
#, no-wrap
msgid "last_modified"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2682
msgid ""
"The @code{modiff} field of the window's buffer, as of the last time a "
"redisplay completed in this window."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2683
#, no-wrap
msgid "last_overlay_modified"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2686
msgid ""
"The @code{overlay_modiff} field of the window's buffer, as of the last time "
"a redisplay completed in this window."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2687
#, no-wrap
msgid "last_point"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2690
msgid ""
"The buffer's value of point, as of the last time a redisplay completed in "
"this window."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2691
#, no-wrap
msgid "last_had_star"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2694
msgid ""
"A non-zero value means the window's buffer was modified when the window was "
"last updated."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2695
#, no-wrap
msgid "vertical_scroll_bar_type"
msgstr ""
#. type: itemx
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2696
#, no-wrap
msgid "horizontal_scroll_bar_type"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2698
msgid "The types of this window's vertical and horizontal scroll bars."
msgstr ""
#. type: itemx
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2700
#, no-wrap
msgid "scroll_bar_height"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2703
msgid ""
"The width of this window's vertical scroll bar and the height of this "
"window's horizontal scroll bar, in pixels."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2704
#, no-wrap
msgid "left_margin_cols"
msgstr ""
#. type: itemx
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2705
#, no-wrap
msgid "right_margin_cols"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2708
msgid ""
"The widths of the left and right margins in this window. A value of zero "
"means no margin."
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2713
msgid ""
"The pixel widths of the left and right fringes in this window. A value of "
"@minus{}1 means use the values of the frame."
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2717
msgid ""
"A non-zero value means the fringes outside the display margins; othersize "
"they are between the margin and the text."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2718
#, no-wrap
msgid "window_end_pos"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2722
msgid ""
"This is computed as @code{z} minus the buffer position of the last glyph in "
"the current matrix of the window. The value is only valid if "
"@code{window_end_valid} is non-zero."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2723
#, no-wrap
msgid "window_end_bytepos"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2725
msgid "The byte position corresponding to @code{window_end_pos}."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2726
#, no-wrap
msgid "window_end_vpos"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2729
msgid ""
"The window-relative vertical position of the line containing "
"@code{window_end_pos}."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2730
#, no-wrap
msgid "window_end_valid"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2735
msgid ""
"This field is set to a non-zero value if @code{window_end_pos} and "
"@code{window_end_vpos} are truly valid. This is zero if nontrivial "
"redisplay is pre-empted, since in that case the display that "
"@code{window_end_pos} was computed for did not get onto the screen."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2736
#, no-wrap
msgid "cursor"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2738
msgid "A structure describing where the cursor is in this window."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2739
#, no-wrap
msgid "last_cursor_vpos"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2742
msgid ""
"The window-relative vertical position of the line showing the cursor as of "
"the last redisplay that finished."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2743
#, no-wrap
msgid "phys_cursor"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2745
msgid "A structure describing where the cursor of this window physically is."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2746
#, no-wrap
msgid "phys_cursor_type"
msgstr ""
#. type: itemx
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2749
#, no-wrap
msgid "phys_cursor_height"
msgstr ""
#. type: itemx
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2750
#, no-wrap
msgid "phys_cursor_width"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2753
msgid ""
"The type, height, and width of the cursor that was last displayed on this "
"window."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2754
#, no-wrap
msgid "phys_cursor_on_p"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2756
msgid "This field is non-zero if the cursor is physically on."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2757
#, no-wrap
msgid "cursor_off_p"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2760
msgid ""
"Non-zero means the cursor in this window is logically off. This is used for "
"blinking the cursor."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2761
#, no-wrap
msgid "last_cursor_off_p"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2764
msgid ""
"This field contains the value of @code{cursor_off_p} as of the time of the "
"last redisplay."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2765
#, no-wrap
msgid "must_be_updated_p"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2767
msgid "This is set to 1 during redisplay when this window must be updated."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2768
#, no-wrap
msgid "hscroll"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2773
msgid ""
"This is the number of columns that the display in the window is scrolled "
"horizontally to the left. Normally, this is 0. When only the current line "
"is hscrolled, this describes how much the current line is scrolled."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2774
#, no-wrap
msgid "min_hscroll"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2779
msgid ""
"Minimum value of @code{hscroll}, set by the user via "
"@code{set-window-hscroll} (@pxref{Horizontal Scrolling}). When only the "
"current line is hscrolled, this describes the horizontal scrolling of lines "
"other than the current one."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2780
#, no-wrap
msgid "vscroll"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2782
msgid "Vertical scroll amount, in pixels. Normally, this is 0."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2783
#, no-wrap
msgid "dedicated"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2785
msgid "Non-@code{nil} if this window is dedicated to its buffer."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2786
#, no-wrap
msgid "combination_limit"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2790
msgid ""
"This window's combination limit, meaningful only for a parent window. If "
"this is @code{t}, then it is not allowed to delete this window and recombine "
"its child windows with other siblings of this window."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2791
#, no-wrap
msgid "window_parameters"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2793
msgid "The alist of this window's parameters."
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2796
msgid "The window's display table, or @code{nil} if none is specified for it."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2797
#, no-wrap
msgid "update_mode_line"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2799
msgid "Non-zero means this window's mode line needs to be updated."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2800
#, no-wrap
msgid "mode_line_height"
msgstr ""
#. type: itemx
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2801
#, no-wrap
msgid "header_line_height"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2804
msgid ""
"The height in pixels of the mode line and the header line, or @minus{}1 if "
"not known."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2805
#, no-wrap
msgid "base_line_number"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2808
msgid ""
"The line number of a certain position in the buffer, or zero. This is used "
"for displaying the line number of point in the mode line."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2809
#, no-wrap
msgid "base_line_pos"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2813
msgid ""
"The position in the buffer for which the line number is known, or zero "
"meaning none is known. If it is @minus{}1, don't display the line number as "
"long as the window shows that buffer."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2814
#, no-wrap
msgid "column_number_displayed"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2817
msgid ""
"The column number currently displayed in this window's mode line, or "
"@minus{}1 if column numbers are not being displayed."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2818
#, no-wrap
msgid "current_matrix"
msgstr ""
#. type: itemx
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2819
#, no-wrap
msgid "desired_matrix"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2821
msgid "Glyph matrices describing the current and desired display of this window."
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2825
#, no-wrap
msgid "internals, of process"
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2826
#, no-wrap
msgid "process internals"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2830
msgid ""
"The fields of a process (for a complete list, see the definition of "
"@code{struct Lisp_Process} in @file{process.h}) include:"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2834
msgid "A Lisp string, the name of the process."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2835
#, no-wrap
msgid "command"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2839
msgid ""
"A list containing the command arguments that were used to start this "
"process. For a network or serial process, it is @code{nil} if the process "
"is running or @code{t} if the process is stopped."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2840
#, no-wrap
msgid "filter"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2842
msgid "A Lisp function used to accept output from the process."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2843
#, no-wrap
msgid "sentinel"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2845
msgid "A Lisp function called whenever the state of the process changes."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2846
#, no-wrap
msgid "buffer"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2848
msgid "The associated buffer of the process."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2849
#, no-wrap
msgid "pid"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2852
msgid ""
"An integer, the operating system's process @acronym{ID}. Pseudo-processes "
"such as network or serial connections use a value of 0."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2853
#, no-wrap
msgid "childp"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2857
msgid ""
"A flag, @code{t} if this is really a child process. For a network or serial "
"connection, it is a plist based on the arguments to "
"@code{make-network-process} or @code{make-serial-process}."
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2862
msgid ""
"A marker indicating the position of the end of the last output from this "
"process inserted into the buffer. This is often but not always the end of "
"the buffer."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2863
#, no-wrap
msgid "kill_without_query"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2866
msgid ""
"If this is non-zero, killing Emacs while this process is still running does "
"not ask for confirmation about killing the process."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2867
#, no-wrap
msgid "raw_status"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2869
msgid "The raw process status, as returned by the @code{wait} system call."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2870
#, no-wrap
msgid "status"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2873
msgid ""
"The process status, as @code{process-status} should return it. This is a "
"Lisp symbol, a cons cell, or a list."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2874
#, no-wrap
msgid "tick"
msgstr ""
#. type: itemx
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2875
#, no-wrap
msgid "update_tick"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2879
msgid ""
"If these two fields are not equal, a change in the status of the process "
"needs to be reported, either by running the sentinel or by inserting a "
"message in the process buffer."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2880
#, no-wrap
msgid "pty_flag"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2883
msgid ""
"Non-zero if communication with the subprocess uses a pty; zero if it uses a "
"pipe."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2884
#, no-wrap
msgid "infd"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2886
msgid "The file descriptor for input from the process."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2887
#, no-wrap
msgid "outfd"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2889
msgid "The file descriptor for output to the process."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2890
#, no-wrap
msgid "tty_name"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2893
msgid ""
"The name of the terminal that the subprocess is using, or @code{nil} if it "
"is using pipes."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2894
#, no-wrap
msgid "decode_coding_system"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2896
msgid "Coding-system for decoding the input from this process."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2897
#, no-wrap
msgid "decoding_buf"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2899
msgid "A working buffer for decoding."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2900
#, no-wrap
msgid "decoding_carryover"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2902
msgid "Size of carryover in decoding."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2903
#, no-wrap
msgid "encode_coding_system"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2905
msgid "Coding-system for encoding the output to this process."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2906
#, no-wrap
msgid "encoding_buf"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2908
msgid "A working buffer for encoding."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2909
#, no-wrap
msgid "inherit_coding_system_flag"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2912
msgid ""
"Flag to set @code{coding-system} of the process buffer from the coding "
"system used to decode process output."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2913
#, no-wrap
msgid "type"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2916
msgid ""
"Symbol indicating the type of process: @code{real}, @code{network}, "
"@code{serial}."
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2921
#, no-wrap
msgid "integer types (C programming language)"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2926
msgid ""
"Here are some guidelines for use of integer types in the Emacs C source "
"code. These guidelines sometimes give competing advice; common sense is "
"advised."
msgstr ""
#. type: itemize
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2932
msgid ""
"Avoid arbitrary limits. For example, avoid @code{int len = strlen (s);} "
"unless the length of @code{s} is required for other reasons to fit in "
"@code{int} range."
msgstr ""
#. type: itemize
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2939
msgid ""
"Do not assume that signed integer arithmetic wraps around on overflow. This "
"is no longer true of Emacs porting targets: signed integer overflow has "
"undefined behavior in practice, and can dump core or even cause earlier or "
"later code to behave illogically. Unsigned overflow does wrap around "
"reliably, modulo a power of two."
msgstr ""
#. type: itemize
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2947
msgid ""
"Prefer signed types to unsigned, as code gets confusing when signed and "
"unsigned types are combined. Many other guidelines assume that types are "
"signed; in the rarer cases where unsigned types are needed, similar advice "
"may apply to the unsigned counterparts (e.g., @code{size_t} instead of "
"@code{ptrdiff_t}, or @code{uintptr_t} instead of @code{intptr_t})."
msgstr ""
#. type: itemize
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2952
msgid ""
"Prefer @code{int} for Emacs character codes, in the range 0 ..@: 0x3FFFFF@. "
"More generally, prefer @code{int} for integers known to be in @code{int} "
"range, e.g., screen column counts."
msgstr ""
#. type: itemize
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2961
msgid ""
"Prefer @code{ptrdiff_t} for sizes, i.e., for integers bounded by the maximum "
"size of any individual C object or by the maximum number of elements in any "
"C array. This is part of Emacs's general preference for signed types. "
"Using @code{ptrdiff_t} limits objects to @code{PTRDIFF_MAX} bytes, but "
"larger objects would cause trouble anyway since they would break pointer "
"subtraction, so this does not impose an arbitrary limit."
msgstr ""
#. type: itemize
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2972
msgid ""
"Avoid @code{ssize_t} except when communicating to low-level APIs that have "
"@code{ssize_t}-related limitations. Although it's equivalent to "
"@code{ptrdiff_t} on typical platforms, @code{ssize_t} is occasionally "
"narrower, so using it for size-related calculations could overflow. Also, "
"@code{ptrdiff_t} is more ubiquitous and better-standardized, has standard "
"@code{printf} formats, and is the basis for Emacs's internal size-overflow "
"checking. When using @code{ssize_t}, please note that POSIX requires "
"support only for values in the range @minus{}1 ..@: @code{SSIZE_MAX}."
msgstr ""
#. type: itemize
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2982
msgid ""
"Normally, prefer @code{intptr_t} for internal representations of pointers, "
"or for integers bounded only by the number of objects that can exist at any "
"given time or by the total number of bytes that can be allocated. However, "
"prefer @code{uintptr_t} to represent pointer arithmetic that could cross "
"page boundaries. For example, on a machine with a 32-bit address space an "
"array could cross the 0x7fffffff/0x80000000 boundary, which would cause an "
"integer overflow when adding 1 to @code{(intptr_t) 0x7fffffff}."
msgstr ""
#. type: itemize
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2987
msgid ""
"Prefer the Emacs-defined type @code{EMACS_INT} for representing values "
"converted to or from Emacs Lisp fixnums, as fixnum arithmetic is based on "
"@code{EMACS_INT}."
msgstr ""
#. type: itemize
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:2994
msgid ""
"When representing a system value (such as a file size or a count of seconds "
"since the Epoch), prefer the corresponding system type (e.g., @code{off_t}, "
"@code{time_t}). Do not assume that a system type is signed, unless this "
"assumption is known to be safe. For example, although @code{off_t} is "
"always signed, @code{time_t} need not be."
msgstr ""
#. type: itemize
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:3000
msgid ""
"Prefer @code{intmax_t} for representing values that might be any signed "
"integer value. A @code{printf}-family function can print such a value via a "
"format like @code{\"%\"PRIdMAX}."
msgstr ""
#. type: itemize
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:3011
msgid ""
"Prefer @code{bool}, @code{false} and @code{true} for booleans. Using "
"@code{bool} can make programs easier to read and a bit faster than using "
"@code{int}. Although it is also OK to use @code{int}, @code{0} and "
"@code{1}, this older style is gradually being phased out. When using "
"@code{bool}, respect the limitations of the replacement implementation of "
"@code{bool}, as documented in the source file @file{lib/stdbool.in.h}. In "
"particular, boolean bitfields should be of type @code{bool_bf}, not "
"@code{bool}, so that they work correctly even when compiling Objective C "
"with standard GCC."
msgstr ""
#. type: itemize
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/internals.texi:3017
msgid ""
"In bitfields, prefer @code{unsigned int} or @code{signed int} to @code{int}, "
"as @code{int} is less portable: it might be signed, and might not be. "
"Single-bit bit fields should be @code{unsigned int} or @code{bool_bf} so "
"that their values are 0 or 1."
msgstr ""