# SOME DESCRIPTIVE TITLE # Copyright (C) YEAR Free Software Foundation, Inc. # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , 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 \n" "Language-Team: LANGUAGE \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{} 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 \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 \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 \n" "#include \n" "#include \n" "#include \n" "#include \n" "\n" msgstr "" #. type: example #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/internals.texi:1760 #, no-wrap msgid "" "#include \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 ""