Mercurial > emacs
view lisp/ps-def.el @ 92870:8f17f65dd575
* textmodes/org.el (org-ctrl-c-star): Implement a missing branch
in the decision tree.
(org-select-remember-template): Cleaned the code.
(org-prepare-dblock): Added the extra :content parameter.
(org-write-agenda): New output type ".ics" files.
(org-write-agenda): Call `org-icalendar-verify-function', both for
time stamps and for TODO entries.
(org-agenda-collect-markers, org-create-marker-find-array)
(org-check-agenda-marker-table): New functions.
(org-agenda-marker-table): New variable.
(org-export-as-html): Revert the change that killed the html
buffer. Side effects first need to be studied carefully.
(org-get-tags-at): Fix the structure of the condition-case
statement.
(org-ts-regexp0, org-repeat-re, org-display-custom-time)
(org-timestamp-change): Fix regulear expressions to swallow the
extra character for repeat-shift control.
(org-auto-repeat-maybe): Implement the new repeater mechanisms.
(org-get-legal-level): Aliased to `org-get-valid-level'.
(org-dblock-write:clocktable): Added a :link parameter, linking
headlines to their location in the Org agenda files.
(org-get-tags-at): Bugfix: prevent `org-back-to-heading' from
throwing an error when getting tags before headlines.
(org-timestamp-change, org-modify-ts-extra)
(org-ts-regexp1): Fix timestamp editing.
(org-agenda-custom-commands-local-options): New constant.
(org-agenda-custom-commands): Use
`org-agenda-custom-commands-local-options' to improve customize
type. "htmlize": Removed hack to fix face problem with htmlize,
it no longer seem necessary.
(org-follow-link-hook): New hook.
(org-agenda-custom-commands): Added "Component" as a tag for each
item in a command serie.
(org-open-at-point): Run `org-follow-link-hook'.
(org-agenda-schedule): Bugfix: don't display marker type when it
is `nil'.
(org-store-link): org-irc required.
(org-set-regexps-and-options): Parse the new logging options.
(org-extract-log-state-settings): New function.
(org-todo): Handle the new ways of recording state change stuff.
(org-local-logging): New function.
(org-columns-open-link): Fixed bug with opening link in column
view.
(org-local-logging): New function
(org-todo): Make sure that LOGGING properties are honoured.
(org-todo-keywords): Improve docstring.
(org-startup-options): Cleanup startup options.
(org-set-regexps-and-options): Process the "!" markers.
(org-todo): Respect the new logging stuff.
(org-log-note-how): New variable.
(org-add-log-maybe): New parameter HOW that defines how logging
should be done and also overrides PURPOSE. Add a docstring.
(org-add-log-note): Check if we really need to ask for a note.
(org-get-current-options): Digest the new keyword.
(org-agenda-reset-markers): Renamed from
`org-agenda-maybe-reset-markers'. FORCE argument removed.
(org-diary, org-agenda-quit, org-prepare-agenda): Call the renamed
function, without force argument.
(org-buffer-property-keys): Bind local variables s and p.
(org-make-tags-matcher): Allow "" to match an empty or
non-existent property value.
(org-export-as-html): Join unsorted lists when they directly
follow each other. Such lists may be created by headlines that
are converted to lists.
(org-nofm-to-completion): New function.
(org-export-as-html): Use :html-extension instead of
org-export-html-extension.
(org-store-link): Support for links from `rmail-summary-mode'.
(org-columns-new, org-complete, org-set-property): Set the
`include-columns' argument in the call to
`org-buffer-property-keys'.
(org-buffer-property-keys): New argument `include-columns', to
include properties expected by any of the COLUMS formats in the
current buffer.
(org-cleaned-string-for-export): Get rid of drawers first, so that
they will be removed also in the text before the first headline.
(org-clock-report): Show the clocktable when found.
(org-refile): Fix positioning bug when `org-reverse-note-order' is
nil.
(org-version): With prefix argument, insert `org-version' at
point.
(org-agenda-goto): Recenter the window after finding the target
location, to make sure the correct position will be displayed.
(org-agenda-get-deadlines): Don't scale priority with the warning
period.
(org-insert-heading): Don't break line in the middle of the line.
(org-agenda-get-deadlines): Allow `org-deadline-warning-days' to
be 0.
(org-update-checkbox-count): Revamped to deal with hierarchical
beckboxes. This was a patch from Miguel A. Figueroa-Villanueva.
(org-remove-timestamp-with-keyword): New function.
(org-schedule, org-deadline): Use
`org-remove-timestamp-with-keyword' to make sure all such time
stamps are removed.
(org-mode): Support for `align'.
(org-agenda-get-deadlines): Make sure priorities increase as the
due date approaches and is passed.
(org-remember-apply-template): Fixed problem with tags that
contain "_" or "@".
(org-make-link-regexps): Improve the regular expression for plain
links.
(org-agenda-get-closed): List each clocking entry.
(org-set-tags): Only tabify before tags if indent-tabs-mode is t.
(org-special-ctrl-k): New option.
(org-kill-line): New function.
(org-archive-all-done): Fixed incorrect number of stars in regexp.
(org-refile-get-location): New function.
(org-refile-goto-last-stored): New function.
(org-global-tags-completion-table): Add the value of org-tag-alist
in each buffer, to make sure that also unused tags will be
available for completion.
(org-columns-edit-value)
(org-columns-next-allowed-value): Only update if not in agenda.
(org-clocktable-steps): New function.
(org-dblock-write:clocktable): Call `org-clocktable-steps'.
(org-archive-subtree): Add the outline tree context as a property.
(org-closest-date): New optional argument `prefer'.
(org-goto-auto-isearch): New option.
(org-goto-map, org-get-location): Implement auto-isearch.
(org-goto-local-auto-isearch-map): New variable.
(org-goto-local-search-forward-headings)
(org-goto-local-auto-isearch): New functions
author | Carsten Dominik <dominik@science.uva.nl> |
---|---|
date | Thu, 13 Mar 2008 08:54:11 +0000 |
parents | 85b224f48b52 |
children | 46345beb0bac |
line wrap: on
line source
;;; ps-def.el --- XEmacs and Emacs definitions for ps-print ;; Copyright (C) 2007, 2008 Free Software Foundation, Inc. ;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br> ;; Kenichi Handa <handa@m17n.org> (multi-byte characters) ;; Maintainer: Kenichi Handa <handa@m17n.org> (multi-byte characters) ;; Vinicius Jose Latorre <viniciusjl@ig.com.br> ;; Keywords: wp, print, PostScript ;; X-URL: http://www.emacswiki.org/cgi-bin/wiki/ViniciusJoseLatorre ;; 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, 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. ;;; Commentary: ;; See ps-print.el for documentation. ;;; Code: (eval-and-compile (unless (fboundp 'declare-function) (defmacro declare-function (&rest r)))) (declare-function ps-plot-with-face "ps-print" (from to face)) (declare-function ps-plot-string "ps-print" (string)) (defvar ps-bold-faces) ; in ps-print.el (defvar ps-italic-faces) ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; XEmacs Definitions (cond ((featurep 'xemacs) ; XEmacs ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ps-bdf (defvar installation-directory nil) (defvar coding-system-for-read) ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ps-mule (defvar leading-code-private-22 157) (or (fboundp 'charset-bytes) (defun charset-bytes (charset) 1)) ; ascii (or (fboundp 'charset-dimension) (defun charset-dimension (charset) 1)) ; ascii (or (fboundp 'charset-id) (defun charset-id (charset) 0)) ; ascii (or (fboundp 'charset-width) (defun charset-width (charset) 1)) ; ascii (or (fboundp 'find-charset-region) (defun find-charset-region (beg end &optional table) (list 'ascii))) (or (fboundp 'char-width) (defun char-width (char) 1)) ; ascii (or (fboundp 'chars-in-region) (defun chars-in-region (beg end) (- (max beg end) (min beg end)))) (or (fboundp 'forward-point) (defun forward-point (arg) (save-excursion (let ((count (abs arg)) (step (if (zerop arg) 0 (/ arg arg)))) (while (and (> count 0) (< (point-min) (point)) (< (point) (point-max))) (forward-char step) (setq count (1- count))) (+ (point) (* count step)))))) (or (fboundp 'decompose-composite-char) (defun decompose-composite-char (char &optional type with-composition-rule) nil)) (or (fboundp 'encode-coding-string) (defun encode-coding-string (string coding-system &optional nocopy) (if nocopy string (copy-sequence string)))) (or (fboundp 'coding-system-p) (defun coding-system-p (obj) nil)) (or (fboundp 'ccl-execute-on-string) (defun ccl-execute-on-string (ccl-prog status str &optional contin unibyte-p) str)) (or (fboundp 'define-ccl-program) (defmacro define-ccl-program (name ccl-program &optional doc) `(defconst ,name nil ,doc))) (or (fboundp 'multibyte-string-p) (defun multibyte-string-p (str) (let ((len (length str)) (i 0) multibyte) (while (and (< i len) (not (setq multibyte (> (aref str i) 255)))) (setq i (1+ i))) multibyte))) (or (fboundp 'string-make-multibyte) (defalias 'string-make-multibyte 'copy-sequence)) (or (fboundp 'encode-char) (defun encode-char (ch ccs) ch)) ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ps-print ;; GNU Emacs (or (fboundp 'line-beginning-position) (defun line-beginning-position (&optional n) (save-excursion (and n (/= n 1) (forward-line (1- n))) (beginning-of-line) (point)))) ;; GNU Emacs (or (fboundp 'find-composition) (defalias 'find-composition 'ignore)) (defun ps-xemacs-color-name (color) (if (color-specifier-p color) (color-name color) color)) (defalias 'ps-mark-active-p 'region-active-p) (defun ps-face-foreground-name (face) (ps-xemacs-color-name (face-foreground face))) (defun ps-face-background-name (face) (ps-xemacs-color-name (face-background face))) (defalias 'ps-frame-parameter 'frame-property) ;; Return t if the device (which can be changed during an emacs session) ;; can handle colors. ;; XEmacs change: Need to check for emacs-major-version too. (if (or (> emacs-major-version 19) (and (= emacs-major-version 19) (>= emacs-minor-version 12))) ;; xemacs >= 19.12 (defun ps-color-device () (eq (device-class) 'color)) ;; xemacs < 19.12 (setq ps-print-color-p nil) (defalias 'ps-color-device 'ignore)) (defun ps-mapper (extent list) (nconc list (list (list (extent-start-position extent) 'push extent) (list (extent-end-position extent) 'pull extent))) nil) (defun ps-extent-sorter (a b) (< (extent-priority a) (extent-priority b))) (defun ps-xemacs-face-kind-p (face kind kind-regex) (let* ((frame-font (or (face-font-instance face) (face-font-instance 'default))) (kind-cons (and frame-font (assq kind (font-instance-properties frame-font)))) (kind-spec (cdr-safe kind-cons)) (case-fold-search t)) (and kind-spec (string-match kind-regex kind-spec)))) ;; to avoid XEmacs compilation gripes (defvar coding-system-for-write) (defvar buffer-file-coding-system) (and (fboundp 'find-coding-system) (or (funcall 'find-coding-system 'raw-text-unix) (funcall 'copy-coding-system 'no-conversion-unix 'raw-text-unix))) (defun ps-color-values (x-color) (let ((color (ps-xemacs-color-name x-color))) (cond ((fboundp 'x-color-values) (funcall 'x-color-values color)) ((and (fboundp 'color-instance-rgb-components) (ps-color-device)) (funcall 'color-instance-rgb-components (if (color-instance-p x-color) x-color (make-color-instance color)))) (t (error "No available function to determine X color values"))))) (defun ps-face-bold-p (face) (or (ps-xemacs-face-kind-p face 'WEIGHT_NAME "bold\\|demibold") (memq face ps-bold-faces))) ; Kludge-compatible (defun ps-face-italic-p (face) (or (ps-xemacs-face-kind-p face 'ANGLE_NAME "i\\|o") (ps-xemacs-face-kind-p face 'SLANT "i\\|o") (memq face ps-italic-faces))) ; Kludge-compatible (defalias 'ps-face-strikeout-p 'ignore) (defalias 'ps-face-overline-p 'ignore) (defalias 'ps-face-box-p 'ignore) ;; XEmacs will have to make do with %s (princ) for floats. (defvar ps-color-format "%s %s %s") (defvar ps-float-format "%s ") (defun ps-generate-postscript-with-faces1 (from to) ;; Generate some PostScript. (let ((face 'default) (position to) ;; XEmacs ;; Build the list of extents... (a (cons 'dummy nil)) record type extent extent-list) (map-extents 'ps-mapper nil from to a) (setq a (sort (cdr a) 'car-less-than-car) extent-list nil) ;; Loop through the extents... (while a (setq record (car a) position (car record) record (cdr record) type (car record) record (cdr record) extent (car record)) ;; Plot up to this record. ;; XEmacs 19.12: for some reason, we're getting into a ;; situation in which some of the records have ;; positions less than 'from'. Since we've narrowed ;; the buffer, this'll generate errors. This is a hack, ;; but don't call ps-plot-with-face unless from > point-min. (and (>= from (point-min)) (ps-plot-with-face from (min position (point-max)) face)) (cond ((eq type 'push) (and (extent-face extent) (setq extent-list (sort (cons extent extent-list) 'ps-extent-sorter)))) ((eq type 'pull) (setq extent-list (sort (delq extent extent-list) 'ps-extent-sorter)))) (setq face (if extent-list (extent-face (car extent-list)) 'default) from position a (cdr a))) (ps-plot-with-face from to face))) ) (t ; Emacs ;; Do nothing )) ; end cond featurep ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Emacs Definitions (cond ((featurep 'xemacs) ; XEmacs ;; Do nothing ) (t ; Emacs ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ps-print (defun ps-mark-active-p () mark-active) (defun ps-face-foreground-name (face) (face-foreground face nil t)) (defun ps-face-background-name (face) (face-background face nil t)) (defalias 'ps-frame-parameter 'frame-parameter) ;; Return t if the device (which can be changed during an emacs session) can ;; handle colors. This function is not yet implemented for GNU emacs. (defun ps-color-device () (if (fboundp 'color-values) (funcall 'color-values "Green") t)) (defun ps-color-values (x-color) (cond ((fboundp 'color-values) (funcall 'color-values x-color)) ((fboundp 'x-color-values) (funcall 'x-color-values x-color)) (t (error "No available function to determine X color values")))) (defun ps-face-bold-p (face) (or (face-bold-p face) (memq face ps-bold-faces))) (defun ps-face-italic-p (face) (or (face-italic-p face) (memq face ps-italic-faces))) (defun ps-face-strikeout-p (face) (eq (face-attribute face :strike-through) t)) (defun ps-face-overline-p (face) (eq (face-attribute face :overline) t)) (defun ps-face-box-p (face) (not (memq (face-attribute face :box) '(nil unspecified)))) ;; Emacs understands the %f format; we'll use it to limit color RGB values ;; to three decimals to cut down some on the size of the PostScript output. (defvar ps-color-format "%0.3f %0.3f %0.3f") (defvar ps-float-format "%0.3f ") (defun ps-generate-postscript-with-faces1 (from to) ;; Generate some PostScript. (let ((face 'default) (position to) ;; Emacs (property-change from) (overlay-change from) (save-buffer-invisibility-spec buffer-invisibility-spec) (buffer-invisibility-spec nil) before-string after-string) (while (< from to) (and (< property-change to) ; Don't search for property change ; unless previous search succeeded. (setq property-change (next-property-change from nil to))) (and (< overlay-change to) ; Don't search for overlay change ; unless previous search succeeded. (setq overlay-change (min (next-overlay-change from) to))) (setq position (min property-change overlay-change) before-string nil after-string nil) ;; The code below is not quite correct, ;; because a non-nil overlay invisible property ;; which is inactive according to the current value ;; of buffer-invisibility-spec nonetheless overrides ;; a face text property. (setq face (cond ((let ((prop (get-text-property from 'invisible))) ;; Decide whether this invisible property ;; really makes the text invisible. (if (eq save-buffer-invisibility-spec t) (not (null prop)) (or (memq prop save-buffer-invisibility-spec) (assq prop save-buffer-invisibility-spec)))) 'emacs--invisible--face) ((get-text-property from 'face)) (t 'default))) (let ((overlays (overlays-at from)) (face-priority -1)) ; text-property (while (and overlays (not (eq face 'emacs--invisible--face))) (let* ((overlay (car overlays)) (overlay-invisible (overlay-get overlay 'invisible)) (overlay-priority (or (overlay-get overlay 'priority) 0))) (and (> overlay-priority face-priority) (setq before-string (or (overlay-get overlay 'before-string) before-string) after-string (or (and (<= (overlay-end overlay) position) (overlay-get overlay 'after-string)) after-string) face-priority overlay-priority face (cond ((if (eq save-buffer-invisibility-spec t) (not (null overlay-invisible)) (or (memq overlay-invisible save-buffer-invisibility-spec) (assq overlay-invisible save-buffer-invisibility-spec))) 'emacs--invisible--face) ((overlay-get overlay 'face)) (t face) )))) (setq overlays (cdr overlays)))) ;; Plot up to this record. (and before-string (ps-plot-string before-string)) (ps-plot-with-face from position face) (and after-string (ps-plot-string after-string)) (setq from position)) (ps-plot-with-face from to face))) )) ; end cond featurep ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (provide 'ps-def) ;; arch-tag: 4edde45b-af10-4685-b8ee-7cd0f951095a ;;; ps-def.el ends here