Commit graph

1375 commits

Author SHA1 Message Date
Glenn Morris
0a8bf3afca Merge from emacs-24; up to 2012-12-06T07:33:20Z!rgm@gnu.org 2013-01-02 18:37:57 -08:00
Glenn Morris
ed5bdeb968 eval-after-load fix
* lisp/subr.el (eval-after-load): Don't purecopy the form, so that it
can be nconc'd later on; reverts 2009-11-11 change.

Fixes: debbugs:13331
2013-01-02 16:50:35 -08:00
Paul Eggert
0877d0dc24 Merge from emacs-24; up to 2012-12-06T01:39:03Z!monnier@iro.umontreal.ca 2013-01-02 08:13:04 -08:00
Paul Eggert
ab422c4d68 Update copyright notices for 2013. 2013-01-01 09:11:05 +00:00
Stefan Monnier
96c052a5d1 * lisp/subr.el (special-form-p): Don't signal errors on undef aliases. 2012-12-30 23:43:35 -05:00
Tom Tromey
3d6eced1ae merge from trunk 2012-12-17 07:56:22 -07:00
Eli Zaretskii
3907e630a7 Merge from trunk + rename the event. Not tested yet. 2012-12-10 14:08:02 +02:00
Rüdiger Sonderfeld
81606b1050 Support filesystem notification through inotify on GNU/Linux.
configure.ac (inotify): New option.
 (HAVE_INOTIFY): Test for inotify.

 src/termhooks.h (enum event_kind) [HAVE_INOTIFY]: Add
 FILE_NOTIFY_EVENT.
 src/lisp.h (syms_of_inotify) [HAVE_INOTIFY]: Add prototype.
 src/keyboard.c (Qfile_inotify) [HAVE_INOTIFY]: New variable.
 (syms_of_keyboard): DEFSYM it.
 (kbd_buffer_get_event) [HAVE_INOTIFY]: Generate FILE_NOTIFY_EVENT.
 (make_lispy_event): Support FILE_NOTIFY_EVENT by generating
 Qfile_inotify events.
 (keys_of_keyboard) [HAVE_INOTIFY]: Bind file-inotify events in
 special-event-map to inotify-handle-event.
 src/emacs.c (main) [HAVE_INOTIFY]: Call syms_of_inotify.
 src/Makefile.in (base_obj): Add inotify.o.
 src/inotify.c: New file.

 lisp/subr.el (inotify-event-p, inotify-handle-event): New functions.

 test/automated/inotify-test.el: New test.
2012-12-10 06:17:21 -05:00
Chong Yidong
454eb09524 * subr.el (text-clone-maintain): Fix clone overlay deletion
when a syntax is specified.

Fixes: debbugs:13025
2012-12-08 00:25:28 +08:00
Paul Eggert
f24f2e22aa Spelling fixes. 2012-12-06 18:37:20 -08:00
Glenn Morris
5c9cf0a3f9 Merge from emacs-24; up to 2012-11-20T20:06:17Z!monnier@iro.umontreal.ca 2012-11-26 19:10:32 -08:00
Eli Zaretskii
33a488e4e6 Partial fix for bug #12989 with buffer-file-type annoyances.
lisp/subr.el (buffer-file-type): Declare with defvar-local.  Doc fix.
 lisp/dos-w32.el (find-file-not-found-set-buffer-file-coding-system):
 Don't set buffer-file-type.  Return nil.
