1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-15 07:41:09 -08:00
Commit graph

108502 commits

Author SHA1 Message Date
Paul Eggert
50f2e553ce Avoid _setjmp/_longjmp problems with local nonvolatile variables.
If a nonvolatile local variable is written before a _longjmp to
the frame containing the variable, and is read after the _longjmp,
the value read is indeterminate.  Some local variables of type
'struct handler' and 'struct catchtag' are used in this way, so
mark each of their slots as volatile if the slot can be set before
_longjmp and read afterwards.
* lisp.h (struct handler): var and chosen_clause are now volatile.
(struct catchtag): val, next, and pdlcount are now volatile.
2012-09-11 16:50:28 -07:00
Paul Eggert
ae1d87e24e Prefer assignment to memcpy when either will do.
* lib-src/pop.c (socket_connection) [HAVE_GETADDRINFO]:
* src/bidi.c (bidi_push_it, bidi_pop_it):
* src/fns.c (copy_hash_table):
* src/image.c (define_image_type):
* src/keyboard.c (kbd_buffer_store_event_hold):
* src/process.c (Fprocess_send_eof):
* src/xfaces.c (x_create_gc) [HAVE_NS]:
* src/xgselect.c (xg_select):
Use assignment, not memcpy, as either will do here, and assignment is
more likely to catch type errors.
2012-09-11 15:59:50 -07:00
Paul Eggert
5779a1dc62 * alloc.c (discard_killed_buffers): Tune and simplify a bit.
Use pointer-to-a-pointer to simplify and avoid a NILP check each
time an item is removed.  No need to mark this function 'inline';
the compiler knows better than we do.
2012-09-11 13:35:23 -07: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
9011078f9d Fix 2012-09-11T14:06:33Z!bastien1@free.fr. 2012-09-11 19:43:21 +02:00
Jan Djärv
c4c9756b17 * nsterm.h: Add delay parameter to updateFrameSize.
* nsterm.m (ns_judge_scroll_bars): Pass NO to updateFrameSize.
(updateFrameSize:): Add delay parameter to updateFrameSize, send it
to change_frame_size.
(windowDidResize:): Pass YES to updateFrameSize.

