Mercurial > emacs
view src/cm.h @ 104810:86b7fe7d1d8f
2009-09-02 Carsten Dominik <carsten.dominik@gmail.com>
* org-protocol.el (org-protocol-store-link)
(org-protocol-remember, org-protocol-open-source): Add autoloads.
* org-compat.el (org-float-time): New function.
* org.el (org-clock-update-time-maybe)
(org-sort-entries-or-items, org-do-sort)
(org-evaluate-time-range, org-time-string-to-seconds)
(org-closed-in-range): Use `org-float-time'.
* org-timer.el (org-timer-start, org-timer-pause-or-continue)
(org-timer-seconds): Use `org-float-time'.
* org-clock.el (org-clock-get-clocked-time, org-clock-out)
(org-clock-sum, org-dblock-write:clocktable)
(org-clocktable-steps): Use `org-float-time'.
* org-agenda.el (org-agenda-last-marker-time)
(org-agenda-new-marker, org-diary): Use `org-float-time'.
* org-compat.el (w32-focus-frame): Declare the w32-focus-frame
function.
* org-exp.el (org-get-file-contents): Only protect lines that
really need it.
* org-html.el (require): Require cl for compilation.
* org.el: Avoid using `default-major-mode'.
* org-plot.el (require): Require CL only at compile time.
* org-exp.el (require): Require CL only at compile time.
* org-agenda.el (org-agenda-quit): When the agenda window is
dedicated, remove other windows before exiting, so that the frame
really will be killed.
* org-exp.el (org-export-handle-include-files): Reset START and
END for each loop cycle.
2009-09-02 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-eval-in-calendar): Use
`org-select-frame-set-input-focus'.
* org-compat.el (org-select-frame-set-input-focus): New function.
* org.el (org-update-statistics-cookies): New function.
(org-mode-map): Bind `C-c #' to `org-update-statistics-cookies'.
2009-09-02 Carsten Dominik <carsten.dominik@gmail.com>
* org-src.el (org-edit-fixed-width-region): Set org-src-mode only
after the local variables are set.
* org-latex.el (org-export-latex-protect-amp): New function.
(org-export-latex-links): Protect link ampersands in tables.
* org-exp.el (org-export-select-backend-specific-text): Match in
two steps, to avoid regexp problems.
* org.el (org-offer-links-in-entry): Improve working with many and
duplicate links.
* org-agenda.el (org-agenda-show-1): Make more consistent with
normal cycling.
(org-agenda-cycle-show): Make more consistent with normal cycling.
* org-gnus.el (org-gnus-store-link): Restore the linking to a
website.
2009-09-02 Bastien Guerry <bzg@altern.org>
* org-latex.el (org-export-latex-first-lines): Bugfix.
2009-09-02 Carsten Dominik <carsten.dominik@gmail.com>
* org-clock.el (org-clock-modify-effort-estimate): Emit message
about new effort.
* org.el (org-set-effort): New function.
(org-mode-map): New key for effort setting command.
* org-agenda.el (org-agenda): Keep window setup when calling
agenda from within agenda window.
(org-agenda-mode-map): New keys for effort setting commands.
(org-agenda-menu): Add effort setting commands to menu.
(org-agenda-set-property, org-agenda-set-effort): New functions.
* org-latex.el (org-export-latex-tables): Fix
`org-table-last-alignment' and `org-table-last-column-widths' if
the first column has been removed.
2009-09-02 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-remove-timestamp-with-keyword): Only remove in
entry, not in subtree.
* org-src.el (org-src-lang-modes): Add abbreviation elisp for
emacs lisp.
* org.el (org-open-at-point): When on headline, offer all strings
in entry.
* org-remember.el (org-remember-templates): Documentation fix.
* org.el (org-move-subtree-down): Use `org-get-next-sibling' and
`org-get-last-sibling' instead of the outline versions of these
functions.
(org-get-last-sibling): New function.
(org-refile): Use `org-get-next-sibling' instead of the outline
version of this function.
(org-clean-visibility-after-subtree-move): Use
`org-get-next-sibling' and `org-get-last-sibling' instead of the
outline versions of these functions.
2009-09-02 Carsten Dominik <carsten.dominik@gmail.com>
* org-agenda.el (org-prepare-agenda): When creating a new frame
for the agenda, make the window dedicated.
* org-agenda.el (org-agenda-mode-map): New keys for time motion.
* org-table.el (org-table-align): Change the order of reinsertion
and deletion, to avoid problems with overlays following the table.
* org.el (org-parse-time-string): Better error message.
(org-show-subtree): Use org-end-of-subtree.
* org-macs.el (org-goto-line): New defsubst.
* org.el (org-open-file, org-change-tag-in-region)
(org-fast-tag-show-exit): Don't use `goto-line'.
* org-table.el (org-table-align, org-table-insert-column)
(org-table-delete-column, org-table-move-column)
(org-table-sort-lines, org-table-copy-region)
(org-table-paste-rectangle, org-table-wrap-region)
(org-table-get-specials, org-table-rotate-recalc-marks)
(org-table-get-range, org-table-recalculate)
(org-table-edit-formulas, org-table-fedit-convert-buffer)
(org-table-show-reference, org-table-highlight-rectangle): Don't
use `goto-line'.
* org-src.el (org-edit-src-code, org-edit-fixed-width-region)
(org-edit-src-exit): Don't use `goto-line'.
* org-macs.el (org-preserve-lc): Don't use `goto-line'.
* org-list.el (org-renumber-ordered-list, org-fix-bullet-type):
Don't use `goto-line'.
* org-exp.el (org-export-number-lines): Don't use `goto-line'.
* org-colview.el (org-columns, org-columns-redo)
(org-agenda-columns): Don't use `goto-line'.
* org-colview-xemacs.el (org-columns, org-agenda-columns): Don't
use `goto-line'.
* org-agenda.el (org-agenda-mode): Force visual line motion off.
(org-agenda-add-entry-text-maxlines): Improve docstring.
(org-agenda-start-with-entry-text-mode): New option.
(org-agenda-entry-text-maxlines): New option.
(org-agenda-entry-text-mode): New variable.
(org-agenda-mode): Set initial value of
`org-agenda-entry-text-mode'.
(org-agenda-mode-map): Add the `E' key.
(org-agenda-menu): Add entry text mode to the menu.
(org-agenda-get-some-entry-text): Fix line count bug.
(org-finalize-agenda): Apply entry text mode if appropriate.
(org-agenda-entry-text-show-here): New function.
(org-agenda-entry-text-show): New function.
(org-agenda-entry-text-hide): New function.
(org-agenda-view-mode-dispatch): Add entry text mode to the view
key menu.
(org-agenda-entry-text-mode): New command.
(org-agenda-set-mode-name): Add entry text mode to the mode line
string.
(org-agenda-undo, org-agenda-get-restriction-and-command)
(org-agenda-get-some-entry-text, org-agenda-redo): Don't use
`goto-line'.
2009-09-02 Bernt Hansen <bernt@norang.ca>
* org-clock.el (org-notify): Bugfix.
2009-09-02 Carsten Dominik <carsten.dominik@gmail.com>
* org-agenda.el (org-agenda-open-link): Handle multiple links and
check for after-string.
* org-gnus.el (org-gnus-store-link): Simplify.
* org.el (org-latex-regexps): Don't add extra empty lines for
display formulas.
2009-09-02 Carsten Dominik <carsten.dominik@gmail.com>
* org-agenda.el (org-agenda-get-some-entry-text): New function.
(org-agenda-add-entry-text): Use
`org-agenda-get-some-entry-text'.
* org.el (org-cycle-separator-lines): Update docstring.
(org-cycle-show-empty-lines): Handle negative values for
`org-cycle-show-empty-lines'.
* org-exp.el (org-export-protect-sub-super): New function.
(org-export-normalize-links): Protect the url of plain links from
supscript and superscript processing.
* org-remember.el (org-remember-escaped-%): New function.
(org-remember-apply-template): Use `org-remember-escaped-%' to
detect escaped % signs.
2009-09-02 Bastien Guerry <bzg@altern.org>
* org-timer.el (org-timer-set-timer): Use `org-notify' and play a
sound when showing the notification.
* org-clock.el (org-notify): New function.
(org-clock-notify-once-if-expired): Use `org-notify'.
* org-gnus.el (org-gnus-store-link): Handle `gnus-summary-mode'
and `gnus-article-mode' separately.
(gnus-summary-article-header): Fix the declare-function.
2009-09-02 Carsten Dominik <carsten.dominik@gmail.com>
* org-exp.el (org-export-format-source-code-or-example): Translate
language.
* org-src.el (org-src-lang-modes): New variable
(org-edit-src-code): Translate language.
* org-exp.el (org-export-format-source-code-or-example): Deal wit
the new structure of the `org-export-latex-listings-langs'
variable.
* org-latex.el (org-export-latex-listings-langs): Change structure
of the variable from plist to alist.
2009-09-02 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-in-commented-line): New function.
2009-09-02 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-hide-block-toggle): Make folded blocks searchable.
2009-09-02 Friedrich Delgado Friedrichs <friedel@nomaden.org> (tiny change)
* org.el (org-flag-drawer): More useful error.
2009-09-02 Carsten Dominik <carsten.dominik@gmail.com>
* org-remember.el (org-remember-apply-template): Use
org-icompleting-read.
* org-publish.el (org-publish): Use org-icompleting-read.
* org-colview.el (org-columns-edit-value, org-columns-new)
(org-insert-columns-dblock): Use org-icompleting-read.
* org-colview-xemacs.el (org-columns-edit-value)
(org-columns-new, org-insert-columns-dblock): Use
org-icompleting-read.
* org-attach.el (org-attach-delete-one, org-attach-open): Use
org-icompleting-read.
2009-09-02 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-hierarchical-todo-statistics): Improve docstring.
(org-version): Return the version text.
(org-org-menu): Add a menu entry for the new bug reporter.
(org-submit-bug-report): New command.
* org-list.el (org-hierarchical-checkbox-statistics): Improve
docstring.
* org.el (org-emphasis-regexp-components): Add "`" to set of
pre-emphasis characters.
* org-latex.el (org-export-latex-classes): Always include the soul
package.
(org-export-latex-emphasis-alist): Use \st for strikethough.
* org-exp-blocks.el (org-export-blocks-preprocess): Use
`indent-code-rigidly' to indent.
* org-agenda.el (org-agenda-get-restriction-and-command): Remove
properties only if MATCH really is a string.
2009-09-02 Carsten Dominik <carsten.dominik@gmail.com>
* org-latex.el (org-export-latex-packages-alist): Fix
customization type.
* org.el (org-create-formula-image): Also use
`org-export-latex-packages-alist'.
* org-html.el (org-export-as-html): Fix bug in footnote regexp.
(org-export-as-html): Format footnotes correctly.
2009-09-02 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-fast-tag-selection): Avoid text properties on tags
in the alist.
* org-agenda.el (org-agenda-get-restriction-and-command): Avoid
text properties on the match element.
2009-09-02 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-set-regexps-and-options): Make sure the list of done
keywords is not invalid.
* org-exp.el (org-export-interpolate-newlines): New function.
2009-09-02 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-format-latex): Avoid nested overlays.
* org-latex.el (org-export-latex-listings-langs): Add a few more
languages.
* org-exp.el (org-export-preprocess-apply-macros): Make sure to
ignore newlines and space before the first macro argument.
* org-latex.el (org-export-latex-tables): Remove save-excursion
around `org-table-align'.
2009-09-02 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-export-html-special-string-regexps): Definition
moved into org.el
* org-exp.el (org-export-preprocess-apply-macros): Allow newlines
in macro calls.
2009-09-02 Carsten Dominik <carsten.dominik@gmail.com>
* org-latex.el (org-export-latex-listings)
(org-export-latex-listings-langs): New options.
* org-exp.el (org-export-format-source-code-or-example): Use
listing package if requested by the user.
2009-09-02 Bastien Guerry <bzg@altern.org>
* org.el (org-iswitchb): Fix bug when aborting the `org-iswitchb'
command before actually switching to a buffer.
2009-09-02 Carsten Dominik <carsten.dominik@gmail.com>
* org-exp.el (org-get-file-contents): Only quote org lines when
the markup is src or example.
* org-agenda.el (org-agenda-skip-scheduled-if-deadline-is-shown):
New option
(org-agenda-get-day-entries): Remember deadline results and pass
them on into the function getting the scheduling information.
(org-agenda-get-scheduled): Accept deadline results as parameters
and maybe skip some entries.
(org-agenda-skip-scheduled-if-deadline-is-shown): New option.
* org.el (org-insert-heading): When respecting content, do not
convert current line to headline.
* org-clock.el (org-clock-save-markers-for-cut-and-paste): Also
cheeeeeck the hd marker
(org-clock-in): Also set the hd marker.
(org-clock-out): Also set the hd marker.
(org-clock-cancel): Reset markers.
* org.el (org-clock-hd-marker): New marker.
* org-faces.el (org-agenda-clocking): New face.
* org-agenda.el (org-agenda-mark-clocking-task): New function.
(org-finalize-agenda): call `org-agenda-mark-clocking-task'.
* org.el (org-modules): Add org-track.el.
* org-agenda.el (org-agenda-bulk-marked-p): New function.
(org-agenda-bulk-mark, org-agenda-bulk-unmark): Use
`org-agenda-bulk-marked-p'.
(org-agenda-bulk-toggle): New command.
2009-09-02 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-move-subtree-down): Hide subtree if it was folded,
not just the body.
* org-remember.el (org-remember-finalize): Avoid buffer-modified
messages.
author | Carsten Dominik <dominik@science.uva.nl> |
---|---|
date | Wed, 02 Sep 2009 12:59:52 +0000 |
parents | e038c1a8307c |
children | 1d1d5d9bd884 |
line wrap: on
line source
/* Cursor motion calculation definitions for GNU Emacs Copyright (C) 1985, 1989, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 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 3 of the License, 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. If not, see <http://www.gnu.org/licenses/>. */ /* Holds the minimum and maximum costs for the parametrized capabilities. */ struct parmcap { int mincost, maxcost; }; /* This structure holds everything needed to do cursor motion except the pad character (PC) and the output speed of the terminal (ospeed), which termcap wants in global variables. */ struct cm { /* Cursor position. -1 in *both* variables means the cursor position is unknown, in order to force absolute cursor motion. */ int cm_curY; /* Current row */ int cm_curX; /* Current column */ /* Capabilities from termcap */ char *cm_up; /* up (up) */ char *cm_down; /* down (do) */ char *cm_left; /* left (le) */ char *cm_right; /* right (nd) */ char *cm_home; /* home (ho) */ char *cm_cr; /* carriage return (cr) */ char *cm_ll; /* last line (ll) */ char *cm_tab; /* tab (ta) */ char *cm_backtab; /* backtab (bt) */ char *cm_abs; /* absolute (cm) */ char *cm_habs; /* horizontal absolute (ch) */ char *cm_vabs; /* vertical absolute (cv) */ #if 0 char *cm_ds; /* "don't send" string (ds) */ #endif char *cm_multiup; /* multiple up (UP) */ char *cm_multidown; /* multiple down (DO) */ char *cm_multileft; /* multiple left (LE) */ char *cm_multiright; /* multiple right (RI) */ int cm_cols; /* number of cols on screen (co) */ int cm_rows; /* number of rows on screen (li) */ int cm_tabwidth; /* tab width (it) */ unsigned int cm_autowrap:1; /* autowrap flag (am) */ unsigned int cm_magicwrap:1; /* VT-100: cursor stays in last col but will cm_wrap if next char is printing (xn) */ unsigned int cm_usetabs:1; /* if set, use tabs */ unsigned int cm_losewrap:1; /* if reach right margin, forget cursor location */ unsigned int cm_autolf:1; /* \r performs a \r\n (rn) */ /* Parametrized capabilities. This needs to be a struct since the costs are accessed through pointers. */ #if 0 struct parmcap cc_abs; /* absolute (cm) */ struct parmcap cc_habs; /* horizontal absolute (ch) */ struct parmcap cc_vabs; /* vertical absolute (cv) */ struct parmcap cc_multiup; /* multiple up (UP) */ struct parmcap cc_multidown; /* multiple down (DO) */ struct parmcap cc_multileft; /* multiple left (LE) */ struct parmcap cc_multiright; /* multiple right (RI) */ #endif /* Costs for the non-parametrized capabilities */ int cc_up; /* cost for up */ int cc_down; /* etc. */ int cc_left; int cc_right; int cc_home; int cc_cr; int cc_ll; int cc_tab; int cc_backtab; /* These are temporary, until the code is installed to use the struct parmcap fields above. */ int cc_abs; int cc_habs; int cc_vabs; }; extern char PC; /* Pad character */ /* Shorthand */ #ifndef NoCMShortHand #define curY(tty) (tty)->Wcm->cm_curY #define curX(tty) (tty)->Wcm->cm_curX #define Up(tty) (tty)->Wcm->cm_up #define Down(tty) (tty)->Wcm->cm_down #define Left(tty) (tty)->Wcm->cm_left #define Right(tty) (tty)->Wcm->cm_right #define Tab(tty) (tty)->Wcm->cm_tab #define BackTab(tty) (tty)->Wcm->cm_backtab #define TabWidth(tty) (tty)->Wcm->cm_tabwidth #define CR(tty) (tty)->Wcm->cm_cr #define Home(tty) (tty)->Wcm->cm_home #define LastLine(tty) (tty)->Wcm->cm_ll #define AbsPosition(tty) (tty)->Wcm->cm_abs #define ColPosition(tty) (tty)->Wcm->cm_habs #define RowPosition(tty) (tty)->Wcm->cm_vabs #define MultiUp(tty) (tty)->Wcm->cm_multiup #define MultiDown(tty) (tty)->Wcm->cm_multidown #define MultiLeft(tty) (tty)->Wcm->cm_multileft #define MultiRight(tty) (tty)->Wcm->cm_multiright #define AutoWrap(tty) (tty)->Wcm->cm_autowrap #define MagicWrap(tty) (tty)->Wcm->cm_magicwrap #define UseTabs(tty) (tty)->Wcm->cm_usetabs #define FrameRows(tty) (tty)->Wcm->cm_rows #define FrameCols(tty) (tty)->Wcm->cm_cols #define UpCost(tty) (tty)->Wcm->cc_up #define DownCost(tty) (tty)->Wcm->cc_down #define LeftCost(tty) (tty)->Wcm->cc_left #define RightCost(tty) (tty)->Wcm->cc_right #define HomeCost(tty) (tty)->Wcm->cc_home #define CRCost(tty) (tty)->Wcm->cc_cr #define LastLineCost(tty) (tty)->Wcm->cc_ll #define TabCost(tty) (tty)->Wcm->cc_tab #define BackTabCost(tty) (tty)->Wcm->cc_backtab #define AbsPositionCost(tty) (tty)->Wcm->cc_abs #define ColPositionCost(tty) (tty)->Wcm->cc_habs #define RowPositionCost(tty) (tty)->Wcm->cc_vabs #define MultiUpCost(tty) (tty)->Wcm->cc_multiup #define MultiDownCost(tty) (tty)->Wcm->cc_multidown #define MultiLeftCost(tty) (tty)->Wcm->cc_multileft #define MultiRightCost(tty) (tty)->Wcm->cc_multiright #endif #define cmat(tty,row,col) (curY(tty) = (row), curX(tty) = (col)) #define cmplus(tty,n) \ { \ if ((curX (tty) += (n)) >= FrameCols (tty) && !MagicWrap (tty)) \ { \ if ((tty)->Wcm->cm_losewrap) losecursor (tty); \ else if (AutoWrap (tty)) curX (tty) = 0, curY (tty)++; \ else curX (tty)--; \ } \ } #define losecursor(tty) (curX(tty) = -1, curY(tty) = -1) extern int cost; extern int evalcost (); #define emacs_tputs(tty, str, affcnt, putc) (current_tty = (tty), tputs (str, affcnt, putc)) extern struct tty_display_info *current_tty; extern void cmcheckmagic P_ ((struct tty_display_info *)); extern int cmputc P_ ((int)); extern void cmcostinit P_ ((struct tty_display_info *)); extern void cmgoto P_ ((struct tty_display_info *, int, int)); extern void Wcm_clear P_ ((struct tty_display_info *)); extern int Wcm_init P_ ((struct tty_display_info *)); /* arch-tag: acc1535a-7136-49d6-b22d-9bc85702251b (do not change this comment) */