2012-11-26 19:09:04 +02:00
Stefan Monnier
23ba2705e2 Make called-interactively-p work for edebug or advised code.
* lisp/subr.el (called-interactively-p-functions): New var.
(internal--called-interactively-p--get-frame): New macro.
(called-interactively-p, interactive-p): Rewrite in Lisp.
* lisp/emacs-lisp/nadvice.el (advice--called-interactively-skip): New fun.
(called-interactively-p-functions): Use it.
* lisp/emacs-lisp/edebug.el (edebug--called-interactively-skip): New fun.
(called-interactively-p-functions): Use it.
* lisp/allout.el (allout-called-interactively-p): Don't assume
called-interactively-p is a subr.
* src/eval.c (Finteractive_p, Fcalled_interactively_p, interactive_p): Remove.
(syms_of_eval): Remove corresponding defsubr.
* src/bytecode.c (exec_byte_code): `interactive-p' is now a Lisp function.
* test/automated/advice-tests.el (advice-tests--data): Remove.
(advice-tests): Move the tests directly here instead.
Add called-interactively-p tests.
2012-11-19 23:24:09 -05:00
Glenn Morris
2ac9538d67 Merge from emacs-24; up to 2012-11-15T23:31:37Z!dancol@dancol.org 2012-11-17 17:52:36 -08:00
Eli Zaretskii
cf2d22b874 Merge from trunk. 2012-11-17 20:00:16 +02:00
Glenn Morris
95f0501e74 Reword previous with-temp-buffer-window doc fixes
* lisp/window.el (with-temp-buffer-window):
Reword the doc to be more similar to with-output-to-temp-buffer.

* lisp/subr.el (with-output-to-temp-buffer):
Add doc xref to with-temp-buffer-window.
2012-11-16 21:03:58 -05:00
Glenn Morris
96e055075d Merge from emacs-24; up to 2012-11-13T18:57:26Z!dgutov@yandex.ru 2012-11-16 09:20:23 -08:00
Glenn Morris
dc26b31073 * subr.el (set-temporary-overlay-map): Fix previous doc fix (don't quote `t') 2012-11-14 22:12:46 -08:00
Glenn Morris
e0ea806006 * lisp/subr.el (set-temporary-overlay-map): Doc fix.
* etc/NEWS: Related edit.
2012-11-14 00:29:25 -08:00
Eli Zaretskii
3c4ca71552 Merge from trunk. 2012-11-13 16:17:18 +02:00
Stefan Monnier
413d4689c0 * lisp/emacs-lisp/cl.el (dolist, dotimes, declare): Use advice-add to
override the default.
* lisp/emacs-lisp/cl-macs.el (cl-dolist, cl-dotimes): Rewrite without using
cl--dotimes/dolist.
* lisp/subr.el (dolist, dotimes, declare): Redefine them normally, even when
`cl' is loaded.

* lisp/emacs-lisp/nadvice.el (advice--normalize): New function, extracted
from add-advice.
(advice--strip-macro): New function.
(advice--defalias-fset): Use them to handle macros.
(advice-add): Use them.
(advice-member-p): Correctly handle macros.
2012-11-12 22:00:09 -05:00
Stefan Monnier
231d8498eb * lisp/emacs-lisp/nadvice.el: New package.
* lisp/subr.el (special-form-p): New function.
* lisp/emacs-lisp/elp.el: Use lexical-binding and advice-add.
(elp-all-instrumented-list): Remove var.
(elp-not-profilable): Remove elp-wrapper.
(elp-profilable-p): Use autoloadp and special-form-p.
(elp--advice-name): New const.
(elp-instrument-function): Use advice-add.
(elp--instrumented-p): New predicate.
(elp-restore-function): Use advice-remove.
(elp-restore-all, elp-reset-all): Use mapatoms.
(elp-set-master): Use elp--instrumented-p.
(elp--make-wrapper): Rename from elp-wrapper, return a function
suitable for advice-add.  Use cl-inf.
(elp-results): Use mapatoms+elp--instrumented-p.
* lisp/emacs-lisp/debug.el: Use lexical-binding and advice-add.
(debug-function-list): Remove var.
(debug): Rename arg, and then let-bind it explicitly inside.
(debugger-setup-buffer): Rename arg.
(debugger-setup-buffer): Adjust counts to new debug-on-entry setup.
(debugger-frame-number): Adjust to new debug-on-entry setup.
(debug--implement-debug-on-entry): Rename from
implement-debug-on-entry, add argument.
(debugger-special-form-p): Remove, use special-form-p instead.
(debug-on-entry): Use advice-add.
(debug--function-list): New function.
(cancel-debug-on-entry): Use it, along with advice-remove.
(debug-arglist, debug-convert-byte-code, debug-on-entry-1): Remove.
(debugger-list-functions): Use debug--function-list instead of
debug-function-list.
* lisp/emacs-lisp/advice.el (ad-save-real-definition): Remove, unused.
(ad-special-form-p): Remove, use special-form-p instead.
(ad-set-advice-info): Use add-function and remove-function.
(ad--defalias-fset): Adjust accordingly.
* test/automated/advice-tests.el: New tests.
2012-11-12 15:43:43 -05:00
Stefan Monnier
da03ef8a9d * lisp/subr.el (dolist): Don't bind VAR in RESULT. 2012-11-09 15:45:10 -05:00
Stefan Monnier
85e5541248 * lisp/subr.el (locate-user-emacs-file): If both old and new name exist, use
the new name.
2012-11-08 14:45:58 -05:00
Eli Zaretskii
5ade42a511 Merge from trunk after 24.3 was moved to emacs-24 branch. 2012-11-02 11:00:44 +02:00
Chong Yidong
05b621a6b2 More Emacs 24.3 documentation updates.
* doc/emacs/building.texi (Compilation): Document compilation-always-kill.

* doc/emacs/files.texi (Misc File Ops): Symbolic links on Windows only work
on Vista and later.

* doc/emacs/frames.texi (Mouse Avoidance): Mention new variable
mouse-avoidance-banish-position.

* doc/emacs/mule.texi (Recognize Coding): Remove an unreferenced vindex.

* doc/emacs/package.texi (Package Menu): Document the "new" status.

* doc/emacs/programs.texi (Which Function): Which Function mode now works in
all major modes by default.

* doc/emacs/search.texi (Symbol Search): New node.

* doc/emacs/windows.texi (Window Choice): Don't refer to the obsolete
special-display feature.

* commands.texi (Event Input Misc): Remove last-input-char.
(Command Loop Info): Remove last-command-char.

* display.texi (Fringe Bitmaps): Add exclamation-mark bitmap.

* frames.texi (Initial Parameters): Don't mention the obsolete
special-display feature.

* hooks.texi (Standard Hooks): Remove obsolete hooks.

* markers.texi (Information from Markers): Remove obsolete
function buffer-has-markers-at.

* minibuf.texi (High-Level Completion): Don't mention removed
function iswitchb-read-buffer.

* text.texi (Yanking): Document yank-handled-properties.

* windows.texi (Choosing Window): Don't mention the obsolete
special display feature.
(Choosing Window Options): Remove obsolete special-display
variables, and the functions special-display-p and
special-display-popup-frame.

* subr.el (insert-buffer-substring-as-yank): Doc fix.
2012-10-27 13:03:52 +08:00
Stefan Monnier
d106953274 Cleanup uses of "-hooks".
* doc/emacs/custom.texi (Hooks):
* doc/lispref/hooks.texi (Standard Hooks): Clarify that -hooks is deprecated.

* lisp/gnus/nndiary.el (nndiary-request-create-group-functions)
(nndiary-request-update-info-functions)
(nndiary-request-accept-article-functions):
* lisp/gnus/gnus-start.el (gnus-subscribe-newsgroup-functions):
* lisp/cedet/semantic/db-file.el (semanticdb-save-database-functions):
* lisp/cedet/semantic/lex.el (semantic-lex-reset-functions):
* lisp/cedet/semantic/edit.el (semantic-change-functions)
(semantic-edits-new-change-functions)
(semantic-edits-delete-change-functions)
(semantic-edits-reparse-change-functions):
* lisp/htmlfontify.el (hfy-post-html-hook):
* lisp/filesets.el (filesets-cache-fill-content-hook):
* lisp/arc-mode.el (archive-extract-hook):
* lisp/progmodes/cc-mode.el (c-prepare-bug-report-hook):
* lisp/net/rcirc.el (rcirc-sentinel-functions)
(rcirc-receive-message-functions, rcirc-activity-functions)
(rcirc-print-functions):
* lisp/net/dbus.el (dbus-event-error-functions):
* lisp/emacs-lisp/eieio.el (eieio-pre-method-execution-functions):
* lisp/emacs-lisp/checkdoc.el (checkdoc-style-functions)
(checkdoc-comment-style-functions): Don't use "-hooks" suffix.

* lisp/term/sun.el (sun-raw-prefix-hooks):
* lisp/mail/sendmail.el (mail-yank-hooks):
* lisp/mh-e/mh-letter.el (mh-yank-hooks): Use make-obsolete-variable.
2012-10-23 11:06:07 -04:00
Stefan Monnier
4ff5b1b293 * lisp/subr.el (internal-temp-output-buffer-show): Rename from
temp-output-buffer-show, since previously compiled files expect this name.
2012-10-22 21:18:47 -04:00
Eli Zaretskii
7014794467 Merge from trunk after cygw32 commit, and resolve conflicts. 2012-10-08 15:06:31 +02:00
Stefan Monnier
795b1482a9 * lisp/subr.el (read-passwd-map): Don't use `defconst'.
(read-passwd): Remove a few more potential sources of leaks.