Fixes: debbugs:12388
2012-09-11 19:08:02 +02: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
Dmitry Antipov
d73e321cc2 Discard killed buffers from deleted window and frame objects.
This reduces an amount of references to killed buffers and
helps GC to reclaim them faster.
* alloc.c (discard_killed_buffers): New function.
(mark_object): Use it for deleted windows and frames.
(mark_object): If symbol's value is set up for a killed buffer
or deleted frame, restore it's global binding.
* data.c (swap_in_global_binding): Add GC notice.
(swap_in_symval_forwarding): Use convenient set_blv_where.
* window.c (wset_next_buffers, wset_prev_buffers): Move ...
* window.h: ... to here.
2012-09-11 19:42:50 +04:00
Bastien Guerry
96d0357142 * minibuffer.el (completion-table-subvert): Fix docstring. (bug#12347) 2012-09-11 16:06:33 +02:00
Bastien Guerry
04e8abfa69 * help-fns.el (describe-variable): Fix typo. (bug#12346) 2012-09-11 15:43:06 +02:00
Glenn Morris
2c98a6250e Auto-commit of generated files. 2012-09-11 06:17:36 -04:00
Julien Danjou
95729d50c0 gnus-notifications.el: add nil checks 2012-09-11 10:08:59 +00:00
Glenn Morris
9d9edd4bae Be more explicit about some Makefile dependencies
* Makefile.in (install-arch-dep, install-arch-indep, install-doc):
Be more explicit about dependencies, for parallel `make install'.

It is not so unreasonable to run `make -j# install' from a clean state
for a self-contained NS build, where the "installation" happens within
the build tree.
2012-09-11 00:45:38 -07:00
Glenn Morris
511fd0b2f4 load-path-shadows-font-lock-keywords tweak
* lisp/emacs-lisp/shadow.el (load-path-shadows-font-lock-keywords):
Be more robust about locating simple.el.
2012-09-11 00:13:21 -07:00
Dmitry Antipov
e578f3813f Convenient macro to check whether the buffer is live.
* buffer.h (BUFFER_LIVE_P): New macro.
* alloc.c, buffer.c, editfns.c, insdel.c, lread.c, marker.c:
* minibuf.c, print.c, process.c, window.c, xdisp.c: Use it.
2012-09-11 08:22:03 +04:00
YAMAMOTO Mitsuharu
3057e615af Fix wrong overhang display for gstring compositions (Bug#12364).
* xdisp.c (right_overwritten, right_overwriting): Also handle gstring
composition cases (Bug#12364).

* xterm.c (x_draw_glyph_string): Avoid overwriting inverted left
overhang of succeeding glyphs overlapping box cursor.

* w32term.c (x_draw_glyph_string): Likewise.
2012-09-11 12:32:41 +09:00
Paul Eggert
c990426a98 Simplify, document, and port floating-point.
The porting part of this patch fixes bugs on non-IEEE platforms
with frexp, ldexp, logb.
* admin/CPP-DEFINES (HAVE_CBRT, HAVE_LOGB, logb): Remove.
* configure.ac (logb, cbrt): Do not check for these functions,
as they are not being used.
* doc/lispref/numbers.texi (Float Basics, Arithmetic Operations, Math Functions):
Document that / and mod (with floating point arguments), along
with asin, acos, log, log10, expt and sqrt, return special values
instead of signaling exceptions.
(Float Basics): Document that logb operates on the absolute value
of its argument.
(Math Functions): Document that (log ARG BASE) also returns NaN if
BASE is negative.  Document that (expt X Y) returns NaN if X is a
finite negative number and Y a finite non-integer.
* etc/NEWS: Document NaNs versus signaling-error change.
* src/data.c, src/lisp.h (Qdomain_error, Qsingularity_error, Qunderflow_error):
Now static.
* src/floatfns.c: Simplify discussion of functions that Emacs doesn't
support, by removing commented-out code and briefly listing the
C89 functions excluded.  The commented-out stuff was confusing
maintenance, e.g., we thought we needed cbrt but it was commented out.
(logb): Remove decl; no longer needed.
(isfinite): New macro, if not already supplied.
(isnan): Don't replace any existing macro.
(Ffrexp, Fldexp): Define even if !HAVE_COPYSIGN, as frexp and ldexp
are present on all C89 platforms.
(Ffrexp): Do not special-case zero, as frexp does the right thing
for that case.
(Flogb): Do not use logb, as it doesn't have the desired meaning
on hosts that use non-base-2 floating point.  Instead, stick with
frexp, which is C89 anyway.  Do not pass an infinity or a NaN to
frexp, to avoid getting an unspecified result.
2012-09-10 19:28:27 -07:00
Paul Eggert
6fda35f2b3 * xdisp.c (Qinhibit_debug_on_message): Now static. 2012-09-10 18:20:56 -07:00
Jan Djärv
16130a5868 * nsterm.m (ns_update_begin): Set clip path to whole view by using
NSBezierPath.

Fixes: debbugs:12131
2012-09-10 23:01:45 +02:00
Michael Mauger
04e082b0dd * progmodes/sql.el: Version 3.1
(sql-db2-escape-newlines): New variable.
(sql-escape-newlines-filter): Use it.
2012-09-10 15:22:53 -04:00
Juanma Barranquero
399a361b88 lisp/custom.el (custom-theme-load-confirm): Remove unneeded assignment. 2012-09-10 17:52:15 +02:00
Dan Nicolaescu
0780c51704 * vc/diff-mode.el (diff-mode-menu): diff-remove-trailing-whitespace. 2012-09-10 10:40:13 -04:00
Dan Nicolaescu
cdff2ce78c Mention diff-remove-trailing-whitespace. 2012-09-10 10:33:08 -04:00
Juanma Barranquero
8c718c5852 nt/config.nt: Sync with autogen/config.in.
(FLOAT_CHECK_DOMAIN, HAVE_FMOD, HAVE_FREXP)
(HAVE_INVERSE_HYPERBOLIC, NO_MATHERR): Remove.
2012-09-10 09:37:53 -04:00
Glenn Morris
a31a4cdacb Auto-commit of generated files. 2012-09-10 06:18:11 -04:00
Chong Yidong
d105a573fc * fns.c (Fdelq, Fdelete): Doc fix. 2012-09-10 11:25:10 +08:00
Glenn Morris
fa05bfe052 * mail/emacsbug.el (report-emacs-bug): Trap load-path-shadows errors. 2012-09-09 19:19:23 -07:00
Paul Eggert
ff55dfe832 Parenthesize macro bodies.
* lisp.h (XSETINT, XSETCONS, XSETVECTOR, XSETSTRING, XSETSYMBOL)
(XSETFLOAT, XSETMISC): Parenthesize.
2012-09-09 18:17:23 -07:00
Stefan Monnier
9b851e2550 New emacs-lisp-byte-code-mode; misc minor changes.
* lisp/emacs-lisp/lisp-mode.el (emacs-list-byte-code-comment-re): New var.
(emacs-lisp-byte-code-comment)
(emacs-lisp-byte-code-syntax-propertize, emacs-lisp-byte-code-mode):
New functions.
(eval-sexp-add-defvars): Don't skip defvars in column >0.
(eval-defun-2): Remove bogus interactive spec.
(lisp-indent-line): Remove redundant whole-exp code, now done in
indent-according-to-mode.
(save-match-data): Remove redundant indent data.
* lisp/emacs-lisp/benchmark.el (benchmark-run, benchmark-run-compiled):
Use `declare'.
* lisp/gnus/qp.el (quoted-printable-decode-region):
Inline+CSE+strength-reduction.
2012-09-09 21:16:13 -04:00
Paul Eggert
b8b0239fd0 Improve robustness of 'make bootstrap'.
Run autogen.sh after bootstrap-clean, to avoid bzr pull issues.
* INSTALL, README: Document autogen.sh.
* Makefile.in (Makefile): Mark it as precious, since it's updated
atomically.
(MAKE_CONFIG_STATUS): New macro.
(config.status, bootstrap): Use it.  This causes 'make bootstrap'
to run config.status with the --recheck option, which is more
appropriate for a bootstrap.
(bootstrap): Run autogen.sh right after cleaning.  Don't worry
about failures due to missing tools.
* autogen.sh: Exit with status 101 when failing due to missing tools.
* make-dist: Distribute autogen.sh.

Fixes: debbugs:12376
2012-09-09 18:03:27 -07:00
Juri Linkov
3231d532c7 * lisp/replace.el (replace-regexp-lax-whitespace): New defcustom.
(replace-lax-whitespace, query-replace-regexp)
(query-replace-regexp-eval, replace-regexp): Doc fix.
(perform-replace, replace-highlight): Let-bind
isearch-lax-whitespace to replace-lax-whitespace and
isearch-regexp-lax-whitespace to replace-regexp-lax-whitespace.

* lisp/isearch.el (isearch-query-replace): Let-bind
replace-lax-whitespace to isearch-lax-whitespace and
replace-regexp-lax-whitespace to
isearch-regexp-lax-whitespace.

Fixes: debbugs:10885
2012-09-10 01:15:24 +03:00
Stefan Monnier
e7032e7c6c * src/lisp.h (make_lisp_ptr): New macro to replace XSET.
(XSETCONS, XSETVECTOR, XSETSTRING, XSETSYMBOL, XSETFLOAT, XSETMISC):
Use it.
2012-09-09 17:24:04 -04:00
Stefan Monnier
70fe823684 * lisp/eshell/em-unix.el (eshell/sudo): Explicitly drop return value. 2012-09-09 17:11:14 -04:00
Eli Zaretskii
aba05ce9b6 Avoid leaving traces of cursor when entering linum-mode.
src/fringe.c (draw_fringe_bitmap_1): Don't reduce the width of the
 left fringe if the window has a left margin.  This avoids leaving
 traces of the cursor because its leftmost pixel is not drawn over.
2012-09-09 23:10:36 +03:00
Eli Zaretskii
e99579563e Fix bug #12277 with incomplete redisplay of the vertical border between windows.
src/dispnew.c (update_window_line): When the left margin area of a
 screen line is updated, set the redraw_fringe_bitmaps_p flag of
 that screen line.
2012-09-09 20:59:50 +03:00
Paul Eggert
f6196b87e1 Assume C89 or later for math functions.
This simplifies the code, and makes it a bit smaller and faster,
and (most important) makes it easier to clean up signal handling
since we can stop worring about floating-point exceptions in
library code.  That was a problem before C89, but the problem
went away many years ago on all practical Emacs targets.
* configure.ac (frexp, fmod): Remove checks for these functions,
as we now assume them.
(FLOAT_CHECK_DOMAIN, HAVE_INVERSE_HYPERBOLIC, NO_MATHERR)
(HAVE_EXCEPTION):
Remove; no longer needed.
* admin/CPP-DEFINES (HAVE_FMOD, HAVE_FREXP, FLOAT_CHECK_DOMAIN)
(HAVE_INVERSE_HYPERBOLIC, NO_MATHERR): Remove.
* src/data.c, src/image.c, src/lread.c, src/print.c:
Don't include <math.h>; no longer needed.
* src/data.c, src/floatfns.c (IEEE_FLOATING_POINT): Don't worry that it
might be autoconfigured, as that never happens.
* src/data.c (fmod):
* src/doprnt.c (DBL_MAX_10_EXP):
* src/print.c (DBL_DIG):
Remove.  C89 or later always defines these.
* src/floatfns.c (HAVE_MATHERR, FLOAT_CHECK_ERRNO, FLOAT_CHECK_DOMAIN)
(in_float, float_error_arg, float_error_arg2, float_error_fn_name)
(arith_error, domain_error, domain_error2):
Remove all this pre-C89 cruft.  Do not include <errno.h> as that's
no longer needed -- we simply return what C returns.  All uses removed.
(IN_FLOAT, IN_FLOAT2): Remove.  All uses replaced with
the wrapped code.
(FLOAT_TO_INT, FLOAT_TO_INT2, range_error, range_error2):
Remove.  All uses expanded, as these macros are no longer used
more than once and are now more trouble than they're worth.
(Ftan): Use tan, not sin / cos.
(Flogb): Assume C89 frexp.
(fmod_float): Assume C89 fmod.
(matherr) [HAVE_MATHERR]: Remove; no longer needed.
(init_floatfns): Remove.  All uses removed.
2012-09-09 09:06:33 -07:00
Alan Mackenzie
8ed43f1548 Correct the handling of two c-state-cache state variables.
cc-engine.el (c-state-cache-init): Initialise
c-state-semi-nonlit-pos-cache\(-limit\)? properly.
(c-record-parse-state-state): record
c-state-semi-nonlit-pos-cache\(-limit\)?.
2012-09-09 11:03:37 +00:00
Jan Djärv
c2cbbdd165 Remove debug prints 2012-09-09 10:44:22 +02:00
Andreas Schwab
bfabf70a86 * lisp/register.el (register-separator): Rename from
separator-register.  All uses changed.  Doc fix.
(register): Fix version.
2012-09-09 10:10:56 +02:00
Chong Yidong
bb6b0efc34 Clarify descriptions of delq and delete in Lisp manual.
* doc/lispref/lists.texi (Sets And Lists): Explain that the return value for
delete should be used, like for delq.
2012-09-09 15:50:45 +08:00
Chong Yidong
e4e55af11e * minibuf.texi: Fix last change. 2012-09-09 15:09:03 +08: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
Chong Yidong
a8b7cd8d8b Use quit-window for quitting the *Local Variables* buffer.
* lisp/files.el (hack-local-variables-confirm): Use quit-window to kill
the *Local Variables* buffer.
2012-09-09 13:50:43 +08:00
Alan Mackenzie
48e8c8aad6 Backport: AWK Mode: make auto-newline work when there's "==" in the
pattern.

Fixes: debbugs:12188
2012-09-09 09:56:38 +08:00
Dmitry Gutov
c326883141 * lisp/progmodes/ruby-mode.el (ruby-toggle-block): Guess the current block,
not just expect to be at its beginning.  Adjust callees.
Succeed when do-end block has no space before the pipe character.
(ruby-brace-to-do-end): When the original block is one-liner,
convert to multiline.  Reindent the result.

* test/automated/ruby-mode-tests.el:
(ruby-toggle-block-to-multiline): New test.
(ruby-should-indent-buffer, ruby-toggle-block-to-do-end)
(ruby-toggle-block-to-brace): Use buffer-string.
2012-09-09 03:32:25 +04:00
Jan Djärv
9d7f18633a * nsterm.m (ns_draw_fringe_bitmap, ns_dumpglyphs_image): Take back
compositeToPoint for OSX < 10.6.

Fixes: debbugs:12390
2012-09-08 22:16:39 +02:00
Jambunathan K
0979429b33 * lisp/register.el (increment-register): Route it to `append-to-register',
if register contains text so that `C-x r +' can now be
used for appending to a text register.
(register): New group.
(register-separator): New user option.
(append-to-register, prepend-to-register): Add separator based on
`register-separator.
* doc/emacs/regs.texi (Text Registers): `C-x r +' can now be used instead of
M-x append-to-register.  New option `register-separator'.
(Number Registers): Mention that `C-x r +' is polymorphic.

Fixes: debbugs:12217
2012-09-08 16:09:06 -04:00
Alan Mackenzie
ace2989a84 AWK Mode: make auto-newline work when there's "==" in the pattern.
cc-cmds.el (c-point-syntax): Handle virtual semicolons correctly.
cc-engine.el (c-guess-basic-syntax CASE 5A.3): Test more rigorously for
"=" token.
2012-09-08 20:00:13 +00:00
Paul Eggert
eabf040441 * floatfns.c (Ftan): Use tan (x), not (sin (x) / cos (x)).
This produces more-accurate results.
2012-09-08 12:57:32 -07:00
Jan Djärv
0b3b1d2322 * nsterm.m (updateFrameSize): Call setFrame: on the view when size
changes.

Fixes: debbugs:12088
2012-09-08 19:22:15 +02:00