1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-09 13:10:57 -08:00
Commit graph

10020 commits

Author SHA1 Message Date
Jan Djärv
ef3862adbd * nsterm.m (ns_update_auto_hide_menu_bar): Define MAC_OS_X_VERSION_10_6
if not defined.

Fixes: debbugs:8403
2011-04-03 10:30:57 +02:00
Juanma Barranquero
376a700656 src/xdisp.c: Remove some unused parameters.
* xdisp.c (display_count_lines): Remove parameter `start',
  unused since 1998-01-01T02:27:27Z!rms@gnu.org.  All callers changed.
  (get_char_face_and_encoding): Remove parameter `multibyte_p',
  unused since 2008-05-14T01:40:23Z!handa@m17n.org.  All callers changed.
  (fill_stretch_glyph_string): Remove parameters `row' and `area',
  unused at least since Kim's GUI unification at 2003-03-16T20:45:46Z!storm@cua.dk
  and thereabouts.  All callers changed.
  (get_per_char_metric): Remove parameter `f', unused since
  2008-05-14T01:40:23Z!handa@m17n.org.  All callers changed.
2011-04-03 01:53:55 +02:00
Jim Meyering
6ca3801d0e do not dereference NULL upon failed strdup
* nsfont.m (ns_descriptor_to_entity): Use xstrdup, not strdup.
(ns_get_family): Likewise.
2011-04-02 15:52:34 +02:00
Juanma Barranquero
d8e2b5ba62 src/eval.c (unwind_to_catch) [DEBUG_GCPRO]: Remove redundant assignment. 2011-04-02 15:11:16 +02:00
Jan Djärv
8c74fcbddb * nsterm.m (ns_update_auto_hide_menu_bar): Only for OSX 10.6 or later.
Fixes: debbugs:8403
2011-04-02 09:11:00 +02:00
Stefan Monnier
034086489c Merge from lexical-binding branch.
* doc/lispref/eval.texi (Eval): Discourage the use of `eval'.
Document its new `lexical' argument.

* doc/lispref/variables.texi (Defining Variables): Mention the new meaning of `defvar'.
(Lexical Binding): New sub-section.

* lisp/Makefile.in (BIG_STACK_DEPTH, BIG_STACK_OPTS, BYTE_COMPILE_FLAGS):
New variables.
(compile-onefile, .el.elc, compile-calc, recompile): Use them.
(COMPILE_FIRST): Add macroexp and cconv.
* lisp/makefile.w32-in: Mirror changes in Makefile.in.

* lisp/vc/cvs-status.el:
* lisp/vc/diff-mode.el:
* lisp/vc/log-edit.el:
* lisp/vc/log-view.el:
* lisp/vc/smerge-mode.el:
* lisp/textmodes/bibtex-style.el:
* textmodes/css.el:
* lisp/startup.el:
* lisp/uniquify.el:
* lisp/minibuffer.el: 
* lisp/newcomment.el: 
* lisp/reveal.el: 
* lisp/server.el: 
* lisp/mpc.el: 
* lisp/emacs-lisp/smie.el: 
* lisp/doc-view.el: 
* lisp/dired.el: 
* lisp/abbrev.el: Use lexical binding.

* lisp/custom.el (custom-initialize-default, custom-declare-variable):
Use `defvar'.

* lisp/files.el (lexical-binding): Declare safe.

* lisp/help-fns.el (help-split-fundoc): Return nil if there's nothing else
than the arglist.
(help-add-fundoc-usage): Don't add `Not documented'.
(help-function-arglist): Handle closures, subroutines, and new
byte-code-functions.
(help-make-usage): Remove leading underscores.
(describe-function-1): Handle closures.
(describe-variable): Use special-variable-p for completion.

* lisp/simple.el (with-wrapper-hook, apply-partially): Move to subr.el.

* lisp/subr.el (apply-partially): Use new closures rather than CL.
(--dolist-tail--, --dotimes-limit--): Don't declare dynamic.
(dolist, dotimes): Use slightly different expansion for lexical code.
(functionp): Move to C.
(letrec): New macro.
(with-wrapper-hook): Use it and apply-partially instead of CL.
(eval-after-load): Preserve lexical-binding.
(save-window-excursion, with-output-to-temp-buffer): Turn them
into macros.