Fixes: debbugs:12597
2012-10-07 15:48:02 -04:00
Eli Zaretskii
25d99a950d Merge from mainline. 2012-10-07 15:37:05 +02:00
Eli Zaretskii
477f1e5044 Initial version of the w32notify code.
Adding and removing a watch seems to work: a new thread is launched
when a watch is added and exits when the watch is removed.
But there are no notifications, so it seems.  At least, the Lisp
callback function passed to w32notify-add-watch is not called.
2012-10-06 20:02:31 +02:00
Stefan Monnier
d39109c3e1 * lisp/subr.el (read-passwd-map): New var.
(read-passwd): Use `read-string' again.
* lisp/minibuffer.el (delete-minibuffer-contents): Make it interactive.
2012-10-06 13:29:15 -04:00
Glenn Morris
50d92e32c2 Fix previous read-passwd change 2012-10-06 09:59:01 -07:00
Glenn Morris
d5acb99a19 * subr.el (read-passwd): Allow C-u to erase entry.
Fixes: debbugs:12570
2012-10-05 19:47:26 -07:00
Paul Eggert
735135f9bc Spelling fixes. 2012-10-04 22:57:24 -07:00
Chong Yidong
863666ebae Minor fixes for the function obsolescence feature.
* lisp/help-fns.el (help-fns--obsolete): Handle macros properly.

* lisp/subr.el (declare): Doc fix.
2012-09-25 13:33:43 +08:00
Chong Yidong
59f7af816e Use declare forms, where possible, to mark obsolete functions.
* lisp/allout.el (allout-passphrase-hint-string): Likewise.
(allout-init): Use a declare form to mark obsolete.

* lisp/calendar/calendar.el (calendar-version):
* lisp/calendar/icalendar.el (icalendar-extract-ical-from-buffer)
(icalendar-convert-diary-to-ical):
* lisp/cus-edit.el (custom-mode):
* lisp/ansi-color.el (ansi-color-unfontify-region):
* lisp/international/latin1-disp.el (latin1-char-displayable-p):
* lisp/progmodes/cwarn.el (turn-on-cwarn-mode):
* lisp/progmodes/which-func.el (which-func-update-1): Use
define-obsolete-function-alias.

* lisp/bookmark.el (bookmark-jump-noselect): Use a declare form to mark
this function obsolete.

* lisp/calendar/cal-x.el (calendar-two-frame-setup)
(calendar-only-one-frame-setup, calendar-one-frame-setup):
* lisp/calendar/calendar.el (american-calendar, european-calendar)
(calendar-for-loop):
* lisp/comint.el (comint-dynamic-simple-complete)
(comint-dynamic-complete-as-filename, comint-unquote-filename):
* lisp/desktop.el (desktop-load-default):
* lisp/dired-x.el (dired-omit-here-always)
(dired-hack-local-variables, dired-default-directory):
* lisp/emacs-lisp/derived.el (derived-mode-class):
* lisp/emacs-lisp/timer.el (timer-set-time-with-usecs):
* lisp/emacs-lock.el (toggle-emacs-lock):
* lisp/epa.el (epa-display-verify-result):
* lisp/epg.el (epg-sign-keys, epg-start-sign-keys)
(epg-passphrase-callback-function):
* lisp/eshell/esh-util.el (eshell-for):
* lisp/eshell/eshell.el (eshell-remove-from-window-buffer-names)
(eshell-add-to-window-buffer-names):
* lisp/files.el (locate-file-completion):
* lisp/imenu.el (imenu-example--create-c-index)
(imenu-example--create-lisp-index)
(imenu-example--lisp-extract-index-name)
(imenu-example--name-and-position):
* lisp/international/mule-cmds.el (princ-list):
* lisp/international/mule-diag.el (decode-codepage-char):
* lisp/international/mule-util.el (detect-coding-with-priority):
* lisp/iswitchb.el (iswitchb-read-buffer):
* lisp/mail/mailalias.el (mail-complete):
* lisp/mail/sendmail.el (mail-sent-via):
* lisp/mouse.el (mouse-popup-menubar-stuff, mouse-popup-menubar)
(mouse-major-mode-menu):
* lisp/password-cache.el (password-read-and-add):
* lisp/pcomplete.el (pcomplete-parse-comint-arguments):
* lisp/progmodes/sh-script.el (sh-maybe-here-document):
* lisp/replace.el (query-replace-regexp-eval):
* lisp/savehist.el (savehist-load):
* lisp/simple.el (choose-completion-delete-max-match):
* lisp/term.el (term-dynamic-simple-complete):
* lisp/vc/ediff-init.el (ediff-check-version):
* lisp/vc/ediff-wind.el (ediff-choose-window-setup-function-automatically):
* lisp/vc/vc.el (vc-diff-switches-list):
* lisp/view.el (view-return-to-alist-update): Likewise.

* lisp/iswitchb.el (iswitchb-read-buffer): Move code of
iswitchb-define-mode-map here, and delete that obsolete function.

* lisp/subr.el (eval-next-after-load, makehash, insert-string)
(assoc-ignore-representation, assoc-ignore-case): Use declare to
mark obsolete.
(mode-line-inverse-video): Variable deleted.

* lisp/emacs-lisp/byte-run.el (make-obsolete): Doc fix; emphasize that
this applies to functions.

* lisp/erc/erc.el (erc-send-command): Use define-obsolete-function-alias.

* lisp/international/mule-util.el (string-to-sequence): Remove.

* lisp/net/newst-backend.el (newsticker-cache-filename):
* lisp/net/newst-treeview.el (newsticker-groups-filename): Fix
incorrect obsolescence declaration.

* lisp/net/snmp-mode.el (snmp-font-lock-keywords-3): Don't use obsolete
font-lock-reference-face.

* lisp/url/url-parse.el (url-recreate-url-attributes):
* lisp/url/url-util.el (url-generate-unique-filename): Use declare to mark
obsolete.

* src/xdisp.c (mode_line_inverse_video): Delete obsolete variable.
2012-09-25 12:13:02 +08:00
Martin Rudalics
43bf5e8e4d Implement temp-output-buffer-show in subr.el.
* subr.el (temp-output-buffer-show): New function.
(with-output-to-temp-buffer): Call temp-output-buffer-show
instead of internal-temp-output-buffer-show.
2012-09-22 18:28:46 +02:00
Chong Yidong
acfa068f4a Merge from emacs-24; up to 2012-05-07T14:57:18Z!michael.albinus@gmx.de 2012-09-21 11:03:48 +08:00
Stefan Monnier
2de39f089a * lisp/emacs-lisp/edebug.el: Miscellaneous cleanup.
Remove obsolete byte-compiler hack that tried to silence some warnings.
(edebug-submit-bug-report): Remove.
(edebug-get-buffer-window, edebug-sit-for, edebug-input-pending-p):
Remove aliases, use the un-prefixed name instead.
(edebug-pop-to-buffer): Consider other frames.
(edebug-original-read):: Make it more obvious that it's always defined.
(edebug--make-form-data-entry, edebug--form-data-name)
(edebug--form-data-begin, edebug--form-data-end): Rename from the
single-dashed name, and implement with cl-defstruct.
(edebug-set-form-data-entry): Use the standard accessors.
(edebug-make-top-form-data-entry): Use push.
(edebug-no-match): Drop useless `funcall'.
(mapcar, mapconcat, mapatoms, apply, funcall): Don't add debug specs
to functions.
(defsubst, dont-compile, eval-when-compile, eval-and-compile)
(delay-mode-hooks, with-temp-file, with-temp-message, ad-dolist)
(with-syntax-table, push, pop, 1value, noreturn, defadvice)
(easy-menu-define, with-custom-print): Remove redundant specs.
(edebug-outside-overriding-local-map)
(edebug-outside-overriding-terminal-local-map): Remove, unused.
(edebug--display): Bind unread-command-events directly to nil rather
than binding it to unread-command-events and later setting it to nil.
(edebug--display): Kill edebug-eval-buffer here...
(edebug--recursive-edit): ...rather than here.
Bind standard-output and standard-input.
(edebug-eval): Check cl-macroexpand-all is fboundp.
(edebug-temp-display-freq-count): Fix last change.

