+2012-10-07 Jan Djärv <jan.h.d@swipnet.se>
+
+ * configure.ac: Check that OSX is 10.4 or newer.
+
+2012-10-07 Paul Eggert <eggert@cs.ucla.edu>
+
+ Improve sys_siglist detection.
+ * configure.ac (sys_siglist): Look for its decl in <signal.h>.
+ Otherwise, it's not found in either Fedora 17 or Solaris 11.
+
2012-10-04 Paul Eggert <eggert@cs.ucla.edu>
Merge from gnulib, incorporating:
+2012-10-07 Glenn Morris <rgm@gnu.org>
+
+ * admin.el (cusver-new-version): Set default.
+ (cusver-check): Improve interactive argument reading.
+
+2012-10-06 Glenn Morris <rgm@gnu.org>
+
+ * admin.el (cusver-new-version): New variable.
+ (cusver-scan): Check if containing group has a :version.
+ (cusver-check): Add VERSION argument.
+
+2012-10-01 David Engster <deng@randomsample.de>
+
+ * grammars/bovine-grammar.el:
+ * grammars/wisent-grammar.el: Move to lisp directory.
+
2012-10-01 David Engster <deng@randomsample.de>
* grammars/bovine-grammar.el (bovine--grammar-newstyle-unquote):
))
"{}" "+"))
-;; TODO if a defgroup with a version tag, apply to all customs in that
-;; group (eg for new files).
+(defvar cusver-new-version (format "%s.%s" emacs-major-version
+ (1+ emacs-minor-version))
+ "Version number that new defcustoms should have.")
+
+;; TODO do something about renamed variables with aliases to the old name?
+;; Scan old cus-start.el to find variables moved from C to lisp?
(defun cusver-scan (file &optional old)
"Scan FILE for `defcustom' calls.
Return a list with elements of the form (VAR . VER),
If optional argument OLD is non-nil, also scan for defvars."
(let ((m (format "Scanning %s..." file))
(re (format "^[ \t]*\\((def%s\\)[ \t\n]"
- (if old "\\(?:custom\\|var\\)" "custom")))
- alist var ver form)
+ (if old "\\(custom\\|var\\)" "\\(custom\\|group\\)")))
+ alist var ver form glist grp)
(message "%s" m)
(with-temp-buffer
(insert-file-contents file)
(while (re-search-forward re nil t)
(goto-char (match-beginning 1))
(if (and (setq form (ignore-errors (read (current-buffer))))
- (setq var (car-safe (cdr-safe form)))
+ (setq var (car-safe (cdr-safe form)))
;; Exclude macros, eg (defcustom ,varname ...).
(symbolp var))
- (setq ver (car (cdr-safe (memq :version form)))
- alist (cons (cons var ver) alist))
+ (progn
+ (setq ver (car (cdr-safe (memq :version form))))
+ (if (equal "group" (match-string 2))
+ ;; Group :version could be old.
+ (if (equal ver cusver-new-version)
+ (setq glist (cons (cons var ver) glist)))
+ ;; If it specifies a group and the whole group has a
+ ;; version. use that.
+ (unless ver
+ (setq grp (car (cdr-safe (memq :group form))))
+ (and grp
+ (setq grp (car (cdr-safe grp))) ; (quote foo) -> foo
+ (setq ver (assq grp glist))))
+ (setq alist (cons (cons var ver) alist))))
(if form (message "Malformed defcustom: `%s'" form)))))
(message "%sdone" m)
alist))
;; TODO handle renamed things with aliases to the old names.
;; What to do about new files? Does everything in there need a :version,
;; or eg just the defgroup?
-(defun cusver-check (newdir olddir)
+(defun cusver-check (newdir olddir version)
"Check that defcustoms have :version tags where needed.
NEWDIR is the current lisp/ directory, OLDDIR is that from the previous
release. A defcustom that is only in NEWDIR should have a :version
Note that a :version tag should also be added if the value of a defcustom
changes (in a non-trivial way). This function does not check for that."
- (interactive "DNew Lisp directory: \nDOld Lisp directory: ")
+ (interactive (list (read-directory-name "New Lisp directory: ")
+ (read-directory-name "Old Lisp directory: ")
+ (number-to-string
+ (read-number "New version number: "
+ (string-to-number cusver-new-version)))))
(or (file-directory-p (setq newdir (expand-file-name newdir)))
(error "Directory `%s' not found" newdir))
(or (file-directory-p (setq olddir (expand-file-name olddir)))
(error "Directory `%s' not found" olddir))
+ (setq cusver-new-version version)
(let* ((newfiles (progn (message "Finding new files with defcustoms...")
(cusver-find-files newdir)))
(oldfiles (progn (message "Finding old files with defcustoms...")
lisp/semantic/wisent/ directories. You can run the parser generators
with
-emacs -batch -Q -l bovine-grammar.el -f bovine-make-parsers
-emacs -batch -Q -l wisent-grammar.el -f wisent-make-parsers
+emacs -batch -Q -l semantic/bovine/grammar -f bovine-make-parsers
+emacs -batch -Q -l semantic/wisent/grammar -f wisent-make-parsers
Currently, the parser files in lisp/ are not generated directly from
these grammar files when making Emacs. This state of affairs, and the
fi
-ac_fn_c_check_decl "$LINENO" "sys_siglist" "ac_cv_have_decl_sys_siglist" "$ac_includes_default"
+ac_fn_c_check_decl "$LINENO" "sys_siglist" "ac_cv_have_decl_sys_siglist" "#include <signal.h>
+
+"
if test "x$ac_cv_have_decl_sys_siglist" = x""yes; then :
ac_have_decl=1
else
if test $ac_cv_have_decl_sys_siglist != yes; then
# For Tru64, at least:
- ac_fn_c_check_decl "$LINENO" "__sys_siglist" "ac_cv_have_decl___sys_siglist" "$ac_includes_default"
+ ac_fn_c_check_decl "$LINENO" "__sys_siglist" "ac_cv_have_decl___sys_siglist" "#include <signal.h>
+
+"
if test "x$ac_cv_have_decl___sys_siglist" = x""yes; then :
ac_have_decl=1
else
fi
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <AppKit/AppKit.h>
+int
+main ()
+{
+
+#ifdef MAC_OS_X_VERSION_MAX_ALLOWED
+#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1040
+ ; /* OK */
+#else
+#error "OSX 10.4 or newer required"
+#endif
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ns_osx_have_104=yes
+else
+ ns_osx_have_104=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <Foundation/NSObjCRuntime.h>
ns_have_nsinteger=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ if test $ns_osx_have_104 = no; then
+ as_fn_error "\`OSX 10.4 or newer is required'" "$LINENO" 5;
+ fi
if test $ns_have_nsinteger = yes; then
$as_echo "#define NS_HAVE_NSINTEGER 1" >>confdefs.h
dnl it doesn't define `bool'.
AC_CHECK_HEADERS(term.h, , , -)
AC_HEADER_TIME
-AC_CHECK_DECLS([sys_siglist])
+AC_CHECK_DECLS([sys_siglist], [], [], [[#include <signal.h>
+ ]])
if test $ac_cv_have_decl_sys_siglist != yes; then
# For Tru64, at least:
- AC_CHECK_DECLS([__sys_siglist])
+ AC_CHECK_DECLS([__sys_siglist], [], [], [[#include <signal.h>
+ ]])
if test $ac_cv_have_decl___sys_siglist = yes; then
AC_DEFINE(sys_siglist, __sys_siglist,
[Define to any substitute for sys_siglist.])
AC_CHECK_HEADER([AppKit/AppKit.h], [HAVE_NS=yes],
[AC_MSG_ERROR([`--with-ns' was specified, but the include
files are missing or cannot be compiled.])])
+
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AppKit/AppKit.h>],
+ [
+#ifdef MAC_OS_X_VERSION_MAX_ALLOWED
+#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1040
+ ; /* OK */
+#else
+#error "OSX 10.4 or newer required"
+#endif
+#endif
+ ])],
+ ns_osx_have_104=yes,
+ ns_osx_have_104=no)
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <Foundation/NSObjCRuntime.h>],
[NSInteger i;])],
ns_have_nsinteger=yes,
ns_have_nsinteger=no)
+ if test $ns_osx_have_104 = no; then
+ AC_MSG_ERROR([`OSX 10.4 or newer is required']);
+ fi
if test $ns_have_nsinteger = yes; then
AC_DEFINE(NS_HAVE_NSINTEGER, 1, [Define to 1 if `NSInteger' is defined.])
fi
+2012-10-06 Glenn Morris <rgm@gnu.org>
+
+ * calendar.texi (Writing Calendar Files): Tweak week descriptions.
+ Mention cal-tex-cursor-week2-summary.
+
+2012-10-06 Chong Yidong <cyd@gnu.org>
+
+ * mini.texi (Passwords): Fix typo.
+
2012-10-02 Glenn Morris <rgm@gnu.org>
* maintaining.texi (VC Directory Commands):
Generate a one-day calendar
(@code{cal-tex-cursor-day}).
@item t w 1
-Generate a one-page calendar for one week
+Generate a one-page calendar for one week, with hours
(@code{cal-tex-cursor-week}).
@item t w 2
-Generate a two-page calendar for one week
+Generate a two-page calendar for one week, with hours
(@code{cal-tex-cursor-week2}).
@item t w 3
-Generate an ISO-style calendar for one week
+Generate an ISO-style calendar for one week, without hours
(@code{cal-tex-cursor-week-iso}).
@item t w 4
-Generate a calendar for one Monday-starting week
+Generate a calendar for one Monday-starting week, with hours
(@code{cal-tex-cursor-week-monday}).
+@item t w W
+Generate a two-page calendar for one week, without hours
+(@code{cal-tex-cursor-week2-summary}).
@item t f w
Generate a Filofax-style two-weeks-at-a-glance calendar
(@code{cal-tex-cursor-filofax-2week}).
with Emacs until you have submitted the password.
While you are typing the password, you may press @key{DEL} to delete
-backwards, removing the last character entered. @key{C-u} deletes
+backwards, removing the last character entered. @kbd{C-u} deletes
everything you have typed so far. @kbd{C-g} quits the password prompt
(@pxref{Quitting}). @kbd{C-y} inserts the current kill into the
password (@pxref{Killing}). You may type either @key{RET} or
+2012-10-07 Jan Djärv <jan.h.d@swipnet.se>
+
+ * NEWS (NextStep/OSX port changes): OSX 10.4 or newer is required.
+
2012-10-05 Douglas Lewan <d_lewan2000@yahoo.com> (tiny change)
* tutorials/TUTORIAL.pt_BR: Fix typo. (Bug#12557)
** NextStep/OSX port changes.
---
+*** OSX 10.4 or newer is required to build Emacs.
+---
*** Fullscreen and frame parameter fullscreen is supported.
---
*** A file dialog is used when open/saved is done from the menu/toolbar.
*** You can customize the header text that appears above each calendar month.
See the variable `calendar-month-header'.
++++
+*** New LaTeX calendar style, produced by `cal-tex-cursor-week2-summary'.
+
*** The calendars produced by cal-html include holidays.
Customize cal-html-holidays to change this.
* international/mule-conf.el (compound-text-with-extensions): Add
:mime-charset property as x-ctext.
+2012-10-07 Stefan Merten <smerten@oekonux.de>
+
+ * textmodes/rst.el (rst-new-adornment-down, rst-indent-field)
+ (rst-indent-literal-normal, rst-indent-literal-minimized)
+ (rst-indent-comment): Correct :version tag.
+
+2012-10-07 Glenn Morris <rgm@gnu.org>
+
+ * mail/rmailmm.el (rmail-mime-process-multipart):
+ Do not confuse a multipart message with an epilogue
+ with a "truncated" one; fixes 2011-06-27 change. (Bug#10101)
+
+2012-10-07 Fabián Ezequiel Gallina <fgallina@cuca>
+
+ Fix shell output retrieval and comint-prompt-regexp init.
+ * progmodes/python.el (inferior-python-mode):
+ (python-shell-make-comint): Fix initialization of
+ comint-prompt-regexp from copied file local variables.
+ (python-shell-fetched-lines): Remove var.
+ (python-shell-output-filter-in-progress): Rename from
+ python-shell-fetch-lines-in-progress.
+ (python-shell-output-filter-buffer): Rename from
+ python-shell-fetch-lines-string.
+ (python-shell-fetch-lines-filter): Delete function.
+ (python-shell-output-filter): New function.
+ (python-shell-send-string-no-output): Use them.
+
+2012-10-07 Glenn Morris <rgm@gnu.org>
+
+ * hi-lock.el (hi-lock-process-phrase):
+ Try to make it less fragile. (Bug#7161)
+
+ * hi-lock.el (hi-lock-face-phrase-buffer): Doc fix.
+
+2012-10-06 Glenn Morris <rgm@gnu.org>
+
+ * ehelp.el (electric-help-mode): Use help-mode rather than
+ non-existent mode `help'.
+ (electric-help-map): Use button-buffer-map. (Bug#10917)
+
+ * textmodes/reftex-vars.el (reftex-create-bibtex-header)
+ (reftex-create-bibtex-footer): Fix custom types.
+
+ * progmodes/sh-script.el (sh-indent-after-continuation):
+ Add explicit :group.
+
+ * textmodes/rst.el (rst-preferred-decorations)
+ (rst-shift-basic-offset): Clarify obsolescence versions.
+
+ * profiler.el (profiler): Add missing group :version tag.
+ * avoid.el (mouse-avoidance-banish-position):
+ * proced.el (proced-renice-command):
+ * calc/calc.el (calc-ensure-consistent-units):
+ * calendar/icalendar.el (icalendar-import-format-uid):
+ * net/tramp.el (tramp-save-ad-hoc-proxies):
+ * progmodes/bug-reference.el (bug-reference-bug-regexp):
+ * progmodes/flymake.el (flymake-error-bitmap)
+ (flymake-warning-bitmap, flymake-fringe-indicator-position):
+ * progmodes/sh-script.el (sh-indent-after-continuation):
+ * progmodes/verilog-mode.el (verilog-auto-template-warn-unused)
+ (verilog-before-save-font-hook, verilog-after-save-font-hook):
+ * progmodes/vhdl-mode.el (vhdl-makefile-default-targets)
+ (vhdl-array-index-record-field-in-sensitivity-list)
+ (vhdl-indent-comment-like-next-code-line):
+ * textmodes/reftex-vars.el (reftex-ref-style-alist)
+ (reftex-ref-macro-prompt, reftex-ref-style-default-list)
+ (reftex-cite-key-separator, reftex-create-bibtex-header)
+ (reftex-create-bibtex-footer):
+ * textmodes/rst.el (rst-new-adornment-down, rst-indent-field)
+ (rst-indent-literal-normal, rst-indent-literal-minimized)
+ (rst-indent-comment): Add missing custom :version tags.
+
+ * calendar/timeclock.el (timeclock-modeline-display):
+ Add missing obsolete alias for renamed user option.
+
+ * strokes.el (strokes-modeline-string):
+ * emulation/crisp.el (crisp-mode-modeline-string):
+ * eshell/esh-mode.el (eshell-status-in-modeline):
+ Aliases to defcustoms must come before the defcustom.
+
+ * calendar/cal-tex.el (cal-tex-diary, cal-tex-cursor-week)
+ (cal-tex-cursor-week2, cal-tex-cursor-week-iso)
+ (cal-tex-cursor-week-monday): Doc fixes.
+ (cal-tex-cursor-week2-summary): Doc fix.
+ Rename from cal-tex-cursor-week-at-a-glance.
+
+ * calendar/cal-menu.el (cal-menu-context-mouse-menu):
+ Tweak week descriptions. Add cal-tex-cursor-week2-summary.
+
+ * calendar/calendar.el (calendar-mode-map):
+ Add cal-tex-cursor-week2-summary.
+
+2012-10-06 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * emacs-lisp/cl-macs.el (cl-defstruct): Improve docstring.
+
+ * subr.el (read-passwd-map): New var.
+ (read-passwd): Use `read-string' again.
+ * minibuffer.el (delete-minibuffer-contents): Make it interactive.
+
+2012-10-06 Jambunathan K <kjambunathan@gmail.com>
+
+ * register.el (append-to-register, prepend-to-register):
+ Deactivate mark, as does `copy-to-register' (bug#12389).
+
+2012-10-06 Chong Yidong <cyd@gnu.org>
+
+ * files.el (auto-mode-alist): Add .by and .wy (Semantic grammars).
+
2012-10-06 Ikumi Keita <ikumi@ikumi.que.jp> (tiny change)
* international/characters.el: Fix simple mistake ((car chars) ->
(python-fill-decorator-function, python-fill-paren-function):
Remove :safe for defcustoms.
(python-fill-string-style): New defcustom
- (python-fill-paragraph-function): Enhanced context detection.
+ (python-fill-paragraph-function): Enhance context detection.
(python-fill-string): Honor python-fill-string-style settings.
2012-10-04 Martin Rudalics <rudalics@gmx.at>
2012-10-02 Chong Yidong <cyd@gnu.org>
- * progmodes/hideif.el (hif-lookup, hif-defined): Handle
- semantic-c-takeover-hideif.
+ * progmodes/hideif.el (hif-lookup, hif-defined):
+ Handle semantic-c-takeover-hideif.
2012-10-02 Paul Eggert <eggert@cs.ucla.edu>
2012-10-02 Sergio Durigan Junior <sergiodj@riseup.net> (tiny change)
- * net/eudcb-bbdb.el (eudc-bbdb-format-record-as-result): Fix
- querying BBDB for entries without a last name (Bug#11580).
+ * net/eudcb-bbdb.el (eudc-bbdb-format-record-as-result):
+ Fix querying BBDB for entries without a last name (Bug#11580).
2012-10-02 Chong Yidong <cyd@gnu.org>
2012-09-08 Jambunathan K <kjambunathan@gmail.com>
* register.el (register): New group.
- (register-separator): New user option.
+ (separator-register): New user option.
(increment-register): Route it to `append-to-register', if
register contains text. Implication is that `C-x r +' can now be
used for appending to a text register (bug#12217).
(append-to-register, prepend-to-register): Add separator based on
- `register-separator.
+ `separator-register'.
2012-09-08 Alan Mackenzie <acm@muc.de>
* Version 23.2 released.
-2010-05-07 Deniz Dogan <deniz.a.m.dogan@gmail.com> (tiny change)
+2010-05-07 Deniz Dogan <deniz.a.m.dogan@gmail.com>
Stefan Monnier <monnier@iro.umontreal.ca>
Highlight vendor specific properties.
* window.el (move-to-window-line-last-op): Remove.
(move-to-window-line-top-bottom): Reuse recenter-last-op instead.
-2009-11-23 Deniz Dogan <deniz.a.m.dogan@gmail.com> (tiny change)
+2009-11-23 Deniz Dogan <deniz.a.m.dogan@gmail.com>
Make M-r mirror the new cycling behavior of C-l.
* window.el (move-to-window-line-last-op): New var.
TOP-OR-BOTTOM: banish the mouse to top or bottom of frame or window.
TOP-OR-BOTTOM-POS: Distance from top or bottom edge of frame or window."
:group 'avoid
+ :version "24.3"
:type '(alist :key-type symbol :value-type symbol)
:options '(frame-or-window side (side-pos integer)
top-or-bottom (top-or-bottom-pos integer)))
"If non-nil, make sure new units are consistent with current units
when converting units."
:group 'calc
+ :version "24.3"
:type 'boolean)
(defcustom calc-undo-length
;; These did not work if called without calendar window selected.
("Prepare LaTeX buffer"
["Daily (1 page)" cal-tex-cursor-day]
- ["Weekly (1 page)" cal-tex-cursor-week]
- ["Weekly (2 pages)" cal-tex-cursor-week2]
- ["Weekly (other style; 1 page)" cal-tex-cursor-week-iso]
- ["Weekly (yet another style; 1 page)" cal-tex-cursor-week-monday]
+ ["Weekly (1 page, with hours)" cal-tex-cursor-week]
+ ["Weekly (2 pages, with hours)" cal-tex-cursor-week2]
+ ["Weekly (1 page, no hours)" cal-tex-cursor-week-iso]
+ ["Weekly (1 page, with hours, different style)" cal-tex-cursor-week-monday]
+ ["Weekly (2 pages, no hours)" cal-tex-cursor-week2-summary]
["Monthly" cal-tex-cursor-month]
["Monthly (landscape)" cal-tex-cursor-month-landscape]
["Yearly" cal-tex-cursor-year]
;; cal-tex-cursor-month
;; cal-tex-cursor-week
;; cal-tex-cursor-week2
+;; cal-tex-cursor-week2-summary
;; cal-tex-cursor-week-iso
;; cal-tex-cursor-week-monday
;; cal-tex-cursor-filofax-2week
(defcustom cal-tex-diary nil
"Non-nil means diary entries are printed in LaTeX calendars that support it.
-At present, this only affects the monthly, filofax, and iso-week
-calendars (i.e. not the yearly, plain weekly, or daily calendars).
Setting this to nil may speed up calendar generation."
:type 'boolean
:group 'calendar-tex)
;; TODO respect cal-tex-daily-start,end (see cal-tex-week-hours).
;;;###cal-autoload
(defun cal-tex-cursor-week (&optional n event)
- "Make a LaTeX calendar buffer for a two-page one-week calendar.
-It applies to the week that point is in. The optional prefix
-argument N specifies number of weeks (default 1). The calendar
-shows holidays if `cal-tex-holidays' is non-nil (note that diary
-entries are not shown). The calendar shows the hours 8-12am, 1-5pm."
+ "Make a one page LaTeX calendar for one week, showing hours of the day.
+There are two columns; with 8-12am in the first and 1-5pm in the second.
+It shows holidays if `cal-tex-holidays' is non-nil.
+It does not show diary entries.
+
+The optional prefix argument N specifies a number of weeks (default 1).
+
+By default, the calendar is for the week at point; the optional
+argument EVENT specifies a different buffer position."
(interactive (list (prefix-numeric-value current-prefix-arg)
last-nonmenu-event))
(or n (setq n 1))
;; TODO respect cal-tex-daily-start,end (see cal-tex-week-hours).
;;;###cal-autoload
(defun cal-tex-cursor-week2 (&optional n event)
- "Make a LaTeX calendar buffer for a two-page one-week calendar.
-It applies to the week that point is in. Optional prefix
-argument N specifies number of weeks (default 1). The calendar
-shows holidays if `cal-tex-holidays' is non-nil (note that diary
-entries are not shown). The calendar shows the hours 8-12am, 1-5pm.
-Optional EVENT indicates a buffer position to use instead of point."
+ "Make a two page LaTeX calendar for one week, showing hours of the day.
+There are two columns; with 8-12am in the first and 1-5pm in the second.
+It shows holidays if `cal-tex-holidays' is non-nil.
+It does not show diary entries.
+
+The optional prefix argument N specifies a number of weeks (default 1).
+
+By default, the calendar is for the week at point; the optional
+argument EVENT specifies a different buffer position."
(interactive (list (prefix-numeric-value current-prefix-arg)
last-nonmenu-event))
(or n (setq n 1))
;;;###cal-autoload
(defun cal-tex-cursor-week-iso (&optional n event)
- "Make a LaTeX calendar buffer for a one page ISO-style weekly calendar.
-Optional prefix argument N specifies number of weeks (default 1).
-The calendar shows holiday and diary entries if
-`cal-tex-holidays' and `cal-tex-diary', respectively, are non-nil.
-It does not show hours of the day. Optional EVENT indicates a buffer
-position to use instead of point."
+ "Make a one page LaTeX calendar for one week, in the ISO-style.
+It does not show hours of the day.
+It shows holidays if `cal-tex-holidays' is non-nil.
+It shows diary entries if `cal-tex-diary' is non-nil.
+
+The optional prefix argument N specifies a number of weeks (default 1).
+
+By default, the calendar is for the week at point; the optional
+argument EVENT specifies a different buffer position."
(interactive (list (prefix-numeric-value current-prefix-arg)
last-nonmenu-event))
(or n (setq n 1))
;; TODO respect cal-tex-daily-start,end (see cal-tex-weekly4-box).
;;;###cal-autoload
(defun cal-tex-cursor-week-monday (&optional n event)
- "Make a LaTeX calendar buffer for a two-page one-week calendar.
-It applies to the week that point is in, and starts on Monday.
-Optional prefix argument N specifies number of weeks (default 1).
-The calendar shows holidays if `cal-tex-holidays' is
-non-nil (note that diary entries are not shown). The calendar shows
-the hours 8-12am, 1-5pm. Optional EVENT indicates a buffer position
-to use instead of point."
+ "Make a one page LaTeX calendar for one week, showing hours of the day.
+There are two columns; with M-W in the first and T-S in the second.
+It shows the hours 8-12am and 1-5pm.
+It shows holidays if `cal-tex-holidays' is non-nil.
+It does not show diary entries.
+
+The optional prefix argument N specifies a number of weeks (default 1).
+
+By default, the calendar is for the week at point; the optional
+argument EVENT specifies a different buffer position."
(interactive (list (prefix-numeric-value current-prefix-arg)
last-nonmenu-event))
(or n (setq n 1))
(run-hooks 'cal-tex-hook)))
;;;###cal-autoload
-(defun cal-tex-cursor-week-at-a-glance (&optional n event)
- "One-week-at-a-glance full page calendar for week indicated by cursor.
-Optional prefix argument N specifies number of weeks (default 1),
-starting on Mondays. The calendar shows holiday and diary entries
-if `cal-tex-holidays' and `cal-tex-diary', respectively, are non-nil.
-It does not show hours of the day. Optional EVENT indicates a buffer
-position to use instead of point."
+(defun cal-tex-cursor-week2-summary (&optional n event)
+ "Make a two page LaTeX calendar for one week, with optional diary entries.
+It does not show hours of the day.
+It shows holidays if `cal-tex-holidays' is non-nil.
+It shows diary entries if `cal-tex-diary' is non-nil.
+
+The optional prefix argument N specifies a number of weeks (default 1).
+
+By default, the calendar is for the week at point; the optional
+argument EVENT specifies a different buffer position."
(interactive (list (prefix-numeric-value current-prefix-arg)
last-nonmenu-event))
(cal-tex-weekly-common n event))
(define-key map "td" 'cal-tex-cursor-day)
(define-key map "tw1" 'cal-tex-cursor-week)
(define-key map "tw2" 'cal-tex-cursor-week2)
- (define-key map "tw3" 'cal-tex-cursor-week-iso)
- (define-key map "tw4" 'cal-tex-cursor-week-monday)
+ (define-key map "tw3" 'cal-tex-cursor-week-iso) ; FIXME twi ?
+ (define-key map "tw4" 'cal-tex-cursor-week-monday) ; twm ?
+ (define-key map "twW" 'cal-tex-cursor-week2-summary)
(define-key map "tfd" 'cal-tex-cursor-filofax-daily)
(define-key map "tfw" 'cal-tex-cursor-filofax-2week)
(define-key map "tfW" 'cal-tex-cursor-filofax-week)
This applies only if the UID is not empty! `%s' is replaced by
the UID."
:type 'string
+ :version "24.3"
:group 'icalendar)
(defcustom icalendar-import-format-status
(force-mode-line-update)
(setq timeclock-mode-line-display on-p)))
+(define-obsolete-variable-alias 'timeclock-modeline-display
+ 'timeclock-mode-line-display "24.3")
+
;; This has to be here so that the function definition of
;; `timeclock-mode-line-display' is known to the "set" function.
(defcustom timeclock-mode-line-display nil
+2012-10-06 Glenn Morris <rgm@gnu.org>
+
+ * semantic/complete.el (semantic-displayor-tooltip-max-tags): Doc fix.
+
+ * semantic/complete.el (semantic-displayor-tooltip-mode)
+ (semantic-displayor-tooltip-initial-max-tags)
+ (semantic-displayor-tooltip-max-tags): Add missing custom :version tags.
+ * ede/linux.el (project-linux): Add missing group :version tag.
+
+2012-10-06 Chong Yidong <cyd@gnu.org>
+
+ * semantic/bovine/grammar.el:
+ * semantic/wisent/grammar.el: Move from admin/grammars. Add
+ autoloads for bovine-grammar-mode and wisent-grammar-mode.
+
2012-10-02 Chong Yidong <cyd@gnu.org>
* srecode.el, ede.el: Restore Version header.
"File and tag browser frame."
:group 'tools
:group 'ede
- )
+ :version "24.3")
(defcustom project-linux-compile-target-command (concat ede-make-command " -k -C %s SUBDIRS=%s")
"*Default command used to compile a target."
-;;; bovine-grammar.el --- Bovine's input grammar mode
+;;; semantic/bovine/grammar.el --- Bovine's input grammar mode
;;
;; Copyright (C) 2002-2012 Free Software Foundation, Inc.
;;
(setq first (car form)
form (cdr form))
;; Hack for dealing with new reading of unquotes outside of
- ;; backquote (introduced in rev. 102591 in emacs-bzr).
+ ;; backquote (introduced in 2010-12-06T16:37:26Z!monnier@iro.umontreal.ca).
(when (and (>= emacs-major-version 24)
(listp first)
(or (equal (car first) '\,)
""))))
(defvar bovine-grammar-menu
- '("BY Grammar"
- )
+ '("BY Grammar")
"BY mode specific grammar menu.
Menu items are appended to the common grammar menu.")
+;;;###autoload
(define-derived-mode bovine-grammar-mode semantic-grammar-mode "BY"
"Major mode for editing Bovine grammars."
(semantic-grammar-setup-menu bovine-grammar-menu)
(semantic-install-function-overrides
'((grammar-parsetable-builder . bovine-grammar-parsetable-builder)
- (grammar-setupcode-builder . bovine-grammar-setupcode-builder)
- )))
+ (grammar-setupcode-builder . bovine-grammar-setupcode-builder))))
(add-to-list 'auto-mode-alist '("\\.by\\'" . bovine-grammar-mode))
)
"Semantic grammar macros used in bovine grammars.")
-(provide 'semantic/bovine/grammar)
-
(defun bovine-make-parsers ()
"Generate Emacs' built-in Bovine-based parser files."
(interactive)
(replace-match packagename nil nil nil 1)
(save-buffer))))))
-;;; bovine-grammar.el ends here
+(provide 'semantic/bovine/grammar)
+
+;;; semantic/bovine/grammar.el ends here
The absolute maximum number of completions for all mode is
determined through `semantic-displayor-tooltip-max-tags'."
:group 'semantic
+ :version "24.3"
:type '(choice (const :tag "Standard" standard)
(const :tag "Quiet" quiet)
(const :tag "Verbose" verbose)))
"Maximum number of tags to be displayed initially.
See doc-string of `semantic-displayor-tooltip-mode' for details."
:group 'semantic
+ :version "24.3"
:type 'integer)
(defcustom semantic-displayor-tooltip-max-tags 25
- "The maximum number of tags to be displayed.
+ "The maximum number of tags to be displayed.
Maximum number of completions where we have activated the
extended completion list through typing TAB or SPACE multiple
times. This limit needs to fit on your screen!
Note: If available, customizing this variable increases
-'x-max-tooltip-size' to force over-sized tooltips when necessary.
-This will not happen if you directly set this variable via
-`setq'."
- :group 'semantic
- :type 'integer
- :set '(lambda (sym var)
- (set-default sym var)
- (when (boundp 'x-max-tooltip-size)
- (setcdr x-max-tooltip-size (max (1+ var) (cdr x-max-tooltip-size))))))
+`x-max-tooltip-size' to force over-sized tooltips when necessary.
+This will not happen if you directly set this variable via `setq'."
+ :group 'semantic
+ :version "24.3"
+ :type 'integer
+ :set '(lambda (sym var)
+ (set-default sym var)
+ (when (boundp 'x-max-tooltip-size)
+ (setcdr x-max-tooltip-size (max (1+ var) (cdr x-max-tooltip-size))))))
(defclass semantic-displayor-tooltip (semantic-displayor-traditional)
-;;; wisent-grammar.el --- Wisent's input grammar mode
+;;; semantic/wisent/grammar.el --- Wisent's input grammar mode
;; Copyright (C) 2002-2012 Free Software Foundation, Inc.
;;
"WY mode specific grammar menu.
Menu items are appended to the common grammar menu.")
+;;;###autoload
(define-derived-mode wisent-grammar-mode semantic-grammar-mode "WY"
"Major mode for editing Wisent grammars."
(semantic-grammar-setup-menu wisent-grammar-menu)
(semantic-install-function-overrides
'((grammar-parsetable-builder . wisent-grammar-parsetable-builder)
- (grammar-setupcode-builder . wisent-grammar-setupcode-builder)
- )))
-
-(add-to-list 'auto-mode-alist '("\\.wy\\'" . wisent-grammar-mode))
+ (grammar-setupcode-builder . wisent-grammar-setupcode-builder))))
(defvar-mode-local wisent-grammar-mode semantic-grammar-macros
'(
(insert-file-contents filename)
;; Fix copyright header:
(goto-char (point-min))
- (when additional-copyright
+ (when additional-copyright
(re-search-forward "Copyright (C).*$")
(insert "\n;; " additional-copyright))
(re-search-forward "^;; Author:")
(delete-trailing-whitespace)
(write-region nil nil (expand-file-name filename))))))))
-;;; wisent-grammar.el ends here
+(provide 'semantic/wisent/grammar)
+
+;;; semantic/wisent/grammar.el ends here
(defvar electric-help-map
(let ((map (make-keymap)))
+ ;; FIXME fragile. Should derive from help-mode-map in a smarter way.
+ (set-keymap-parent map button-buffer-map)
;; allow all non-self-inserting keys - search, scroll, etc, but
;; let M-x and C-x exit ehelp mode and retain buffer:
(suppress-keymap map)
(setq buffer-read-only t)
(setq electric-help-orig-major-mode major-mode)
(setq mode-name "Help")
- (setq major-mode 'help)
+ (setq major-mode 'help-mode)
(setq mode-line-buffer-identification '(" Help: %b"))
(use-local-map electric-help-map)
(add-hook 'mouse-leave-buffer-hook 'electric-help-retain)
;;;;;; cl-typecase cl-ecase cl-case cl-load-time-value cl-eval-when
;;;;;; cl-destructuring-bind cl-function cl-defmacro cl-defun cl-gentemp
;;;;;; cl-gensym cl--compiler-macro-cXXr cl--compiler-macro-list*)
-;;;;;; "cl-macs" "cl-macs.el" "da92f58f688ff6fb4d0098eb0f3acf0b")
+;;;;;; "cl-macs" "cl-macs.el" "6951d080daefb5194b1d21fe9b2deae4")
;;; Generated autoloads from cl-macs.el
(autoload 'cl--compiler-macro-list* "cl-macs" "\
You can use the accessors to set the corresponding slots, via `setf'.
NAME may instead take the form (NAME OPTIONS...), where each
-OPTION is either a single keyword or (KEYWORD VALUE).
-See Info node `(cl)Structures' for a list of valid keywords.
+OPTION is either a single keyword or (KEYWORD VALUE) where
+KEYWORD can be one of :conc-name, :constructor, :copier, :predicate,
+:type, :named, :initial-offset, :print-function, or :include.
Each SLOT may instead take the form (SLOT SLOT-OPTS...), where
SLOT-OPTS are keyword-value pairs for that slot. Currently, only
You can use the accessors to set the corresponding slots, via `setf'.
NAME may instead take the form (NAME OPTIONS...), where each
-OPTION is either a single keyword or (KEYWORD VALUE).
-See Info node `(cl)Structures' for a list of valid keywords.
+OPTION is either a single keyword or (KEYWORD VALUE) where
+KEYWORD can be one of :conc-name, :constructor, :copier, :predicate,
+:type, :named, :initial-offset, :print-function, or :include.
Each SLOT may instead take the form (SLOT SLOT-OPTS...), where
SLOT-OPTS are keyword-value pairs for that slot. Currently, only
All the bindings are done here instead of globally to try and be
nice to the world.")
+(define-obsolete-variable-alias 'crisp-mode-modeline-string
+ 'crisp-mode-mode-line-string "24.3")
+
(defcustom crisp-mode-mode-line-string " *CRiSP*"
"String to display in the mode line when CRiSP emulation mode is enabled."
:type 'string
:group 'crisp)
-(define-obsolete-variable-alias 'crisp-mode-modeline-string
- 'crisp-mode-mode-line-string "24.3")
-
;;;###autoload
(defcustom crisp-mode nil
"Track status of CRiSP emulation mode.
+2012-10-07 Deniz Dogan <deniz@dogan.se>
+
+ * erc-log.el (erc-generate-log-file-name-function):
+ Clarify tags for various choices. (Bug#11186)
+
+2012-10-07 Glenn Morris <rgm@gnu.org>
+
+ * erc-button.el (erc-button-alist): Remove "finger". (Bug#4443)
+
+2012-10-07 Antoine Levitt <antoine.levitt@gmail.com>
+
+ * erc-stamp.el (erc-format-timestamp): Don't apply intangible
+ property to invisible stamps. (Bug#11706)
+
+2012-10-07 Glenn Morris <rgm@gnu.org>
+
+ * erc-backend.el (NICK): Handle pre-existing buffers. (Bug#12002)
+
+2012-10-06 Glenn Morris <rgm@gnu.org>
+
+ * erc.el (erc-lurker):
+ * erc-desktop-notifications.el (erc-notifications):
+ Add missing group :version tags.
+
2012-10-04 Julien Danjou <julien@danjou.info>
* erc-desktop-notifications.el: Rename from erc-notifications to
2012-09-17 Chong Yidong <cyd@gnu.org>
- * erc-page.el (erc-page-function):
-
+ * erc-page.el (erc-page-function):
* erc-stamp.el (erc-stamp): Doc fix.
2012-08-21 Josh Feinstein <jlf@foxtail.org>
(erc-autojoin-after-ident): Ditto.
(erc-autojoin-channels-alist): Mention auth-source.
-2012-04-10 Deniz Dogan <deniz@dogan.se> (tiny change)
+2012-04-10 Deniz Dogan <deniz@dogan.se>
* erc.el (erc-display-prompt): Adds the field text property to the
ERC prompt. This allows users to use `kill-whole-line' to kill
(when (equal (erc-default-target) nick)
(setq erc-default-recipients
(cons nn (cdr erc-default-recipients)))
- (rename-buffer nn)
+ (rename-buffer nn t) ; bug#12002
(erc-update-mode-line)
(add-to-list 'bufs (current-buffer)))))
(erc-update-user-nick nick nn host nil nil login)
'(('nicknames 0 erc-button-buttonize-nicks erc-nick-popup 0)
(erc-button-url-regexp 0 t browse-url 0)
("<URL: *\\([^<> ]+\\) *>" 0 t browse-url 1)
- ("(\\(\\([^~\n \t@][^\n \t@]*\\)@\\([a-zA-Z0-9.:-]+\\)\\)" 1 t finger 2 3)
+;;; ("(\\(\\([^~\n \t@][^\n \t@]*\\)@\\([a-zA-Z0-9.:-]+\\)\\)" 1 t finger 2 3)
;; emacs internal
("[`]\\([a-zA-Z][-a-zA-Z_0-9]+\\)[']" 1 t erc-button-describe-symbol 1)
;; pseudo links
'nicknames, these are ignored, and CALLBACK will be called with
the nickname matched as the argument."
:group 'erc-button
+ :version "24.3" ; remove finger (bug#4443)
:type '(repeat
(list :tag "Button"
(choice :tag "Matches"
(defgroup erc-notifications nil
"Send notifications on PRIVMSG or mentions."
+ :version "24.3"
:group 'erc)
(defvar erc-notifications-last-notification nil
custom function which returns the directory part and set
`erc-log-channels-directory' to its name."
:group 'erc-log
- :type '(choice (const :tag "Long style" erc-generate-log-file-name-long)
- (const :tag "Long, but with network name rather than server"
+ :type '(choice (const :tag "#channel!nick@server:port.txt"
+ erc-generate-log-file-name-long)
+ (const :tag "#channel!nick@network.txt"
erc-generate-log-file-name-network)
- (const :tag "Short" erc-generate-log-file-name-short)
- (const :tag "With date" erc-generate-log-file-name-with-date)
+ (const :tag "#channel.txt" erc-generate-log-file-name-short)
+ (const :tag "#channel@date.txt"
+ erc-generate-log-file-name-with-date)
(function :tag "Other function")))
(defcustom erc-truncate-buffer-on-save nil
'isearch-open-invisible 'timestamp ts)
;; N.B. Later use categories instead of this harmless, but
;; inelegant, hack. -- BPT
- (when erc-timestamp-intangible
- (erc-put-text-property 0 (length ts) 'intangible t ts))
+ (and erc-timestamp-intangible
+ (not erc-hide-timestamps) ; bug#11706
+ (erc-put-text-property 0 (length ts) 'intangible t ts))
ts)
""))
(defgroup erc-lurker nil
"Hide specified message types sent by lurkers"
+ :version "24.3"
:group 'erc-ignore)
(defgroup erc-query nil
:type '(choice (const nil) function)
:group 'eshell-mode)
+(define-obsolete-variable-alias 'eshell-status-in-modeline
+ 'eshell-status-in-mode-line "24.3")
+
(defcustom eshell-status-in-mode-line t
"If non-nil, let the user know a command is running in the mode line."
:type 'boolean
:group 'eshell-mode)
-(define-obsolete-variable-alias 'eshell-status-in-modeline
- 'eshell-status-in-mode-line "24.3")
-
(defvar eshell-first-time-p t
"A variable which is non-nil the first time Eshell is loaded.")
("\\.js\\'" . javascript-mode)
("\\.json\\'" . javascript-mode)
("\\.[ds]?vh?\\'" . verilog-mode)
+ ("\\.by\\'" . bovine-grammar-mode)
+ ("\\.wy\\'" . wisent-grammar-mode)
;; .emacs or .gnus or .viper following a directory delimiter in
;; Unix, MSDOG or VMS syntax.
("[]>:/\\]\\..*\\(emacs\\|gnus\\|viper\\)\\'" . emacs-lisp-mode)
+2012-10-06 Glenn Morris <rgm@gnu.org>
+
+ * gnus-notifications.el (gnus-notifications):
+ Add missing group :version tag.
+ * gnus-msg.el (gnus-gcc-pre-body-encode-hook)
+ (gnus-gcc-post-body-encode-hook):
+ * gnus-sync.el (gnus-sync-lesync-name)
+ (gnus-sync-lesync-install-topics): Add missing custom :version tags.
+
2012-09-25 Katsumi Yamaoka <yamaoka@jpl.org>
* gnus-art.el (gnus-article-browse-delete-temp-files): Never ask again
including the message header. Changes made to the message will
only affect the Gcc copy, but not the original message."
:group 'gnus-message
+ :version "24.3"
:type 'hook)
(defcustom gnus-gcc-post-body-encode-hook nil
including the message header. Changes made to the message will
only affect the Gcc copy, but not the original message."
:group 'gnus-message
+ :version "24.3"
:type 'hook)
(autoload 'gnus-message-citation-mode "gnus-cite" nil t)
(defgroup gnus-notifications nil
"Send notifications on new message in Gnus."
+ :version "24.3"
:group 'gnus)
(defcustom gnus-notifications-use-google-contacts t
(defcustom gnus-sync-lesync-name (system-name)
"The LeSync name for this machine."
:group 'gnus-sync
+ :version "24.3"
:type 'string)
-(defcustom gnus-sync-lesync-install-topics 'ask
+(defcustom gnus-sync-lesync-install-topics 'ask
"Should LeSync install the recorded topics?"
:group 'gnus-sync
+ :version "24.3"
:type '(choice (const :tag "Never Install" nil)
(const :tag "Always Install" t)
(const :tag "Ask Me Once" ask)))
;;;###autoload
(defun hi-lock-face-phrase-buffer (regexp &optional face)
"Set face of each match of phrase REGEXP to FACE.
-Whitespace in REGEXP converted to arbitrary whitespace and initial
-lower-case letters made case insensitive.
+If called interactively, replaces whitespace in REGEXP with
+arbitrary whitespace and makes initial lower-case letters case-insensitive.
If Font Lock mode is enabled in the buffer, it is used to
highlight REGEXP. If Font Lock mode is disabled, overlays are
Blanks in PHRASE replaced by regexp that matches arbitrary whitespace
and initial lower-case letters made case insensitive."
(let ((mod-phrase nil))
+ ;; FIXME fragile; better to just bind case-fold-search? (Bug#7161)
(setq mod-phrase
(replace-regexp-in-string
- "\\<[a-z]" (lambda (m) (format "[%s%s]" (upcase m) m)) phrase))
+ "\\(^\\|\\s-\\)\\([a-z]\\)"
+ (lambda (m) (format "%s[%s%s]"
+ (match-string 1 m)
+ (upcase (match-string 2 m))
+ (match-string 2 m))) phrase))
+ ;; FIXME fragile; better to use search-spaces-regexp?
(setq mod-phrase
(replace-regexp-in-string
"\\s-+" "[ \t\n]+" mod-phrase nil t))))
;;;***
\f
-;;;### (autoloads (rmail-mime) "rmailmm" "rmailmm.el" "0c18b83f914803d1216e1a9df7ea5275")
+;;;### (autoloads (rmail-mime) "rmailmm" "rmailmm.el" "f1937f85a1258de8880a089fa5ae5621")
;;; Generated autoloads from rmailmm.el
(autoload 'rmail-mime "rmailmm" "\
(let ((boundary (cdr (assq 'boundary content-type)))
(subtype (cadr (split-string (car content-type) "/")))
(index 0)
- beg end next entities truncated)
+ beg end next entities truncated last)
(unless boundary
(rmail-mm-get-boundary-error-message
"No boundary defined" content-type content-disposition
;; Handle the rest of the truncated message
;; (if it isn't empty) by pretending that the boundary
;; appears at the end of the message.
- (and (save-excursion
+ ;; We use `last' to distinguish this from the more
+ ;; likely situation of there being an epilogue
+ ;; after the last boundary, which should be ignored.
+ ;; See rmailmm-test-multipart-handler for an example,
+ ;; and also bug#10101.
+ (and (not last)
+ (save-excursion
(skip-chars-forward "\n")
(> (point-max) (point)))
(setq truncated t end (point-max))))
;; epilogue, else hide the boundary only. Use a marker for
;; `next' because `rmail-mime-show' may change the buffer.
(cond ((looking-at "--[ \t]*$")
- (setq next (point-max-marker)))
+ (setq next (point-max-marker)
+ last t))
((looking-at "[ \t]*\n")
(setq next (copy-marker (match-end 0) t)))
(truncated
(defun delete-minibuffer-contents ()
"Delete all user input in a minibuffer.
If the current buffer is not a minibuffer, erase its entire contents."
+ (interactive)
;; We used to do `delete-field' here, but when file name shadowing
;; is on, the field doesn't cover the entire minibuffer contents.
(delete-region (minibuffer-prompt-end) (point-max)))
(defcustom tramp-save-ad-hoc-proxies nil
"Whether to save ad-hoc proxies persistently."
:group 'tramp
+ :version "24.3"
:type 'boolean)
(defcustom tramp-restricted-shell-hosts-alist
(defcustom proced-renice-command "renice"
"Name of renice command."
:group 'proced
+ :version "24.3"
:type '(string :tag "command"))
(defcustom proced-signal-list
(defgroup profiler nil
"Emacs profiler."
:group 'lisp
+ :version "24.3"
:prefix "profiler-")
(defconst profiler-version "24.3")
The second subexpression should match the bug reference (usually a number)."
:type 'string
:safe 'stringp
+ :version "24.3" ; previously defconst
:group 'bug-reference)
(defun bug-reference-set-overlay-properties ()
The value may also be a list of two elements where the second
element specifies the face for the bitmap."
:group 'flymake
+ :version "24.3"
:type 'symbol)
(defcustom flymake-warning-bitmap 'question-mark
The value may also be a list of two elements where the second
element specifies the face for the bitmap."
:group 'flymake
+ :version "24.3"
:type 'symbol)
(defcustom flymake-fringe-indicator-position 'left-fringe
The value can be nil, left-fringe or right-fringe.
Fringe indicators are disabled if nil."
:group 'flymake
+ :version "24.3"
:type '(choice (const left-fringe)
(const right-fringe)
(const :tag "No fringe indicators" nil)))
\(Type \\[describe-mode] in the process buffer for a list of commands.)"
(set-syntax-table python-mode-syntax-table)
(setq mode-line-process '(":%s"))
- (setq comint-prompt-regexp (format "^\\(?:%s\\|%s\\|%s\\)"
- python-shell-prompt-regexp
- python-shell-prompt-block-regexp
- python-shell-prompt-pdb-regexp))
(make-local-variable 'comint-output-filter-functions)
(add-hook 'comint-output-filter-functions
'python-comint-output-filter-function)
(process (get-buffer-process buffer)))
(with-current-buffer buffer
(inferior-python-mode)
- (python-util-clone-local-variables current-buffer))
+ (python-util-clone-local-variables current-buffer)
+ (setq comint-prompt-regexp (format "^\\(?:%s\\|%s\\|%s\\)"
+ python-shell-prompt-regexp
+ python-shell-prompt-block-regexp
+ python-shell-prompt-pdb-regexp)))
(accept-process-output process)
(and pop (pop-to-buffer buffer t))
(and internal (set-process-query-on-exit-flag process nil))))
(string-match "\n[ \t].*\n?$" string))
(comint-send-string process "\n")))))
-;; Shell output catching stolen from gud-gdb
-(defvar python-shell-fetch-lines-in-progress nil)
-(defvar python-shell-fetch-lines-string nil)
-(defvar python-shell-fetched-lines nil)
-
-(defun python-shell-fetch-lines-filter (string)
- "Filter used to read the list of lines output by a command.
-STRING is the output to filter."
- (setq string (concat python-shell-fetch-lines-string string))
- (while (string-match "\n" string)
- (push (substring string 0 (match-beginning 0))
- python-shell-fetched-lines)
- (setq string (substring string (match-end 0))))
- (if (equal (string-match comint-prompt-regexp string) 0)
- (progn
- (setq python-shell-fetch-lines-in-progress nil)
- string)
- (progn
- (setq python-shell-fetch-lines-string string)
- "")))
+(defvar python-shell-output-filter-in-progress nil)
+(defvar python-shell-output-filter-buffer nil)
+
+(defun python-shell-output-filter (string)
+ "Filter used in `python-shell-send-string-no-output' to grab output.
+STRING is the output received to this point from the process.
+This filter saves received output from the process in
+`python-shell-output-filter-buffer' and stops receiving it after
+detecting a prompt at the end of the buffer."
+ (setq
+ string (ansi-color-filter-apply string)
+ python-shell-output-filter-buffer
+ (concat python-shell-output-filter-buffer string))
+ (when (string-match
+ (format "\n\\(?:%s\\|%s\\|%s\\)$"
+ python-shell-prompt-regexp
+ python-shell-prompt-block-regexp
+ python-shell-prompt-pdb-regexp)
+ python-shell-output-filter-buffer)
+ ;; Output ends when `python-shell-output-filter-buffer' contains
+ ;; the prompt attached at the end of it.
+ (setq python-shell-output-filter-in-progress nil
+ python-shell-output-filter-buffer
+ (substring python-shell-output-filter-buffer
+ 0 (match-beginning 0)))
+ (when (and (> (length python-shell-prompt-output-regexp) 0)
+ (string-match (concat "^" python-shell-prompt-output-regexp)
+ python-shell-output-filter-buffer))
+ ;; Some shells, like iPython might append a prompt before the
+ ;; output, clean that.
+ (setq python-shell-output-filter-buffer
+ (substring python-shell-output-filter-buffer (match-end 0)))))
+ "")
(defun python-shell-send-string-no-output (string &optional process msg)
"Send STRING to PROCESS and inhibit output.
the output."
(let ((process (or process (python-shell-get-or-create-process)))
(comint-preoutput-filter-functions
- '(python-shell-fetch-lines-filter))
- (python-shell-fetch-lines-in-progress t)
+ '(python-shell-output-filter))
+ (python-shell-output-filter-in-progress t)
(inhibit-quit t))
(or
(with-local-quit
(python-shell-send-string string process msg)
- (while python-shell-fetch-lines-in-progress
+ (while python-shell-output-filter-in-progress
+ ;; `python-shell-output-filter' takes care of setting
+ ;; `python-shell-output-filter-in-progress' to NIL after it
+ ;; detects end of output.
(accept-process-output process))
(prog1
- (mapconcat #'identity
- (reverse python-shell-fetched-lines) "\n")
- (setq python-shell-fetched-lines nil)))
+ python-shell-output-filter-buffer
+ (setq python-shell-output-filter-buffer nil)))
(with-current-buffer (process-buffer process)
(comint-interrupt-subjob)))))
(defcustom sh-indent-after-continuation t
"If non-nil, try to make sure text is indented after a line continuation."
- :type 'boolean)
+ :version "24.3"
+ :type 'boolean
+ :group 'sh-indentation)
(defun sh-smie--continuation-start-indent ()
"Return the initial indentation of a continued line.
"Non-nil means report warning if an AUTO_TEMPLATE line is not used.
This feature is not supported before Emacs 21.1 or XEmacs 21.4."
:group 'verilog-mode-auto
+ :version "24.3"
:type 'boolean)
(put 'verilog-auto-template-warn-unused 'safe-local-variable 'verilog-booleanp)
(defcustom verilog-before-save-font-hook nil
"Hook run before `verilog-save-font-mods' removes highlighting."
:group 'verilog-mode-auto
+ :version "24.3"
:type 'hook)
(defcustom verilog-after-save-font-hook nil
"Hook run after `verilog-save-font-mods' restores highlighting."
:group 'verilog-mode-auto
+ :version "24.3"
:type 'hook)
(defvar verilog-imenu-generic-expression
:type '(list (string :tag "Compile entire design")
(string :tag "Clean entire design ")
(string :tag "Create design library"))
+ :version "24.3"
:group 'vhdl-compile)
(defcustom vhdl-makefile-generation-hook nil
the sensitivity list (e.g. \"in1(0)\", \"in2.f0\").
Otherwise, only the record name is included (e.g. \"in1\", \"in2\")."
:type 'boolean
+ :version "24.3"
:group 'vhdl-style)
(defgroup vhdl-naming nil
Indenting comment lines like the following code line gives nicer indentation
when comments precede the code that they refer to."
:type 'boolean
+ :version "24.3"
:group 'vhdl-misc)
(defcustom vhdl-word-completion-case-sensitive nil
register (cond ((not reg) text)
((stringp reg) (concat reg separator text))
(t (error "Register does not contain text")))))
+ (setq deactivate-mark t)
(cond (delete-flag
(delete-region start end))
((called-interactively-p 'interactive)
register (cond ((not reg) text)
((stringp reg) (concat text separator reg))
(t (error "Register does not contain text")))))
+ (setq deactivate-mark t)
(cond (delete-flag
(delete-region start end))
((called-interactively-p 'interactive)
:link '(emacs-commentary-link "strokes")
:group 'mouse)
+(define-obsolete-variable-alias 'strokes-modeline-string 'strokes-lighter
+ "24.3")
+
(defcustom strokes-lighter " Strokes"
"Mode line identifier for Strokes mode."
:type 'string
:group 'strokes)
-(define-obsolete-variable-alias 'strokes-modeline-string 'strokes-lighter "24.3")
-
(defcustom strokes-character ?@
"Character used when drawing strokes in the strokes buffer.
\(The default is `@', which works well.\)"
(setq first nil))
code))
+(defconst read-passwd-map
+ (let ((map (make-sparse-keymap)))
+ (set-keymap-parent map minibuffer-local-map)
+ (define-key map "\C-u" #'delete-minibuffer-contents) ;bug#12570
+ map)
+ "Keymap used while reading passwords.")
+
(defun read-passwd (prompt &optional confirm default)
"Read a password, prompting with PROMPT, and return it.
If optional CONFIRM is non-nil, read the password twice to make sure.
(setq minibuf (current-buffer))
;; Turn off electricity.
(set (make-local-variable 'post-self-insert-hook) nil)
+ (use-local-map read-passwd-map)
(add-hook 'after-change-functions hide-chars-fun nil 'local))
(unwind-protect
- (let ((enable-recursive-minibuffers t)
- (map minibuffer-local-map)
- result)
- (define-key map "\C-u" ; bug#12570
- (lambda () (interactive) (delete-minibuffer-contents)))
- (setq result
- ;; t = no history.
- (read-from-minibuffer prompt nil map nil t default))
- (if (and (equal "" result) default) default
- result))
+ (let ((enable-recursive-minibuffers t))
+ (read-string prompt nil t default)) ; t = "no history"
(when (buffer-live-p minibuf)
(with-current-buffer minibuf
;; Not sure why but it seems that there might be cases where the
`reftex-ref-macro-prompt'.) The keys, represented as characters,
have to be unique."
:group 'reftex-referencing-labels
+ :version "24.3"
:type '(alist :key-type (string :tag "Style name")
:value-type (group (choice :tag "Package"
(const :tag "Any package" t)
(defcustom reftex-ref-macro-prompt t
"If non-nil, `reftex-reference' prompts for the reference macro."
:group 'reftex-referencing-labels
+ :version "24.3"
:type 'boolean)
(defcustom reftex-vref-is-default nil
in the list have to match the respective reference style names
used in the variable `reftex-ref-style-alist'."
:group 'reftex-referencing-labels
+ :version "24.3"
:type `(set ,@(mapcar (lambda (x) (list 'const (car x)))
reftex-ref-style-alist)))
(defcustom reftex-cite-key-separator ","
"String to be used for separating several keys in a \\cite macro."
:group 'reftex-citation-support
+ :version "24.3"
:type 'string)
(defcustom reftex-create-bibtex-header nil
"Header to insert in BibTeX files generated by RefTeX."
:group 'reftex-citation-support
- :type 'string)
+ :version "24.3"
+ :type '(choice (const :tag "No header" nil) string))
(defcustom reftex-create-bibtex-footer nil
"Footer to insert in BibTeX files generated by RefTeX."
:group 'reftex-citation-support
- :type 'string)
+ :version "24.3"
+ :type '(choice (const :tag "No footer" nil) string))
;; Index Support Configuration
;; Use CVSHeader to really get information from CVS and not other version
;; control systems.
(defconst rst-cvs-header
- "$CVSHeader: sm/rst_el/rst.el,v 1.327.2.2 2012-09-23 14:44:25 stefan Exp $")
+ "$CVSHeader: sm/rst_el/rst.el,v 1.327.2.5 2012-10-07 12:44:34 stefan Exp $")
(defconst rst-cvs-rev
(rst-extract-version "\\$" "CVSHeader: \\S + " "[0-9]+\\(?:\\.[0-9]+\\)+"
" .*" rst-cvs-header "0.0")
"Official version of the package.")
(defconst rst-official-cvs-rev
(rst-extract-version "[%$]" "Revision: " "[0-9]+\\(?:\\.[0-9]+\\)+" " "
- "$Revision: 1.327.2.2 $")
+ "$Revision: 1.327.2.5 $")
"CVS revision of this file in the official version.")
(defconst rst-version
:version "21.1")
(define-obsolete-variable-alias
- 'rst-preferred-decorations 'rst-preferred-adornments "1.0.0")
+ 'rst-preferred-decorations 'rst-preferred-adornments "rst 1.0.0")
(defcustom rst-preferred-adornments '((?= over-and-under 1)
(?= simple 0)
(?- simple 0)
:package-version '(rst . "1.1.0"))
(define-obsolete-variable-alias
- 'rst-shift-basic-offset 'rst-indent-width "1.0.0")
+ 'rst-shift-basic-offset 'rst-indent-width "rst 1.0.0")
(defcustom rst-indent-width 2
"Indentation when there is no more indentation point given."
:group 'rst-indent
(defcustom rst-indent-field 3
"Indentation for first line after a field or 0 to always indent for content."
:group 'rst-indent
+ :package-version '(rst . "1.1.0")
:type '(integer))
(rst-testcover-defcustom)
(defcustom rst-indent-literal-normal 3
"Default indentation for literal block after a markup on an own line."
:group 'rst-indent
+ :package-version '(rst . "1.1.0")
:type '(integer))
(rst-testcover-defcustom)
(defcustom rst-indent-literal-minimized 2
"Default indentation for literal block after a minimized markup."
:group 'rst-indent
+ :package-version '(rst . "1.1.0")
:type '(integer))
(rst-testcover-defcustom)
(defcustom rst-indent-comment 3
"Default indentation for first line of a comment."
:group 'rst-indent
+ :package-version '(rst . "1.1.0")
:type '(integer))
(rst-testcover-defcustom)
+2012-10-07 Jan Djärv <jan.h.d@swipnet.se>
+
+ * nsterm.m (ns_dumpglyphs_image): Only draw slize of image (Bug#12506).
+
+ * nsterm.m (ns_update_auto_hide_menu_bar): Remove defintion of
+ MAC_OS_X_VERSION_10_6.
+ (syms_of_nsterm): Remove comment about Panther and above for ns-antialias-text.
+ * nsterm.h (MAC_OS_X_VERSION_10_3, onTiger): Remove.
+ (EmacsApp): Remove check for >= MAC_OS_X_VERSION_10_4.
+ (struct nsfont_info): Remove check for >= MAC_OS_X_VERSION_10_3.
+
+ * nsselect.m (ns_string_from_pasteboard): Remove check for >=
+ MAC_OS_X_VERSION_10_4.
+
+ * nsmenu.m (fillWithWidgetValue:): Remove code for < MAC_OS_X_VERSION_10_2.
+
+ * nsimage.m (setPixmapData, getPixelAtX, setAlphaAtX): Remove onTiger.
+
+ * nsfns.m (Fns_list_services): Remove comment and check for OSX < 10.4.
+ (ns_do_applescript): Remove check for >= MAC_OS_X_VERSION_10_4.
+
+ * nsterm.m (ns_in_resize): Remove (Bug#12479).
+ (ns_resize_handle_rect, mouseDown, mouseUp, mouseDragged): Remove.
+ (ns_clear_frame, sendEvent, windowDidResize, drawRect:): Remove ns_in_resize
+ check.
+ (ns_clear_frame_area): Remove resize handle code.
+
+ * nsfns.m (ns_in_resize): Remove.
+ (x_set_icon_name, ns_set_name, ns_set_name_as_filename): Remove ns_in_resize
+ check.
+
+2012-10-07 Paul Eggert <eggert@cs.ucla.edu>
+
+ Improve sys_siglist detection.
+ * sysdep.c (sys_siglist, init_signals): Use _sys_siglist if it's
+ defined as a macro, as is done in Solaris.
+ (sys_siglist_entries): New macro.
+ (save_strsignal): Use it.
+ * syssignal.h (safe_strsignal): Now ATTRIBUTE_CONST, to pacify
+ GCC 4.7.2 on Fedora 17 with the fixed sys_siglist detection.
+
+2012-10-06 Jan Djärv <jan.h.d@swipnet.se>
+
+ * nsfns.m (Fx_create_frame): Call x_default_parameter with
+ fullscreen/Fullscreen.
+
+ * nsterm.h (EmacsView): Rename tbar_height to tibar_height.
+ tobar_height is new.
+
+ * nsterm.m (x_make_frame_visible): Check for fullscreen.
+ (ns_fullscreen_hook): Activate old style fullscreen with a timer.
+ (ns_term_init): Set activateIgnoringOtherApps if old style fullscreen.
+ (windowDidResize:): Check for correct window if old style fullscreen.
+ Capitalize word in comment. Remove incorrect comment.
+ (initFrameFromEmacs:): tbar_height renamed tibar_height.
+ (windowDidEnterFullScreen:): Toggle toolbar for fullscreen to fix
+ error in drawing background.
+ (toggleFullScreen:): Remove comment. Rearrange calls.
+ Set toolbar values to zero, save old height in tobar_height.
+ Restore tool bar height when leaving fullscreen.
+ (canBecomeMainWindow): New function.
+
2012-10-06 Paul Eggert <eggert@cs.ucla.edu>
* keyboard.c (read_char): Remove unnecessary 'volatile's and label.
/* Need forward declaration here to preserve organizational integrity of file */
Lisp_Object Fx_open_connection (Lisp_Object, Lisp_Object, Lisp_Object);
-extern BOOL ns_in_resize;
-
/* Static variables to handle applescript execution. */
static Lisp_Object as_script, *as_result;
static int as_status;
NSView *view = FRAME_NS_VIEW (f);
NSTRACE (x_set_icon_name);
- if (ns_in_resize)
- return;
-
/* see if it's changed */
if (STRINGP (arg))
{
{
NSTRACE (ns_set_name);
- if (ns_in_resize)
- return;
-
/* Make sure that requests from lisp code override requests from
Emacs redisplay code. */
if (explicit)
NSString *str;
NSTRACE (ns_set_name_as_filename);
- if (f->explicit_name || ! NILP (f->title) || ns_in_resize)
+ if (f->explicit_name || ! NILP (f->title))
return;
block_input ();
RES_TYPE_NUMBER);
x_default_parameter (f, parms, Qalpha, Qnil,
"alpha", "Alpha", RES_TYPE_NUMBER);
+ x_default_parameter (f, parms, Qfullscreen, Qnil,
+ "fullscreen", "Fullscreen", RES_TYPE_SYMBOL);
width = FRAME_COLS (f);
height = FRAME_LINES (f);
check_ns ();
svcs = [[NSMenu alloc] initWithTitle: @"Services"];
- [NSApp setServicesMenu: svcs]; /* this and next rebuild on <10.4 */
+ [NSApp setServicesMenu: svcs];
[NSApp registerServicesMenuSendTypes: ns_send_types
returnTypes: ns_return_types];
/* On Tiger, services menu updating was made lazier (waits for user to
actually click on the menu), so we have to force things along: */
#ifdef NS_IMPL_COCOA
- if (NSAppKitVersionNumber >= 744.0)
+ delegate = [svcs delegate];
+ if (delegate != nil)
{
- delegate = [svcs delegate];
- if (delegate != nil)
+ if ([delegate respondsToSelector: @selector (menuNeedsUpdate:)])
+ [delegate menuNeedsUpdate: svcs];
+ if ([delegate respondsToSelector:
+ @selector (menu:updateItem:atIndex:shouldCancel:)])
{
- if ([delegate respondsToSelector: @selector (menuNeedsUpdate:)])
- [delegate menuNeedsUpdate: svcs];
- if ([delegate respondsToSelector:
- @selector (menu:updateItem:atIndex:shouldCancel:)])
- {
- int i, len = [delegate numberOfItemsInMenu: svcs];
- for (i =0; i<len; i++)
- [svcs addItemWithTitle: @"" action: NULL keyEquivalent: @""];
- for (i =0; i<len; i++)
- if (![delegate menu: svcs
- updateItem: (NSMenuItem *)[svcs itemAtIndex: i]
- atIndex: i shouldCancel: NO])
- break;
- }
+ int i, len = [delegate numberOfItemsInMenu: svcs];
+ for (i =0; i<len; i++)
+ [svcs addItemWithTitle: @"" action: NULL keyEquivalent: @""];
+ for (i =0; i<len; i++)
+ if (![delegate menu: svcs
+ updateItem: (NSMenuItem *)[svcs itemAtIndex: i]
+ atIndex: i shouldCancel: NO])
+ break;
}
}
#endif
*result = Qt;
// script returned an AppleScript result
if ((typeUnicodeText == [returnDescriptor descriptorType]) ||
-#if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_4
+#if defined (NS_IMPL_COCOA)
(typeUTF16ExternalRepresentation
== [returnDescriptor descriptorType]) ||
#endif
if ([rep respondsToSelector: @selector (getBitmapDataPlanes:)])
{
bmRep = (NSBitmapImageRep *) rep;
- onTiger = [bmRep respondsToSelector: @selector (colorAtX:y:)];
if ([bmRep numberOfPlanes] >= 3)
[bmRep getBitmapDataPlanes: pixmapData];
| (pixmapData[0][loc] << 16) | (pixmapData[1][loc] << 8)
| (pixmapData[2][loc]);
}
- else if (onTiger)
+ else
{
NSColor *color = [bmRep colorAtX: x y: y];
CGFloat r, g, b, a;
| ((int)(b * 255.0));
}
- return 0;
}
- (void) setPixelAtX: (int)x Y: (int)y toRed: (unsigned char)r
pixmapData[2][loc] = b;
pixmapData[3][loc] = a;
}
- else if (onTiger)
+ else
{
[bmRep setColor:
[NSColor colorWithCalibratedRed: (r/255.0) green: (g/255.0)
pixmapData[3][loc] = a;
}
- else if (onTiger)
+ else
{
NSColor *color = [bmRep colorAtX: x y: y];
color = [color colorWithAlphaComponent: (a / 255.0)];
#ifdef NS_IMPL_GNUSTEP
if ([[self window] isVisible])
[self sizeToFit];
-#else
-#if MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_2
- if ([self supermenu] == nil)
- [self sizeToFit];
-#endif
#endif
}
utfStr = [mstr UTF8String];
length = [mstr lengthOfBytesUsingEncoding: NSUTF8StringEncoding];
-#if ! defined (NS_IMPL_COCOA) || MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_4
+#if ! defined (NS_IMPL_COCOA)
if (!utfStr)
{
utfStr = [mstr cString];
NS_HANDLER
{
message1 ("ns_string_from_pasteboard: UTF8String failed\n");
-#if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_4
+#if defined (NS_IMPL_COCOA)
utfStr = "Conversion failed";
#else
utfStr = [str lossyCString];
#ifdef HAVE_NS
#ifdef NS_IMPL_COCOA
-#ifndef MAC_OS_X_VERSION_10_3
-#define MAC_OS_X_VERSION_10_3 1030
-#endif
#ifndef MAC_OS_X_VERSION_10_4
#define MAC_OS_X_VERSION_10_4 1040
#endif
BOOL windowClosing;
NSString *workingText;
BOOL processingCompose;
- int fs_state, fs_before_fs, next_maximized, tbar_height, bwidth;
+ int fs_state, fs_before_fs, next_maximized;
+ int tibar_height, tobar_height, bwidth;
int maximized_width, maximized_height;
NSWindow *nonfs_window;
@public
int refCount;
NSBitmapImageRep *bmRep; /* used for accessing pixel data */
unsigned char *pixmapData[5]; /* shortcut to access pixel data */
- BOOL onTiger;
NSColor *stippleMask;
}
+ allocInitFromFile: (Lisp_Object)file;
/* ==========================================================================
- Rendering on Panther and above
+ Rendering
========================================================================== */
extern EmacsMenu *mainMenu, *svcsMenu, *dockMenu;
/* Apple removed the declaration, but kept the implementation */
-#if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_4
+#if defined (NS_IMPL_COCOA)
@interface NSApplication (EmacsApp)
- (void)setAppleMenu: (NSMenu *)menu;
@end
float size;
#ifdef __OBJC__
NSFont *nsfont;
- /* cgfont and synthItal are used only on OS X 10.3+ */
-#if defined (NS_IMPL_COCOA) && (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_3)
+#if defined (NS_IMPL_COCOA)
CGFontRef cgfont;
-#else /* GNUstep or OS X < 10.3 */
+#else /* GNUstep */
void *cgfont;
#endif
#else /* ! OBJC */
static NSRect uRect;
#endif
static BOOL gsaved = NO;
-BOOL ns_in_resize = NO;
static BOOL ns_fake_keydown = NO;
int ns_tmp_flags; /* FIXME */
struct nsfont_info *ns_tmp_font; /* FIXME */
========================================================================== */
-static NSRect
-ns_resize_handle_rect (NSWindow *window)
-{
- NSRect r = [window frame];
- r.origin.x = r.size.width - RESIZE_HANDLE_SIZE;
- r.origin.y = 0;
- r.size.width = r.size.height = RESIZE_HANDLE_SIZE;
- return r;
-}
-
-
//
// Window constraining
// -------------------
static void
ns_update_auto_hide_menu_bar (void)
{
-#ifndef MAC_OS_X_VERSION_10_6
-#define MAC_OS_X_VERSION_10_6 1060
-#endif
#ifdef NS_IMPL_COCOA
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6
block_input ();
if this ends up the case again, comment this out again. */
if (!FRAME_VISIBLE_P (f))
{
+ EmacsView *view = (EmacsView *)FRAME_NS_VIEW (f);
f->async_visible = 1;
ns_raise_frame (f);
+
+#ifdef NEW_STYLE_FS
+ /* Making a new frame from a fullscreen frame will make the new frame
+ fullscreen also. So skip handleFS as this will print an error. */
+ if (f->want_fullscreen == FULLSCREEN_BOTH
+ && ([[view window] styleMask] & NSFullScreenWindowMask) != 0)
+ return;
+#endif
+ if (f->want_fullscreen != FULLSCREEN_NONE)
+ {
+ block_input ();
+ [view handleFS];
+ unblock_input ();
+ }
}
}
EmacsView *view = (EmacsView *)FRAME_NS_VIEW (f);
if (! f->async_visible) return;
+#ifndef NEW_STYLE_FS
+ if (f->want_fullscreen == FULLSCREEN_BOTH)
+ {
+ /* Old style fs don't initiate correctly if created from
+ init/default-frame alist, so use a timer (not nice...).
+ */
+ [NSTimer scheduledTimerWithTimeInterval: 0.5 target: view
+ selector: @selector (handleFS)
+ userInfo: nil repeats: NO];
+ return;
+ }
+#endif
block_input ();
[view handleFS];
NSRect r;
NSTRACE (ns_clear_frame);
- if (ns_in_resize)
- return;
/* comes on initial frame because we have
after-make-frame-functions = select-frame */
NSRectFill (r);
ns_unfocus (f);
-#ifdef NS_IMPL_COCOA
- [[view window] display]; /* redraw resize handle */
-#endif
-
/* as of 2006/11 or so this is now needed */
ns_redraw_scroll_bars (f);
unblock_input ();
ns_focus (f, &r, 1);
[ns_lookup_indexed_color (NS_FACE_BACKGROUND (face), f) set];
-#ifdef NS_IMPL_COCOA
- {
- /* clip out the resize handle */
- NSWindow *window = [FRAME_NS_VIEW (f) window];
- NSRect ir
- = [view convertRect: ns_resize_handle_rect (window) fromView: nil];
-
- ir = NSIntersectionRect (r, ir);
- if (NSIsEmptyRect (ir))
- {
-#endif
-
NSRectFill (r);
-#ifdef NS_IMPL_COCOA
- }
- else
- {
- NSRect r1 = r, r2 = r; /* upper and lower non-intersecting */
- r1.size.height -= ir.size.height;
- r2.origin.y += r1.size.height;
- r2.size.width -= ir.size.width;
- r2.size.height = ir.size.height;
- NSRectFill (r1);
- NSRectFill (r2);
- }
- }
-#endif
-
ns_unfocus (f);
return;
}
{
#if !defined (NS_IMPL_COCOA) || MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6
NSRect dr = NSMakeRect (x, y, s->slice.width, s->slice.height);
+ NSRect ir = NSMakeRect (s->slice.x, s->slice.y,
+ s->slice.width, s->slice.height);
[img drawInRect: dr
- fromRect: NSZeroRect
+ fromRect: ir
operation: NSCompositeSourceOver
fraction: 1.0
respectFlipped: YES
NSColorPboardType,
NSFontPboardType, nil] retain];
+#ifndef NEW_STYLE_FS
+ /* If fullscreen is in init/default-frame-alist, focus isn't set
+ right for fullscreen windows, so set this. */
+ [NSApp activateIgnoringOtherApps:YES];
+#endif
[NSApp run];
ns_do_open_file = YES;
return;
}
-#ifdef NS_IMPL_COCOA
- /* pass mouse down in resize handle and subsequent drags directly to
- EmacsWindow so we can generate continuous redisplays */
- if (ns_in_resize)
- {
- if (type == NSLeftMouseDragged)
- {
- [window mouseDragged: theEvent];
- return;
- }
- else if (type == NSLeftMouseUp)
- {
- [window mouseUp: theEvent];
- return;
- }
- }
- else if (type == NSLeftMouseDown)
- {
- NSRect r = ns_resize_handle_rect (window);
- if (NSPointInRect ([theEvent locationInWindow], r))
- {
- ns_in_resize = YES;
- [window mouseDown: theEvent];
- return;
- }
- }
-#endif
-
if (type == NSApplicationDefined)
{
/* Events posted by ns_send_appdefined interrupt the run loop here.
- (void)windowDidResize: (NSNotification *)notification
{
+
+#if !defined (NEW_STYLE_FS) && ! defined (NS_IMPL_GNUSTEP)
+ NSWindow *theWindow = [notification object];
+ /* We can get notification on the non-FS window when in fullscreen mode. */
+ if ([self window] != theWindow) return;
+#endif
+
#ifdef NS_IMPL_GNUSTEP
NSWindow *theWindow = [notification object];
- /* in GNUstep, at least currently, it's possible to get a didResize
+ /* In GNUstep, at least currently, it's possible to get a didResize
without getting a willResize.. therefore we need to act as if we got
the willResize now */
NSSize sz = [theWindow frame].size;
}
#endif /* NS_IMPL_COCOA */
- /* Avoid loop under GNUstep due to call at beginning of this function.
- (x_set_window_size causes a resize which causes
- a "windowDidResize" which calls x_set_window_size). */
-#ifndef NS_IMPL_GNUSTEP
if (cols > 0 && rows > 0)
{
- if (ns_in_resize)
- x_set_window_size (emacsframe, 0, cols, rows);
- else
- {
- [self updateFrameSize: YES];
- }
+ [self updateFrameSize: YES];
}
-#endif
ns_send_appdefined (-1);
}
wr = [win frame];
bwidth = f->border_width = wr.size.width - r.size.width;
- tbar_height = FRAME_NS_TITLEBAR_HEIGHT (f) = wr.size.height - r.size.height;
+ tibar_height = FRAME_NS_TITLEBAR_HEIGHT (f) = wr.size.height - r.size.height;
[win setAcceptsMouseMovedEvents: YES];
[win setDelegate: self];
- (void)windowDidEnterFullScreen:(NSNotification *)notification
{
[self setFSValue: FULLSCREEN_BOTH];
-#ifndef NEW_STYLE_FS
+#ifdef NEW_STYLE_FS
+ // Fix bad background.
+ if ([toolbar isVisible])
+ {
+ [toolbar setVisible:NO];
+ [toolbar setVisible:YES];
+ }
+#else
[self windowDidBecomeKey:notification];
+ [nonfs_window orderOut:self];
#endif
}
- (void)toggleFullScreen: (id)sender
{
- /* Bugs remain:
- 1) Having fullscreen in initial/default frame alist.
- 2) Fullscreen in default frame alist only applied to first frame.
- */
-
#ifdef NEW_STYLE_FS
[[self window] toggleFullScreen:sender];
#else
isEqual:[[NSScreen screens] objectAtIndex:0]];
struct frame *f = emacsframe;
NSSize sz;
- NSRect r;
+ NSRect r, wr = [w frame];
NSColor *col = ns_lookup_indexed_color (NS_FACE_BACKGROUND
(FRAME_DEFAULT_FACE (f)),
f);
}
fw = [[EmacsFSWindow alloc]
- initWithContentRect:[w contentRectForFrameRect:[w frame]]
+ initWithContentRect:[w contentRectForFrameRect:wr]
styleMask:NSBorderlessWindowMask
backing:NSBackingStoreBuffered
defer:YES
[fw setContentView:[w contentView]];
[fw setTitle:[w title]];
- [fw makeKeyAndOrderFront:NSApp];
[fw setDelegate:self];
- [fw makeFirstResponder:self];
[fw setAcceptsMouseMovedEvents: YES];
[fw useOptimizedDrawing: YES];
[fw setResizeIncrements: sz];
f->border_width = 0;
FRAME_NS_TITLEBAR_HEIGHT (f) = 0;
+ tobar_height = FRAME_TOOLBAR_HEIGHT (f);
+ FRAME_TOOLBAR_HEIGHT (f) = 0;
+ FRAME_EXTERNAL_TOOL_BAR (f) = 0;
nonfs_window = w;
+
[self windowWillEnterFullScreen:nil];
+ [fw makeKeyAndOrderFront:NSApp];
+ [fw makeFirstResponder:self];
[w orderOut:self];
r = [fw frameRectForContentRect:[[fw screen] frame]];
[fw setFrame: r display:YES animate:YES];
[self windowDidEnterFullScreen:nil];
+ [fw display];
}
else
{
fw = w;
w = nonfs_window;
+ nonfs_window = nil;
if (onFirstScreen)
{
[w setOpaque: NO];
f->border_width = bwidth;
- FRAME_NS_TITLEBAR_HEIGHT (f) = tbar_height;
+ FRAME_NS_TITLEBAR_HEIGHT (f) = tibar_height;
+ FRAME_TOOLBAR_HEIGHT (f) = tobar_height;
+ if (tobar_height)
+ FRAME_EXTERNAL_TOOL_BAR (f) = 1;
[self windowWillExitFullScreen:nil];
[fw setFrame: [w frame] display:YES animate:YES];
NSTRACE (drawRect);
- if (!emacsframe || !emacsframe->output_data.ns || ns_in_resize)
+ if (!emacsframe || !emacsframe->output_data.ns)
return;
ns_clear_frame_area (emacsframe, x, y, width, height);
return [super constrainFrameRect:frameRect toScreen:screen];
}
-
-/* called only on resize clicks by special case in EmacsApp-sendEvent */
-- (void)mouseDown: (NSEvent *)theEvent
-{
- if (ns_in_resize)
- {
- NSSize size = [[theEvent window] frame].size;
- grabOffset = [theEvent locationInWindow];
- grabOffset.x = size.width - grabOffset.x;
- }
- else
- [super mouseDown: theEvent];
-}
-
-
-/* stop resizing */
-- (void)mouseUp: (NSEvent *)theEvent
-{
- if (ns_in_resize)
- {
- struct frame *f = ((EmacsView *)[self delegate])->emacsframe;
- ns_in_resize = NO;
- ns_set_name_as_filename (f);
- [self display];
- ns_send_appdefined (-1);
- }
- else
- [super mouseUp: theEvent];
-}
-
-
-/* send resize events */
-- (void)mouseDragged: (NSEvent *)theEvent
-{
- if (ns_in_resize)
- {
- NSPoint p = [theEvent locationInWindow];
- NSSize size, vettedSize, origSize = [self frame].size;
-
- size.width = p.x + grabOffset.x;
- size.height = origSize.height - p.y + grabOffset.y;
-
- if (size.width == origSize.width && size.height == origSize.height)
- return;
-
- vettedSize = [[self delegate] windowWillResize: self toSize: size];
- [[NSNotificationCenter defaultCenter]
- postNotificationName: NSWindowDidResizeNotification
- object: self];
- }
- else
- [super mouseDragged: theEvent];
-}
-
@end /* EmacsWindow */
return YES;
}
+- (BOOL)canBecomeMainWindow
+{
+ return YES;
+}
+
@end
/* ==========================================================================
ns_function_modifier = Qnone;
DEFVAR_LISP ("ns-antialias-text", ns_antialias_text,
- "Non-nil (the default) means to render text antialiased. Only has an effect on OS X Panther and above.");
+ "Non-nil (the default) means to render text antialiased.");
ns_antialias_text = Qt;
DEFVAR_LISP ("ns-confirm-quit", ns_confirm_quit,
\f
#if !HAVE_DECL_SYS_SIGLIST
# undef sys_siglist
-# define sys_siglist my_sys_siglist
+# ifdef _sys_siglist
+# define sys_siglist _sys_siglist
+# else
+# define sys_siglist my_sys_siglist
static char const *sys_siglist[NSIG];
+# endif
+#endif
+
+#ifdef _sys_nsig
+# define sys_siglist_entries _sys_nsig
+#else
+# define sys_siglist_entries NSIG
#endif
/* Handle bus errors, invalid instruction, etc. */
main_thread = pthread_self ();
#endif
-#if !HAVE_DECL_SYS_SIGLIST
+#if !HAVE_DECL_SYS_SIGLIST && !defined _sys_siglist
if (! initialized)
{
sys_siglist[SIGABRT] = "Aborted";
sys_siglist[SIGXFSZ] = "File size limit exceeded";
# endif
}
-#endif /* !HAVE_DECL_SYS_SIGLIST */
+#endif /* !HAVE_DECL_SYS_SIGLIST && !_sys_siglist */
/* Don't alter signal handlers if dumping. On some machines,
changing signal handlers sets static data that would make signals
{
char const *signame = 0;
- if (0 <= code && code < NSIG)
+ if (0 <= code && code < sys_siglist_entries)
signame = sys_siglist[code];
if (! signame)
signame = "Unknown signal";
typedef void (*signal_handler_t) (int);
extern void emacs_sigaction_init (struct sigaction *, signal_handler_t);
-char const *safe_strsignal (int);
+char const *safe_strsignal (int) ATTRIBUTE_CONST;
#if NSIG < NSIG_MINIMUM
# undef NSIG