* lisp/emacs-lisp/advice.el (ad-arglist): Use help-function-arglist.

* lisp/emacs-lisp/autoload.el (make-autoload): Don't burp on trivial macros.

* lisp/emacs-lisp/byte-opt.el: Use lexical binding.
(byte-inline-lapcode): Remove (to bytecomp).
(byte-compile-inline-expand): Pay attention to inlining to/from
lexically bound code.
(byte-compile-unfold-lambda): Don't handle byte-code-functions
any more.
(byte-optimize-form-code-walker): Don't handle save-window-excursion
any more and don't call compiler-macros.
(byte-compile-splice-in-already-compiled-code): Remove.
(byte-code): Don't inline any more.
(disassemble-offset): Receive `bytes' as argument rather than via
dynamic scoping.
(byte-compile-tag-number): Declare before first use.
(byte-decompile-bytecode-1): Handle new byte-codes, don't change
`return' even if make-spliceable.
(byte-compile-side-effect-and-error-free-ops): Add stack-ref, remove
obsolete interactive-p.
(byte-optimize-lapcode): Optimize new lap-codes.
Don't trip up on new form of `byte-constant' lap code.

* lisp/emacs-lisp/byte-run.el (make-obsolete): Don't set the `byte-compile'
handler any more.

* lisp/emacs-lisp/bytecomp.el: Use lexical binding instead of
a "bytecomp-" prefix.  Macroexpand everything as a separate phase.
(byte-compile-initial-macro-environment):
Handle declare-function here.
(byte-compile--lexical-environment): New var.
(byte-stack-ref, byte-stack-set, byte-discardN)
(byte-discardN-preserve-tos): New lap codes.
(byte-interactive-p): Don't use any more.
(byte-compile-push-bytecodes, byte-compile-push-bytecode-const2):
New macros.
(byte-compile-lapcode): Use them and handle new lap codes.
(byte-compile-obsolete): Remove.
(byte-compile-arglist-signature): Handle new byte-code arg"lists".
(byte-compile-arglist-warn): Check late def of inlinable funs.
(byte-compile-cl-warn): Don't silence warnings for compiler-macros
since they should have been expanded by now.
(byte-compile--outbuffer): Rename from bytecomp-outbuffer.
(byte-compile-from-buffer): Remove unused second arg.
(byte-compile-preprocess): New function.
(byte-compile-toplevel-file-form): New function to distinguish
file-form calls from outside from file-form calls from hunk-handlers.
(byte-compile-file-form): Simplify.
(byte-compile-file-form-defsubst): Remove.
(byte-compile-file-form-defmumble): Simplify now that
byte-compile-lambda always returns a byte-code-function.
(byte-compile): Preprocess.
(byte-compile-byte-code-maker, byte-compile-byte-code-unmake):
Remove, not used any more.
(byte-compile-arglist-vars, byte-compile-make-lambda-lexenv)
(byte-compile-make-args-desc): New funs.
(byte-compile-lambda): Handle lexical functions.  Always return
a byte-code-function.
(byte-compile-reserved-constants): New var, to make up room for
closed-over variables.
(byte-compile-constants-vector): Obey it.
(byte-compile-top-level): New args `lexenv' and `reserved-csts'.
(byte-compile-macroexpand-declare-function): New function.
(byte-compile-form): Call byte-compile-unfold-bcf to inline immediate
byte-code-functions.
(byte-compile-form): Check obsolescence here.
(byte-compile-inline-lapcode, byte-compile-unfold-bcf): New functions.
(byte-compile-variable-ref): Remove.
(byte-compile-dynamic-variable-op): New fun.
(byte-compile-dynamic-variable-bind, byte-compile-variable-ref)
(byte-compile-variable-set): New funs.
(byte-compile-discard): Add 2 args.
(byte-compile-stack-ref, byte-compile-stack-set)
(byte-compile-make-closure, byte-compile-get-closed-var): New funs.
(byte-compile-funarg, byte-compile-funarg-2): Remove, handled in
macroexpand-all instead.
(byte-compile-quote-form): Remove.
(byte-compile-push-binding-init, byte-compile-not-lexical-var-p)
(byte-compile-bind, byte-compile-unbind): New funs.
(byte-compile-let): Handle let* and lexical binding.
(byte-compile-let*): Remove.
(byte-compile-catch, byte-compile-unwind-protect)
(byte-compile-track-mouse, byte-compile-condition-case):
Handle a new :fun-body form, used for lexical scoping.
(byte-compile-save-window-excursion)
(byte-compile-with-output-to-temp-buffer): Remove.
(byte-compile-defun): Simplify.
(byte-compile-stack-adjustment): New fun.
(byte-compile-out): Use it.
(byte-compile-refresh-preloaded): Don't reload byte-compiler files.