* lisp/emacs-lisp/easymenu.el (easy-menu-define): Add `debug' spec.
* lisp/subr.el (noreturn, 1value): Add `debug' spec.
* lisp/emacs-lisp/advice.el: Require cl-lib.
(ad-copy-tree): Remove, use copy-tree instead.
(ad-dolist): Remove use dolist or cl-dolist instead.
(ad-do-return): Remove, use cl-return instead.
(defadvice): Add `debug' spec.
2012-09-13 23:55:16 -04:00
Stefan Monnier
bfeae2cf09 Remove unread-command-char.
* src/keyboard.c (read_char, requeued_events_pending_p, Finput_pending_p)
(Fdiscard_input, quit_throw_to_read_char, init_keyboard)
(syms_of_keyboard): Remove support for unread-command-char.
* lisp/emacs-lisp/debug.el (debugger-outer-unread-command-char, debug)
(debugger-env-macro): Remove support for unread-command-char.

* lisp/ehelp.el (with-electric-help): Accept functions in
electric-help-form-to-execute.
(electric-help-execute-extended, electric-help-ctrl-x-prefix): Use it.
And replace unread-command-char -> unread-command-events.

* lisp/subr.el (set-temporary-overlay-map): Minimize slightly the impact of
the temporary map re-appearing on emulation-mode-map-alists.

* lisp/emacs-lisp/edebug.el (def-edebug-form-spec): Remove, it's been broken
since 22.1.
2012-09-12 15:16:36 -04:00
Leo Liu
d02e58f8da Mention with-demoted-errors in the doc-string of ignore-errors 2012-09-12 01:47:25 +08:00
Bastien Guerry
baa26ea033 * subr.el (set-temporary-overlay-map): Add a docstring. (bug#12346)
Bug #12346 is not closed as this commit does not document
`set-temporary-overlay-map' in the manual.
2012-09-11 18:45:31 +02:00
Chong Yidong
011474aa5a Allow scrolling in y-or-n-p.
* lisp/replace.el (query-replace-map): Bind four new symbols for
requesting window scrolling.

