Mercurial > emacs
view src/blockinput.h @ 76136:4aa6d6384e7d
(org-table-overlay-coordinates)
(org-table-toggle-coordinate-overlays): New functions.
(org-table-overlay-coordinates, org-table-coordinate-overlays):
New variables.
(org-startup-with-deadline-check): Option removed.
(org-mode): Remove deadline check on startup.
(org-table-limit-column-width): Option removed.
(org-table-formula-numbers-only): Option removed.
(org-link-style, org-link-format): Options removed.
(org-select-agenda-window, org-fit-agenda-window): Options
removed.
(org-export-ascii-show-new-buffer)
(org-export-html-show-new-buffer): Options removed.
(org-activate-links): Camel option removed.
(org-file-link-context-use-camel-case): Option removed.
(org-camel-regexp): Veriable removed.
(org-activate-camels): Function removed.
(org-store-link): Removed Camel stuff.
(org-make-org-heading-camel): Function removed.
(org-open-at-point): Removed camel stuff.
(org-link-search): Removed camel stuff.
(org-camel-to-words): Function removed.
(org-get-agenda-file-buffer): Make sure we prepare the
base buffers, not any indirect buffers.
(org-sort-entries): Sort top-level when not on a
headline, and no active region.
(org-in-regexp): New function.
(org-search-not-self): Renamed from `org-search-not-link'.
(org-open-link-marker): New variable.
(org-open-at-point): Set `org-open-link-marker'.
(org-print-icalendar-entries): Fixed bug with excluding DONE
entries from the exported list.
(org-edit-formula-lisp-indent): New command.
(orgtbl-to-texinfo, orgtbl-to-html): New functions.
(orgtbl-to-latex, orgtbl-insert-radio-table)
(orgtbl-toggle-comment, orgtbl-send-table): New functions.
(orgtbl-radio-table-templates): New option.
(org-store-link-props):
(org-remember-templates): More possibilities to insert
info into templates.
(org-remember-apply-template): Make use of the extended template
capabilities.
(org-remember-redo-template): New command.
(org-upgrade-old-links)
(org-table-modify-formulas, org-table-replace-in-formulas)
(org-table-find-dataline)
(org-table-get-vertical-vector): Functions removed.
(org-table-remove-rectangle-highlight)
(org-time-stamp-format, org-toggle-log-option)
(org-table-highlight-rectangle)
(org-table-iterate, org-table-make-reference):
(org-translate-time, org-tree-to-indirect-buffer)
(org-table-field-info, org-table-fix-formulas)
(org-table-force-dataline, org-table-get-descriptor-line)
(org-table-get-range)
(org-skip-comments, org-sort)
(org-sort-entries, org-sublist, org-table-add-rectangle-overlay)
(org-table-current-dline, org-table-current-field-formula)
(org-table-edit-backward-field)
(org-table-edit-formulas-post-command)
(org-table-edit-line-down, org-table-edit-line-up)
(org-agenda-archive)
(org-agenda-clock-cancel)
(org-agenda-clock-out, org-agenda-list-stuck-projects)
(org-agenda-open-link, org-agenda-show-new-time)
(org-agenda-skip-subtree-when-regexp-matches)
(org-agenda-tree-to-indirect-buffer, org-agenda-undo)
(org-at-regexp-p, org-auto-repeat-maybe, org-check-log-option)
(org-do-sort, org-file-image-p, org-find-overlays)
(org-find-row-type, org-get-indirect-buffer, org-get-repeat)
(org-highlight-until-next-command, org-isearch-end)
(org-match-any-p, org-next-link, org-previous-link):
(org-remove-subtree-entries-from-agenda, org-replace-escapes)
(org-rewrite-old-row-references)
(org-isearch-post-command)
(org-table-edit-move, org-table-edit-next-field)
(org-table-edit-scroll, org-table-edit-scroll-down)
(org-set-frame-title, org-show-reference)
(org-unhighlight-once, org-verify-change-for-undo): New
functions.
(org-show-variable): Command removed.
(org-add-log-maybe): New arguments STATE, FINDPOS
(org-table-sort-lines): Rewritten from scratch.
(org-link-search): New argument AVOID-POS.
(org-print-icalendar-entries): Argument CATEGORY removed.
(org-run-agenda-series): Argument WONDOW removed.
(org-next-link, org-previous-link): New commands.
(org-agenda-date-format): New option.
(org-table-iterate): New command.
(org-table-modify-formulas)
(org-table-replace-in-formulas): Functions removed.
(org-table-fix-formulas): New function.
(org-table-insert-column, org-table-delete-column)
(org-table-move-column): Use `org-table-fix-formulas'.
(org-follow-gnus-link): Patch from Bastien/Leo.
(org-table-current-field-formula): New function.
(org-file-image-p): New function.
(org-agenda-show-new-time): New function.
(org-agenda-date-later): Call `org-agenda-show-new-time'.
(org-with-remote-undo): New macro.
(org-agenda-undo): New command.
(org-verify-change-for-undo): New function.
(org-time-stamp-format): New function.
(org-agenda-get-timestamps): Skip scheduled if DONE and requested
by user.
(org-match-any-p): New function.
(org-make-tags-matcher): Handle regular expressions for tag and
todo matches.
(org-read-date): Accept "+N" as input for a date relative to the
current date.
(org-remove-subtree-entries-from-agenda): New function.
(org-agenda-archive, org-agenda-kill): Use
`org-remove-subtree-entries-from-agenda'.
(org-do-sort, org-sort-entries): New functions.
(org-sort): New command.
(org-table-sort-lines): Use `org-do-sort'.
(org-fix-decoded-time): New function.
(org-table-number-regexp): Require 0x... to identify as number in
tables.
(org-startup-options): New keywords for note taking.
(org-upgrade-old-links): Function removed.
(org-get-repeat): New function.
(org-show-context): Also show siblings on current level.
(org-show-siblings): New function.
(org-isearch-end, org-isearch-post-command): New functions.
(org-show-siblings): New option.
(org-show-context): Use `org-show-siblings'.
(org-table-maybe-recalculate-line): No longer require `calc-eval'
to be bound, because user may just use elisp.
author | Carsten Dominik <dominik@science.uva.nl> |
---|---|
date | Sun, 25 Feb 2007 06:39:11 +0000 |
parents | 205d5c1af245 |
children | 922696f363b0 f83d17e1ace6 |
line wrap: on
line source
/* blockinput.h - interface to blocking complicated interrupt-driven input. Copyright (C) 1989, 1993, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. This file is part of GNU Emacs. GNU Emacs is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. GNU Emacs is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Emacs; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef EMACS_BLOCKINPUT_H #define EMACS_BLOCKINPUT_H #include "atimer.h" /* When Emacs is using signal-driven input, the processing of those input signals can get pretty hairy. For example, when Emacs is running under X windows, handling an input signal can entail retrieving events from the X event queue, or making other X calls. If an input signal occurs while Emacs is in the midst of some non-reentrant code, and the signal processing invokes that same code, we lose. For example, malloc and the Xlib functions aren't usually re-entrant, and both are used by the X input signal handler - if we try to process an input signal in the midst of executing any of these functions, we'll lose. To avoid this, we make the following requirements: * Everyone must evaluate BLOCK_INPUT before entering these functions, and then call UNBLOCK_INPUT after performing them. Calls BLOCK_INPUT and UNBLOCK_INPUT may be nested. * Any complicated interrupt handling code should test interrupt_input_blocked, and put off its work until later. * If the interrupt handling code wishes, it may set interrupt_input_pending to a non-zero value. If that flag is set when input becomes unblocked, UNBLOCK_INPUT will send a new SIGIO. */ extern volatile int interrupt_input_blocked; /* Nonzero means an input interrupt has arrived during the current critical section. */ extern int interrupt_input_pending; /* Non-zero means asynchronous timers should be run when input is unblocked. */ extern int pending_atimers; /* Begin critical section. */ #define BLOCK_INPUT (interrupt_input_blocked++) /* End critical section. If doing signal-driven input, and a signal came in when input was blocked, reinvoke the signal handler now to deal with it. We used to have two possible definitions of this macro - one for when SIGIO was #defined, and one for when it wasn't; when SIGIO wasn't #defined, we wouldn't bother to check if we should re-invoke the signal handler. But that doesn't work very well; some of the files which use this macro don't #include the right files to get SIGIO. So, we always test interrupt_input_pending now; that's not too expensive, and it'll never get set if we don't need to resignal. */ #define UNBLOCK_INPUT \ do \ { \ --interrupt_input_blocked; \ if (interrupt_input_blocked == 0) \ { \ if (interrupt_input_pending) \ reinvoke_input_signal (); \ if (pending_atimers) \ do_pending_atimers (); \ } \ else if (interrupt_input_blocked < 0) \ abort (); \ } \ while (0) /* Undo any number of BLOCK_INPUT calls, and also reinvoke any pending signal. */ #define TOTALLY_UNBLOCK_INPUT \ do if (interrupt_input_blocked != 0) \ { \ interrupt_input_blocked = 1; \ UNBLOCK_INPUT; \ } \ while (0) /* Undo any number of BLOCK_INPUT calls down to level LEVEL, and also (if the level is now 0) reinvoke any pending signal. */ #define UNBLOCK_INPUT_TO(LEVEL) \ do \ { \ interrupt_input_blocked = (LEVEL) + 1; \ UNBLOCK_INPUT; \ } \ while (0) #define UNBLOCK_INPUT_RESIGNAL UNBLOCK_INPUT /* In critical section ? */ #define INPUT_BLOCKED_P (interrupt_input_blocked > 0) /* Defined in keyboard.c */ /* Don't use a prototype here; it causes trouble in some files. */ extern void reinvoke_input_signal (); #endif /* EMACS_BLOCKINPUT_H */ /* arch-tag: 51a9ec86-945a-4966-8f04-2d1341250e03 (do not change this comment) */