* lisp/emacs-lisp/cconv.el: New file.

* lisp/emacs-lisp/cl-extra.el (cl-macroexpand-all): Properly quote CL
closures.

* lisp/emacs-lisp/cl-macs.el (cl-byte-compile-block)
(cl-byte-compile-throw): Remove.
(cl-block-wrapper, cl-block-throw): Use compiler-macros instead.

* lisp/emacs-lisp/cl.el (pushnew): Silence warning.

* lisp/emacs-lisp/disass.el (disassemble-internal): Handle new
`closure' objects.
(disassemble-1): Handle new byte codes.

* lisp/emacs-lisp/edebug.el (edebug-eval-defun)
(edebug-eval-top-level-form): Use eval-sexp-add-defvars.
(edebug-toggle): Avoid `eval'.

* lisp/emacs-lisp/eieio-comp.el: Remove.

* lisp/emacs-lisp/eieio.el (byte-compile-file-form-defmethod):
Don't autoload.
(eieio-defgeneric-form-primary-only-one): Use `byte-compile' rather
than the internal `byte-compile-lambda'.
(defmethod): Don't hide code under quotes.
(eieio-defmethod): New `code' argument.

* lisp/emacs-lisp/float-sup.el (pi): Don't declare as dynamically bound.

* lisp/emacs-lisp/lisp-mode.el (eval-last-sexp-1):
Use eval-sexp-add-defvars.
(eval-sexp-add-defvars): New fun.

* lisp/emacs-lisp/macroexp.el: Use lexical binding.
(macroexpand-all-1): Check obsolete macros.  Expand compiler-macros.
Don't convert ' to #' without checking that it's indeed quoting
a lambda.

* lisp/emacs-lisp/pcase.el: Don't use destructuring-bind.
(pcase--memoize): Rename from pcase-memoize.  Change weakness.
(pcase): Add `let' pattern.
Change memoization so it actually works.
(pcase-mutually-exclusive-predicates): Add byte-code-function-p.
(pcase--u1) <guard, pred>: Fix possible shadowing problem.
<let>: New case.

* src/alloc.c (Fmake_symbol): Init new `declared_special' field.

* src/buffer.c (defvar_per_buffer): Set new `declared_special' field.

* src/bytecode.c (Bstack_ref, Bstack_set, Bstack_set2, BdiscardN):
New byte-codes.
(exec_byte_code): New function extracted from Fbyte_code to handle new
calling convention for byte-code-functions.  Add new byte-codes.

* src/callint.c (Fcall_interactively): Preserve lexical-binding mode for
interactive spec.

* src/doc.c (Fdocumentation, store_function_docstring):
* src/data.c (Finteractive_form): Handle closures.

* src/eval.c (Fsetq): Handle lexical vars.
(Fdefun, Fdefmacro, Ffunction): Make closures when needed.
(Fdefconst, Fdefvaralias, Fdefvar): Mark as dynamic.
(FletX, Flet): Obey lexical binding.
(Fcommandp): Handle closures.
(Feval): New `lexical' arg.
(eval_sub): New function extracted from Feval.  Use it almost
everywhere where Feval was used.  Look up vars in lexical env.
Handle closures.
(Ffunctionp): Move from subr.el.
(Ffuncall): Handle closures.
(apply_lambda): Remove `eval_flags'.
(funcall_lambda): Handle closures and new byte-code-functions.
(Fspecial_variable_p): New function.
(syms_of_eval): Initialize the Vinternal_interpreter_environment var,
but without exporting it to Lisp.

* src/fns.c (concat, mapcar1): Accept byte-code-functions.

* src/image.c (parse_image_spec): Use Ffunctionp.

* src/keyboard.c (eval_dyn): New fun.
(menu_item_eval_property): Use it.