* lisp/subr.el (y-or-n-p): Handle the window-scrolling bindings in
query-replace-map.

* lisp/custom.el (custom-theme-load-confirm): Use y-or-n-p.

* lisp/window.el (scroll-other-window-down): Make the arg optional.

* lisp/emacs-lisp/map-ynp.el (map-y-or-n-p): Don't bind scrolling keys
since they are now in query-replace-map.

* doc/lispref/minibuf.texi (Yes-or-No Queries): Document recentering and
scrolling in y-or-n-p.  Remove gratuitous example.

* doc/lispref/searching.texi (Search and Replace): Document window scrolling
entries in query-replace-map.

Fixes: debbugs:8948
2012-09-09 14:43:47 +08:00
Drew Adams
1715f2dbca * subr.el (add-to-history): Fix delete usage.
Fixes: debbugs:12314
2012-09-08 22:30:09 +08:00
Chong Yidong
6dcef6eca7 Introduce "raw syntax descriptor" terminology, and use it.
* syntax.texi (Syntax Table Internals): Define "raw syntax
descriptor" terminology.
(Syntax Descriptors): Mention raw syntax descriptors.

* lisp/subr.el (syntax-after, syntax-class): Doc fix.

* syntax.c (Fstring_to_syntax): Doc fix.

Fixes: debbugs:12383
2012-09-08 22:23:01 +08:00
Chong Yidong
145823ecb2 Let ESC ESC quit in read-char-choice, and use it in userlock.el.
* lisp/subr.el (read-char-choice): Allow quitting via ESC ESC.

* lisp/userlock.el (ask-user-about-supersession-threat): Use
read-char-choice.

Fixes: debbugs:12093
2012-09-07 18:19:58 +08:00
Chong Yidong
e5c2edf79b Add a utility function buffer-narrowed-p, and use it.
* lisp/subr.el (buffer-narrowed-p): New function.

* lisp/ses.el (ses-widen):
* lisp/simple.el (count-words--buffer-message):
* lisp/net/browse-url.el (browse-url-of-buffer): Use it

* lisp/simple.el (count-words-region): Don't signal an error if there
is a non-nil prefix arg and the mark is not set.

* doc/lispref/positions.texi (Narrowing): Document buffer-narrowed-p.
2012-09-07 16:58:31 +08:00
Tom Tromey
fb77afbe75 add convenience macros with-mutex and until-condition
with-mutex is a safe way to run some code with a mutex held.
until-condition is a safe way to wait on a condition variable.
2012-08-20 07:56:02 -06:00