* src/lisp.h (struct Lisp_Symbol): New field `declared_special'.

* src/lread.c (lisp_file_lexically_bound_p): New function.
(Fload): Bind Qlexical_binding.
(readevalloop): Remove `evalfun' arg.
Bind Qinternal_interpreter_environment.
(Feval_buffer): Bind Qlexical_binding.
(defvar_int, defvar_bool, defvar_lisp_nopro, defvar_kboard):
Mark as dynamic.
(syms_of_lread): Declare `lexical-binding'.

* src/window.c (Ftemp_output_buffer_show): New fun.
(Fsave_window_excursion):
* src/print.c (Fwith_output_to_temp_buffer): Move to subr.el.
2011-04-01 13:19:52 -04:00
Stefan Monnier
7200d79c65 Miscellanous cleanups in preparation for the merge.
* lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker):
Remove debug statement.
* lisp/emacs-lisp/bytecomp.el (byte-compile-single-version)
(byte-compile-version-cond, byte-compile-delay-out)
(byte-compile-delayed-out): Remove, unused.
* src/bytecode.c (Fbyte_code): Revert to old calling convention.
* src/lisp.h (COMPILED_PUSH_ARGS): Remove, unused.
2011-04-01 11:16:50 -04:00
Juanma Barranquero
e2abce014d src/xdisp.c (redisplay_internal): Fix prototype. 2011-03-31 21:42:38 +02:00
Eli Zaretskii
63696a737c Fix bug #6671 with recentering and other scrolling problems.
src/xdisp.c (SCROLL_LIMIT): New macro.
 (try_scrolling): Use it when setting scroll_limit.  Limit
 scrolling to 100 screen lines.
 (redisplay_window): Even when falling back on "recentering",
 position point in the window according to scroll-conservatively,
 scroll-margin, and scroll-*-aggressively variables.
 (try_scrolling): When point is above the window, allow searching
 as far as scroll_max, or one screenful, to compute vertical
 distance from PT to the scroll margin position.  This prevents
 try_scrolling from unnecessarily failing when
 scroll-conservatively is set to a value slightly larger than the
 window height.  Clean up the case of PT below the margin at bottom
 of window: scroll_max can no longer be INT_MAX.  When aggressive
 scrolling is in use, don't let point enter the opposite scroll
 margin as result of the scroll.
 (syms_of_xdisp) <scroll-conservatively>: Document the
 threshold of 100 lines for never-recentering scrolling.

 doc/emacs/display.texi (Auto Scrolling): Document the limit of 100 lines
 for never-recentering scrolling with `scroll-conservatively'.
2011-03-31 21:12:30 +02:00
Juanma Barranquero
e4cc2dfc38 src/xdisp.c: Remove unused parameters.
* dispextern.h (move_it_by_lines):
* xdisp.c (move_it_by_lines): Remove parameter `need_y_p', unused
  since 2000-12-29T14:24:09Z!gerd@gnu.org.  All callers changed.
  (message_log_check_duplicate): Remove parameters `prev_bol' and
  `this_bol', unused since 1998-01-01T02:27:27Z!rms@gnu.org.  All callers changed.
  (redisplay_internal): Remove parameter `preserve_echo_area',
  unused since 1999-07-21T21:43:52Z!gerd@gnu.org.  All callers changed.
* indent.c (Fvertical_motion):
* window.c (window_scroll_pixel_based, Frecenter):
  Don't pass `need_y_p' to `move_it_by_lines'.
2011-03-31 03:37:51 +02:00
Eli Zaretskii
09725d2628 Documentation parts of the scroll fix.
src/xdisp.c (syms_of_xdisp) <scroll-conservatively>: Document the
 threshold of 100 lines for never-recentering scrolling.
 doc/emacs/display.texi (Auto Scrolling): Document the limit of 100
 lines for never-recentering scrolling with `scroll-conservatively'.
2011-03-30 22:59:42 +02:00
Stefan Monnier
44f230aa04 * src/eval.c (struct backtrace): Don't cheat with negative numbers, but do
steal a few bits to be more compact.
(interactive_p, Fbacktrace, Fbacktrace_frame, mark_backtrace):
Remove unneeded casts.
2011-03-30 15:18:12 -04:00
Stefan Monnier
1c47056297 * src/bytecode.c (Fbyte_code): CAR and CDR can GC. 2011-03-30 14:04:11 -04:00
Zachary Kanfer
888adce96c * src/keyboard.c (Fexecute_extended_command): Do log the "suggest key
binding" message.

Fixes: debbugs:7967
2011-03-30 09:35:37 -04:00
Paul Eggert
77861b9528 Fix more problems found by GCC 4.6.0's static checks. 2011-03-29 17:39:12 -07:00
Paul Eggert
de6dbc14a7 * unexelf.c (unexec) [! (defined _SYSTYPE_SYSV || defined __sgi)]:
Remove unused local var.
2011-03-29 17:19:27 -07:00
Paul Eggert
f838ed7b0a * editfns.c (Fmessage_box): Remove unused local var. 2011-03-29 17:17:26 -07:00
Paul Eggert
8289296548 Merge from mainline. 2011-03-29 16:35:49 -07:00
Eli Zaretskii
492001e973 Fix off-by-one in scroll down aggressively.
src/xdisp.c (try_scrolling): When scrolling down aggressively,
 scroll one screen line less, to make sure we end up at the margin
 for fractions close to 1.
2011-03-29 21:58:13 +02:00
Paul Eggert
792c7b2ba5 * xdisp.c (try_window_reusing_current_matrix, x_produce_glyphs):
(note_mode_line_or_margin_highlight, note_mouse_highlight):
Omit unused local vars.
2011-03-29 00:01:11 -07:00
Paul Eggert
c499e55717 * window.c (shrink_windows): Omit unused local var. 2011-03-28 23:59:27 -07:00
Paul Eggert
b01a1c2912 * menu.c (digest_single_submenu): Omit unused local var. 2011-03-28 23:58:36 -07:00
Paul Eggert
0bc329278f * dispnew.c (update_window) [PERIODIC_PREEMPTION_CHECKING]:
Omit unused local var.
2011-03-28 23:57:40 -07:00
Juanma Barranquero
461c2ab9a5 src/*.c: Remove some additional unused parameters.
* lisp.h (multibyte_char_to_unibyte):
* character.c (multibyte_char_to_unibyte): Remove parameter `rev_tbl',
  unused since 2002-03-01T01:16:34Z!handa@m17n.org and 2008-02-01T16:01:31Z!miles@gnu.org.
* character.h (CHAR_TO_BYTE8):
* cmds.c (internal_self_insert):
* editfns.c (general_insert_function):
* keymap.c (push_key_description):
* search.c (Freplace_match):
* xdisp.c (message_dolog, set_message_1): All callers changed.

* coding.c (encode_designation_at_bol): Remove parameter `charbuf_end',
  unused since 2002-03-01T01:17:24Z!handa@m17n.org and 2008-02-01T16:01:31Z!miles@gnu.org.
  All callers changed.
2011-03-29 00:41:01 +02:00
Stefan Monnier
f6d6298639 Don't reset post-command-hook to nil upon error.
* src/eval.c (enum run_hooks_condition): Remove.
(funcall_nil, funcall_not): New functions.
(run_hook_with_args): Call each function through a `funcall' argument.
Remove `cond' argument, now redundant.
(Frun_hooks, Frun_hook_with_args, Frun_hook_with_args_until_success)
(Frun_hook_with_args_until_failure): Adjust accordingly.
(run_hook_wrapped_funcall, Frun_hook_wrapped): New functions.
* src/keyboard.c (safe_run_hook_funcall): New function.
(safe_run_hooks_1, safe_run_hooks_error, safe_run_hooks): On error,
don't set the hook to nil, but remove the offending function instead.
(Qcommand_hook_internal): Remove, unused.
(syms_of_keyboard): Don't initialize Qcommand_hook_internal nor define
Vcommand_hook_internal.
* doc/lispref/commands.texi (Command Overview): post-command-hook is not reset
to nil any more.
2011-03-28 16:26:35 -04:00
Eli Zaretskii
9f3842cef7 Fix failures in try_scrolling when scrolling back.
src/xdisp.c (try_scrolling): When point is above the window, allow
 searching as far as scroll_max, or one screenful, to compute
 vertical distance from PT to the scroll margin position.  This
 prevents try_scrolling from unnecessarily failing when
 scroll-conservatively is set to a value slightly larger than the
 window height.
2011-03-28 21:30:35 +02:00
Juanma Barranquero
1db5b1ad87 src/*.c: Remove unused parameters and other warnings.
* dispextern.h (string_buffer_position): Remove declaration.

* print.c (strout): Remove parameter `multibyte', unused since
  1999-08-21T19:30:21Z!gerd@gnu.org.  All callers changed.

* search.c (boyer_moore): Remove parameters `len', `pos' and `lim',
  never used since function introduction in 1998-02-08T21:33:56Z!rms@gnu.org.
  All callers changed.

* w32.c (_wsa_errlist): Use braces for struct initializers.

* xdisp.c (string_buffer_position_lim): Remove parameter `w',
  never used since function introduction in 2001-03-09T18:41:50Z!gerd@gnu.org.
  All callers changed.
  (string_buffer_position): Likewise.  Also, make static (it's never
  used outside xdisp.c).
  (cursor_row_p): Remove parameter `w', unused since
  2000-10-17T16:08:57Z!gerd@gnu.org.  All callers changed.
  (decode_mode_spec): Remove parameter `precision', introduced during
  Gerd Moellmann's rewrite at 1999-07-21T21:43:52Z!gerd@gnu.org, but never used.
  All callers changed.
2011-03-28 05:29:18 +02:00
Eli Zaretskii
fd738ca513 Fix scrolling back with scroll-down-aggressively.
src/xdisp.c (try_scrolling): Clean up the case of PT below the
 margin at bottom of window: scroll_max can no longer be INT_MAX.
 (redisplay_window): Find character position of margin and use
 that, rather than adding margin to PT.
2011-03-27 22:01:46 +02:00
Paul Eggert
48011560d7 * keyboard.c (read_key_sequence): Don't check last_real_key_start redundantly. 2011-03-27 11:33:45 -07:00
Paul Eggert
32ad8845a4 * keyboard.c (keyremap_step, read_key_sequence): Use size_t for sizes. 2011-03-27 11:18:31 -07:00
Paul Eggert
ba0165e1f1 * keyboard.c (parse_modifiers_uncached, parse_modifiers):
Don't assume string length fits in int.
2011-03-27 10:14:11 -07:00
Jan Djärv
5ffb62aa7e Format doc and add customize for ns-auto-hide-menu-bar.
* lisp/cus-start.el (all): Add boolean ns-auto-hide-menu-bar.

* src/nsterm.m (syms_of_nsterm): Use doc: for ns-auto-hide-menu-bar.
2011-03-27 12:55:07 +02:00
Jan Djärv
f0a1382af3 Introduce ns-auto-hide-menu-bar to hide menubar for Emacs frames.
Code by Anders Lindgren.

* nsterm.m (ns_menu_bar_is_hidden): New variable.
(ns_constrain_all_frames, ns_menu_bar_should_be_hidden)
(ns_update_auto_hide_menu_bar): New functions.
(ns_update_begin): Call ns_update_auto_hide_menu_bar.
(applicationDidBecomeActive): Call ns_update_auto_hide_menu_bar and
ns_constrain_all_frames.
(constrainFrameRect): Return at once if ns_menu_bar_should_be_hidden.
(syms_of_nsterm): DEFVAR ns-auto-hide-menu-bar, init to Qnil.
2011-03-27 12:36:44 +02:00
Jan Djärv
5c380ffb17 * nsmenu.m (runDialogAt): Remove argument to timer_check. 2011-03-27 11:23:52 +02:00
Paul Eggert
3c59b4c9d6 * callproc.c (Fcall_process, Fcall_process_region): Use SAFE_ALLOCA
instead of alloca (Bug#8344).
2011-03-27 02:07:38 -07:00
Paul Eggert
5d5d959d59 * eval.c (Fbacktrace_frame): Don't assume nframes fits in int. 2011-03-27 01:31:16 -07:00
Paul Eggert
a3eed4788d * eval.c (Fbacktrace): Don't assume nargs fits in int. 2011-03-27 01:29:39 -07:00
Paul Eggert
eb4d412de8 * syntax.c (scan_sexps_forward): Avoid pointer wraparound. 2011-03-27 01:21:49 -07:00
Paul Eggert
1658b4014f Merge from atest branch. 2011-03-27 01:15:26 -07:00
Paul Eggert
fe75f92609 * chartab.c (sub_char_table_ref_and_range): Redo for slight
efficiency gain, and to bypass a gcc -Wstrict-overflow warning.
2011-03-27 01:10:27 -07:00
Paul Eggert
4a843dd730 Merge from mainline. 2011-03-26 19:32:40 -07:00
Glenn Morris
9af30bdf17 Remove (RET)SIGTYPE; it is identical to void on all supported systems.
Ref: http://lists.gnu.org/archive/html/emacs-devel/2011-03/msg01068.html

* configure.in (AC_TYPE_SIGNAL): Remove obsolete macro.
(AH_BOTTOM): Do not define SIGTYPE.

* lib-src/emacsclient.c: Replace SIGTYPE with void.

* nt/config.nt: Remove RETSIGTYPE, SIGTYPE (identical to void).

* src/syssignal.h: Replace RETSIGTYPE with void.

* src/atimer.c, src/data.c, src/dispnew.c, src/emacs.c, src/floatfns.c:
* src/keyboard.c, src/keyboard.h, src/lisp.h, src/process.c, src/sysdep.c:
* src/xterm.c: Replace SIGTYPE with void everywhere.

* src/s/template.h (SIGTYPE): Remove commented out definition.
* src/s/usg5-4-common.h (SIGTYPE): Remove definition.

* admin/CPP-DEFINES: Remove SIGTYPE.
2011-03-26 19:27:11 -07:00
Paul Eggert
ffa8c828c6 * keyboard.c, keyboard.h (num_input_events): Now size_t.
This avoids undefined behavior on integer overflow, and is a bit
more convenient anyway since it is compared to a size_t variable.
2011-03-26 19:20:34 -07:00
Paul Eggert
c5101a77a4 Variadic C functions now count arguments with size_t, not int. 2011-03-26 19:12:36 -07:00
Eli Zaretskii
3b2c5ab1f0 Fix scrolling with scroll-*-aggressively.
Aggressive scrolling backward by large distance still doesn't DTRT.

 src/xdisp.c (try_scrolling): When aggressive scrolling is in use, don't
 let point enter the opposite scroll margin as result of the scroll.
 (redisplay_window): Fix operator precedence in condition.
2011-03-27 00:05:30 +02:00
Eli Zaretskii
06b6bbb578 Fix bug #6671 with point position in the window when scrolling far away.
src/xdisp.c (redisplay_window): Don't check buffer's clip_changed
 flag as a prerequisite for invoking try_scrolling.
 (try_scrolling): Limit scrolling to 100 screen lines.
 (SCROLL_LIMIT): New macro.
 (try_scrolling): Use it when setting scroll_limit.
 (redisplay_window): Even when falling back on "recentering",
 position point in the window according to scroll-conservatively,
 scroll-margin, and scroll-*-aggressively variables.
2011-03-26 20:31:36 +02:00
Eli Zaretskii
5d9bd9764f Don't scroll more than 100 lines in try_scrolling.
src/xdisp.c (try_scrolling): Limit scrolling to 100 screen lines.
2011-03-26 16:03:23 +02:00
Eli Zaretskii
6653704919 Call try_scrolling even if buffer's clip_changed flag is set.
src/xdisp.c (redisplay_window): Don't check buffer's clip_changed
 flag as a prerequisite for invoking try_scrolling.  (Bug#6671)
2011-03-26 14:20:20 +02:00
Paul Eggert
dd3f25f792 * alloc.c (garbage_collect): Don't assume stack size fits in int.
(stack_copy_size): Now size_t, not int.
(stack_copy, stack_copy_size): Define only if MAX_SAVE_STACK > 0.
2011-03-25 21:17:38 -07:00
Juanma Barranquero
59eb0929f7 src/*.c: Fix more warnings about unused parameters.
* keymap.c (describe_vector): Remove parameters `indices' and
  `char_table_depth', unused since 2002-03-01T01:43:26Z!handa@m17n.org.
  (describe_map, Fdescribe_vector): Adjust calls to `describe_vector'.

* w32.c (read_unc_volume): Use parameter `henum', instead of
  global variable `wget_enum_handle'.
2011-03-26 03:48:03 +01:00