]> git.eshelyaron.com Git - emacs.git/log
emacs.git
10 years agoUnloading support for misearch.
Ivan Shmakov [Sat, 17 Jan 2015 19:15:51 +0000 (19:15 +0000)]
Unloading support for misearch.

* lisp/misearch.el (multi-isearch-unload-function): New function.
(misearch-unload-function): New alias.

Fixes: debbugs:19566
10 years agoDo not clear the session when trying to read a non-existent desktop file.
Ivan Shmakov [Sat, 17 Jan 2015 19:12:45 +0000 (19:12 +0000)]
Do not clear the session when trying to read a non-existent desktop file.

* lisp/desktop.el (desktop-read): Do not call desktop-clear when no
desktop file is found.

Fixes: debbugs:18371
10 years agoFix: inhibit point motion hooks when encoding an enriched document.
Ivan Shmakov [Sat, 17 Jan 2015 19:07:07 +0000 (19:07 +0000)]
Fix: inhibit point motion hooks when encoding an enriched document.

* lisp/textmodes/enriched.el (enriched-encode): Use
inhibit-point-motion-hooks in addition to inhibit-read-only.

Fixes: debbugs:18246
10 years agoFix dir-locals handling for non-file buffers.
Ivan Shmakov [Sat, 17 Jan 2015 19:02:00 +0000 (19:02 +0000)]
Fix dir-locals handling for non-file buffers.

* lisp/files.el (dir-locals-collect-variables): Use default-directory
in place of the file name while working on non-file buffers, just
like hack-dir-local-variables already does.

Fixes: debbugs:19140
10 years agoAvoid mapcar in two cases in files.el.
Ivan Shmakov [Sat, 17 Jan 2015 18:57:04 +0000 (18:57 +0000)]
Avoid mapcar in two cases in files.el.

* lisp/files.el (find-file-other-window, find-file-other-frame):
Use mapc instead of mapcar.

Fixes: debbugs:18175
10 years agoIgnore print-length and print-level while formatting url-cookie data.
Ivan Shmakov [Sat, 17 Jan 2015 18:42:31 +0000 (18:42 +0000)]
Ignore print-length and print-level while formatting url-cookie data.

* lisp/url/url-cookie.el (url-cookie-write-file): Let-bind print-length
and print-level to nil to avoid writing a garbled list.

Fixes: debbugs:16805
10 years ago* lisp/emacs-lisp/eieio-core.el (eieio--class-constructor): Rename.
Stefan Monnier [Sat, 17 Jan 2015 14:50:07 +0000 (09:50 -0500)]
* lisp/emacs-lisp/eieio-core.el (eieio--class-constructor): Rename.

Fixes: debbugs:19620
(eieio--class-constructor): Rename from class-constructor, and make it an alias
for `identity'.  Update all callers.

10 years ago* lisp/emacs-lisp/eieio.el: Improve `constructor' compatibility.
Stefan Monnier [Sat, 17 Jan 2015 14:41:51 +0000 (09:41 -0500)]
* lisp/emacs-lisp/eieio.el: Improve `constructor' compatibility.

Fixes: debbugs:19620
(eieio-constructor): Handle obsolete object name argument here...
(defclass): ...instead of in the constructor here.

* test/automated/eieio-tests.el
(eieio-test-37-obsolete-name-in-constructor): New test.

10 years agoType fix for defcustom.
Jorgen Schaefer [Sat, 17 Jan 2015 10:58:58 +0000 (11:58 +0100)]
Type fix for defcustom.

* emacs-lisp/package.el (package-archive-priorities): Specify
correct type.

10 years agoDiscard the Bazaar case in repository version detection
Ulrich Müller [Fri, 14 Nov 2014 08:05:02 +0000 (09:05 +0100)]
Discard the Bazaar case in repository version detection

* version.el (emacs-bzr-version-dirstate, emacs-bzr-version-bzr):
Remove.
(emacs-repository-get-version): Discard the Bazaar case.

* vc/vc-bzr.el (vc-bzr-version-dirstate): Rename from
emacs-bzr-version-dirstate and move from version.el to here.
(vc-bzr-working-revision): Use it.

10 years agoDon't enforce :protection in EIEIO objects any more
Stefan Monnier [Sat, 17 Jan 2015 04:48:26 +0000 (23:48 -0500)]
Don't enforce :protection in EIEIO objects any more

* doc/misc/eieio.texi (Slot Options): Document :protection as unsupported.

* lisp/emacs-lisp/eieio-core.el (eieio--scoped-class-stack): Remove var.
(eieio--scoped-class): Remove function.
(eieio--with-scoped-class): Remove macro.  Replace uses with `progn'.
(eieio--slot-name-index): Don't check the :protection anymore.
(eieio-initializing-object): Remove var.
(eieio-set-defaults): Don't let-bind eieio-initializing-object.

* lisp/emacs-lisp/eieio-generic.el (call-next-method): Don't bother checking
eieio--scoped-class any more.

* test/automated/eieio-test-methodinvoke.el (eieio-test-method-store):
Use an explicit arg instead of eieio--scoped-class.  Update all callers.

* test/automated/eieio-tests.el (eieio-test-25-slot-tests)
(eieio-test-26-default-inheritance, eieio-test-28-slot-protection)
(eieio-test-30-slot-attribute-override)
(eieio-test-31-slot-attribute-override-class-allocation): Don't check
that we enforce :protection since we don't any more.

10 years agoImprove handling of doc-strings and describe-function for cl-generic
Stefan Monnier [Sat, 17 Jan 2015 03:52:15 +0000 (22:52 -0500)]
Improve handling of doc-strings and describe-function for cl-generic

* lisp/help-fns.el (find-lisp-object-file-name): Accept any `type' as long
as it's a symbol.
(help-fns-short-filename): New function.
(describe-function-1): Use it.  Use autoload-do-load.

* lisp/help-mode.el (help-function-def): Add optional arg `type'.

* lisp/emacs-lisp/cl-generic.el (cl-generic-ensure-function): It's OK to
override an autoload.
(cl-generic-current-method-specializers): Replace dyn-bind variable
with a lexically-scoped macro.
(cl--generic-lambda): Update accordingly.
(cl-generic-define-method): Record manually in the load-history with
type `cl-defmethod'.
(cl--generic-get-dispatcher): Minor optimization.
(cl--generic-search-method): New function.
(find-function-regexp-alist): Add entry for `cl-defmethod' type.
(cl--generic-search-method): Add hyperlinks for methods.  Merge the
specializers and the function's arguments.

* lisp/emacs-lisp/eieio-core.el (eieio--defalias): Move to eieio-generic.el.
(eieio-defclass-autoload): Don't record the superclasses any more.
(eieio-defclass-internal): Reuse the old class object if it was just an
autoload stub.
(eieio--class-precedence-list): Load the class if it's autoloaded.

* lisp/emacs-lisp/eieio-generic.el (eieio--defalias): Move from eieio-core.
(eieio--defgeneric-init-form): Don't throw away a previous docstring.
(eieio--method-optimize-primary): Don't mess with the docstring.
(defgeneric): Keep the `args' in the docstring.
(defmethod): Don't use the method's docstring for the generic
function's docstring.

* lisp/emacs-lisp/find-func.el: Use lexical-binding.
(find-function-regexp): Don't rule out `defgeneric'.
(find-function-regexp-alist): Document new possibility of including
a function instead of a regexp.
(find-function-search-for-symbol): Implement that new possibility.
(find-function-library): Don't assume that `function' is a symbol.
(find-function-do-it): Remove unused var `orig-buf'.

* test/automated/cl-generic-tests.el (cl-generic-test-8-after/before):
Rename from cl-generic-test-7-after/before.
(cl--generic-test-advice): New function.
(cl-generic-test-9-advice): New test.

* test/automated/eieio-test-methodinvoke.el (eieio-test-cl-generic-1): Reset
eieio-test--1.

10 years agoemacs-lisp/package.el and package-x.el: References to package-desc-kind
Artur Malabarba [Wed, 14 Jan 2015 14:57:32 +0000 (12:57 -0200)]
emacs-lisp/package.el and package-x.el: References to package-desc-kind

10 years ago* NEWS: Document installing packages from directories.
Artur Malabarba [Tue, 13 Jan 2015 02:13:55 +0000 (00:13 -0200)]
* NEWS: Document installing packages from directories.

10 years ago(package-install-file): Install packages from directory.
Artur Malabarba [Tue, 13 Jan 2015 02:03:59 +0000 (00:03 -0200)]
(package-install-file): Install packages from directory.

10 years ago(package-install-from-buffer): Install packages from dired buffer.
Artur Malabarba [Tue, 13 Jan 2015 01:35:46 +0000 (23:35 -0200)]
(package-install-from-buffer): Install packages from dired buffer.

10 years ago* emacs-lisp/package.el (package-dir-info): New function.
Artur Malabarba [Tue, 13 Jan 2015 01:26:58 +0000 (23:26 -0200)]
* emacs-lisp/package.el (package-dir-info): New function.

Find package information for a directory. The return result is a
`package-desc'.

10 years ago* emacs-lisp/package.el (package--read-pkg-desc): New function.
Artur Malabarba [Tue, 13 Jan 2015 01:24:22 +0000 (23:24 -0200)]
* emacs-lisp/package.el (package--read-pkg-desc): New function.

Read a `define-package' form in current buffer. Return the pkg-desc,
with desc-kind set to KIND.

10 years ago* lisp/emacs-lisp/cl-macs.el: Fix last change.
Stefan Monnier [Thu, 15 Jan 2015 13:58:45 +0000 (08:58 -0500)]
* lisp/emacs-lisp/cl-macs.el: Fix last change.

(cl--labels-magic): New constant.
(cl--labels-convert): Use it to ask the macro what is its replacement
in the #'f case.

10 years ago* lisp/emacs-lisp/cl-generic.el (cl--generic-build-combined-method):
Stefan Monnier [Thu, 15 Jan 2015 13:38:00 +0000 (08:38 -0500)]
* lisp/emacs-lisp/cl-generic.el (cl--generic-build-combined-method):
Return the value of the primary rather than the after method.

10 years agoFix the automated test for package priorities.
Jorgen Schaefer [Fri, 16 Jan 2015 19:28:26 +0000 (20:28 +0100)]
Fix the automated test for package priorities.

* automated/package-test.el (package-test-install-prioritized):
New test.

10 years ago# ChangeLog fixes
Glenn Morris [Fri, 16 Jan 2015 19:17:25 +0000 (14:17 -0500)]
# ChangeLog fixes

10 years agoPrefer INLINE functions in font.h to match style used in lisp.h
Dmitry Antipov [Fri, 16 Jan 2015 12:15:32 +0000 (15:15 +0300)]
Prefer INLINE functions in font.h to match style used in lisp.h

* font.h (FONTP, FONT_SPEC_P, FONT_ENTITY_P, FONT_OBJECT_P)
(CHECK_FONT, CHECK_FONT_SPEC, CHECK_FONT_ENTITY, CHECK_FONT_OBJECT)
(XFONT_SPEC, XFONT_ENTITY, XFONT_OBJECT, CHECK_FONT_GET_OBJECT):
Now functions.
* font.c (Ffont_otf_alternates, Fquery_font, Ffont_get_glyphs):
* ftfont.c (ftfont_shape):
* macfont.m (macfont_shape):
* w32uniscribe.c (uniscribe_shape):
* xftfont.c (xftfont_shape): Adjust CHECK_FONT_GET_OBJECT users.

10 years agoTiny lisp.h cleanup
Dmitry Antipov [Fri, 16 Jan 2015 11:41:20 +0000 (14:41 +0300)]
Tiny lisp.h cleanup

* lisp.h (XTERMINAL): Add eassert.
* process.c (make_lisp_proc): Now static here.

10 years agoPackage archives now have priorities.
Jorgen Schaefer [Sun, 7 Dec 2014 21:28:38 +0000 (22:28 +0100)]
Package archives now have priorities.

* lisp/package.el: Provide repository priorities.
(package-archive-priorities): New variable.
(package--add-to-alist): New function.
(package--add-to-archive-contents): Use it.
(package-menu--find-upgrades): Use it as well. Small clean up to
make the use of the package name here explicit.
(package-archive-priority): New function.
(package-desc-priority-version): New function.

Fixes: debbugs:19296
10 years agoSupport Make verbosity levels in w32 targets previously left out
Eli Zaretskii [Fri, 16 Jan 2015 09:33:08 +0000 (11:33 +0200)]
Support Make verbosity levels in w32 targets previously left out

 nt/Makefile.in (AM_V_CC, am__v_CC_, am__v_CC_0, am__v_CC_1)
 (AM_V_CCLD, am__v_CCLD_, am__v_CCLD_0, am__v_CCLD_1, AM_V_RC)
 (am__v_RC_, am__v_RC_0, am__v_RC_1): New macros.
 (addpm${EXEEXT}, ddeclient${EXEEXT}, cmdproxy${EXEEXT})
 (runemacs${EXEEXT}): Use $(AM_V_CCLD).
 (emacs.res, ../src/emacs.res): Use $(AM_V_RC).

 lib-src/Makefile.in (AM_V_RC, am__v_RC_, am__v_RC_0, am__v_RC_1): New
 macros.
 (emacsclient.res): Use $(AM_V_RC).

10 years agoTune pseudovector allocation assuming Qnil == 0
Dmitry Antipov [Fri, 16 Jan 2015 08:42:24 +0000 (11:42 +0300)]
Tune pseudovector allocation assuming Qnil == 0

* alloc.c (allocate_pseudovector): Use memset for both
Lisp_Objects and regular slots.  Add zerolen arg.
* lisp.h (allocate_pseudovector): Adjust prototype.
(ALLOCATE_PSEUDOVECTOR): Adjust user.
(ALLOCATE_ZEROED_PSEUDOVECTOR): New macro.
(allocate_hash_table, allocate_window, allocate_frame)
(allocate_process, allocate_terminal): Remove prototypes.
* fns.c (allocate_hash_table): Now static here.
* frame.c (allocate_frame):
* process.c (allocate_process):
* terminal.c (allocate_terminal):
* window.c (allocate_window): Now static here.
Use ALLOCATE_ZEROED_PSEUDOVECTOR.  Add comment.

10 years agoMake `ring-bell-function' customizable.
Daniel Colascione [Fri, 16 Jan 2015 04:51:48 +0000 (20:51 -0800)]
Make `ring-bell-function' customizable.

* lisp/cus-start.el (all): Make `ring-bell-function' customizable.

10 years agoGive up on -Wsuggest-attribute=const
Paul Eggert [Fri, 16 Jan 2015 04:37:05 +0000 (20:37 -0800)]
Give up on -Wsuggest-attribute=const

The attribute doesn't help performance significantly, and the
warning seems to be more trouble than it's worth.  See the thread at:
http://lists.gnu.org/archive/html/emacs-devel/2015-01/msg00361.html
* configure.ac (WERROR_CFLAGS): Don't use -Wsuggest-attribute=const.
* lib-src/make-docfile.c (write_globals):
Remove special hack for Fnext_read_file_uses_dialog_p.
* src/decompress.c (Fzlib_available_p):
* src/gnutls.c (Fgnutls_available_p):
* src/gtkutil.h (xg_uses_old_file_dialog):
* src/xdisp.c (Ftool_bar_height):
* src/xmenu.c (popup_activated):
No longer const, since it's not const on at lest some
configurations, and we shouldn't lie to the compiler.

10 years agovc-svn-dir-status-files: Parse output with the remote format
Dmitry Gutov [Fri, 16 Jan 2015 03:24:09 +0000 (06:24 +0300)]
vc-svn-dir-status-files: Parse output with the remote format

Fixes: debbugs:19429
* lisp/vc/vc-svn.el (vc-svn-dir-status-files): Pass t as
vc-svn-after-dir-status's second argument.

10 years agoParse pcomplete arguments regardless of pcomplete-cycle-completions
Samer Masterson [Fri, 16 Jan 2015 02:35:51 +0000 (05:35 +0300)]
Parse pcomplete arguments regardless of pcomplete-cycle-completions

* pcomplete.el (pcomplete-parse-arguments): Parse arguments regardless
of pcomplete-cycle-completions's value.

Fixes: debbugs:18950
10 years ago* lisp/dom.el (dom-strings): New function.
Lars Magne Ingebrigtsen [Fri, 16 Jan 2015 02:08:55 +0000 (03:08 +0100)]
* lisp/dom.el (dom-strings): New function.

10 years agoMinor directory-files-recursively touch-up
Lars Magne Ingebrigtsen [Fri, 16 Jan 2015 00:12:40 +0000 (01:12 +0100)]
Minor directory-files-recursively touch-up

* files.el (directory-files-recursively): Don't use the word
"path" for a file name.

10 years agoHandle the `neg' operator in some calc-units functions.
Wolfgang Jenkner [Thu, 15 Jan 2015 19:02:17 +0000 (20:02 +0100)]
Handle the `neg' operator in some calc-units functions.

* lisp/calc/calc-units.el (math-units-in-expr-p)
(math-single-units-in-expr-p, math-find-compatible-unit-rec)
(math-extract-units): Handle the `neg' operator.  (Bug#19582)
* test/automated/calc-tests.el (calc-tests-equal, calc-tests-simple):
New functions.
(test-calc-remove-units, test-calc-extract-units)
(test-calc-convert-units): New tests.

10 years agoUse POSIX redirection.
Wolfgang Jenkner [Thu, 15 Jan 2015 18:56:57 +0000 (19:56 +0100)]
Use POSIX redirection.

* test/automated/Makefile.in (WRITE_LOG): Use POSIX redirection.

10 years agolisp/gnus/nntp.el (nntp-send-authinfo): Error out if the password is wrong
Lars Magne Ingebrigtsen [Thu, 15 Jan 2015 22:19:28 +0000 (22:19 +0000)]
lisp/gnus/nntp.el (nntp-send-authinfo): Error out if the password is wrong

10 years agoAdd set-binary-mode primitive to switch a standard stream to binary I/O.
Eli Zaretskii [Thu, 15 Jan 2015 15:50:50 +0000 (17:50 +0200)]
Add set-binary-mode primitive to switch a standard stream to binary I/O.

 src/fileio.c: Include binary-io.h.
 (Fset_binary_mode): New function.
 (syms_of_fileio): Defsubr it.
 (syms_of_fileio) <Qstdin, Qstdout, Qstderr>: DEFSYM them.

 admin/unidata/unidata/uvs.el (uvs-print-table-ivd): Call set-binary-mode on
 stdout.

 doc/lispref/streams.texi (Input Functions): Document 'set-binary-mode'.
 (Output Functions): Cross-reference to documentation of
 'set-binary-mode'.

 etc/NEWS: Mention 'set-binary-mode'.

10 years agoFlag :unknown-ca and :self-signed SSL certs (Bug#19404)
Ted Zlatanov [Thu, 15 Jan 2015 14:41:58 +0000 (09:41 -0500)]
Flag :unknown-ca and :self-signed SSL certs  (Bug#19404)

Fixes: debbugs:19404
* gnutls.c (init_gnutls_functions): Import gnutls_x509_crt_check_issuer.
(Fgnutls_peer_status): Use it to set the :self-signed flag.
Rename the previous :self-signed to :unknown-ca.
(Fgnutls_peer_status_warning_describe): Explain :unknown-ca flag.

10 years ago# Set copyright to FSF, standardize license notice
Glenn Morris [Thu, 15 Jan 2015 07:08:53 +0000 (23:08 -0800)]
# Set copyright to FSF, standardize license notice

10 years ago* lisp/emacs-lisp/eieio-core.el: Provide support for cl-generic.
Stefan Monnier [Thu, 15 Jan 2015 05:19:44 +0000 (00:19 -0500)]
* lisp/emacs-lisp/eieio-core.el: Provide support for cl-generic.

(eieio--generic-tagcode): New function.
(cl-generic-tagcode-function): Use it.
(eieio--generic-tag-types): New function.
(cl-generic-tag-types-function): Use it.
(eieio-object-p): Tighten up the test.

* lisp/emacs-lisp/cl-generic.el (cl-generic-define-method): Fix paren typo.

* test/automated/eieio-test-methodinvoke.el (eieio-test-method-store): Add
keysym arg instead of relying on internal var eieio--generic-call-key.
Update all callers.
(eieio-test-cl-generic-1): New tests.

10 years ago* lisp/emacs-lisp/cl-generic.el: New file.
Stefan Monnier [Wed, 14 Jan 2015 19:37:10 +0000 (14:37 -0500)]
* lisp/emacs-lisp/cl-generic.el: New file.

* lisp/emacs-lisp/cl-macs.el (cl-flet): Allow (FUN EXP) forms.
(cl-load-time-value, cl-labels): Use closures rather than
backquoted lambdas.
(cl-macrolet): Use `eval' to create the function value, and support CL
style arguments in for the defined macros.
* test/automated/cl-generic-tests.el: New file.

10 years agoFix crashes on MS-Windows due to pop-up menus (Bug#19596)
Eli Zaretskii [Wed, 14 Jan 2015 18:51:33 +0000 (20:51 +0200)]
Fix crashes on MS-Windows due to pop-up menus  (Bug#19596)

 src/w32fns.c (w32_wnd_proc): Ignore MENUITEMINFO's dwItemData data
 when FLAGS indicate the item is not highlighted, i.e. it's not our
 help-echo string.

10 years agoIn update_frame_menubar remove garbaged code.
Martin Rudalics [Wed, 14 Jan 2015 14:47:19 +0000 (15:47 +0100)]
In update_frame_menubar remove garbaged code.

* xmenu.c (update_frame_menubar): Remove garbaged code.

10 years ago* lisp/net/eww.el: Use lexical-binding.
Stefan Monnier [Mon, 12 Jan 2015 18:07:52 +0000 (13:07 -0500)]
* lisp/net/eww.el: Use lexical-binding.

(eww-links-at-point): Remove unused arg.
(eww-mode-map): Inherit from special-mode-map.
(eww-mode): Derive from special-mode.  Don't use `setq' on a hook.

10 years agoNever move gap in make_buffer_string_both.
Dmitry Antipov [Wed, 14 Jan 2015 12:56:46 +0000 (15:56 +0300)]
Never move gap in make_buffer_string_both.

* editfns.c (make_buffer_string_both): If requested range intersects
the gap, don't move the latter but copy in two regions, thus avoiding
unnecessary relocation of buffer data.

10 years agoFix last time zone handling change.
Dmitry Antipov [Wed, 14 Jan 2015 10:05:17 +0000 (13:05 +0300)]
Fix last time zone handling change.

* editfns.c (decode_time_zone): Return Lisp string instead.
All related users changed.

10 years agoConsistently handle time zone specification.
Dmitry Antipov [Wed, 14 Jan 2015 09:43:43 +0000 (12:43 +0300)]
Consistently handle time zone specification.

* editfns.c (decode_time_zone): New function, refactored out from ...
(Fencode_time): ... adjusted user.
(Fset_time_zone_rule): Use decode_time_zone.

10 years agoremove_slash_colon need not be inline
Paul Eggert [Wed, 14 Jan 2015 08:42:15 +0000 (00:42 -0800)]
remove_slash_colon need not be inline

* process.c, process.h (remove_slash_colon): No longer inline.
This saves text bytes without hurting runtime performance.

10 years agoConsolidate common path transformation code.
Dmitry Antipov [Wed, 14 Jan 2015 07:08:44 +0000 (10:08 +0300)]
Consolidate common path transformation code.

* process.h (remove_slash_colon): New function.
* callproc.c (encode_current_directory, call_process):
* process.c (Fstart_process): Use it.

10 years agoAvoid extra multibyteness check in ENCODE_FILE users.
Dmitry Antipov [Wed, 14 Jan 2015 06:50:39 +0000 (09:50 +0300)]
Avoid extra multibyteness check in ENCODE_FILE users.

* callproc.c (encode_current_directory, Fcall_process, call_process):
* dired.c (directory_files_internal, file_name_completion):
Do not check for STRING_MULTIBYTE because encode_file_name
is a no-op for unibyte strings.

10 years agoUse bool for boolean in xmenu.c, xml.c
Paul Eggert [Wed, 14 Jan 2015 05:19:40 +0000 (21:19 -0800)]
Use bool for boolean in xmenu.c, xml.c

* xmenu.c (x_menu_set_in_use, popup_get_selection)
(Fx_menu_bar_open_internal, popup_widget_loop)
(x_activate_menubar, xg_crazy_callback_abort)
(update_frame_menubar, set_frame_menubar)
(initialize_frame_menubar, free_frame_menubar)
(create_and_show_popup_menu, x_menu_show)
(create_and_show_dialog, x_dialog_show):
* xml.c (libxml2_loaded_p, init_libxml2_functions, parse_region)
(Flibxml_parse_html_region, Flibxml_parse_xml_region):
* xrdb.c (main) [TESTRM]:
* xsettings.c (init_gsettings):
* xterm.c (XFillRectangle, xg_scroll_callback)
(xg_end_scroll_callback):
* xterm.h (x_menu_set_in_use) [USE_GTK || USE_MOTIF]:
Use bool for boolean.
* xmenu.c (TRUE): Remove; no longer used.
(show_help_event): Remove long-unused code.
(set_frame_menubar): Remove "#if 1" and corresponding "#endif" lines.

10 years agoDon't say Fnext_read_file_uses_dialog_p is const
Paul Eggert [Tue, 13 Jan 2015 23:22:19 +0000 (15:22 -0800)]
Don't say Fnext_read_file_uses_dialog_p is const

It's const only if a windowing system is not used; don't say it's
const otherwise.  See:
http://lists.gnu.org/archive/html/emacs-devel/2015-01/msg00310.html
* lib-src/make-docfile.c (write_globals):
Add a special hack for Fnext_read_file_uses_dialog_p.
* src/fileio.c (next_read_file_uses_dialog_p): Remove.
Move guts back to ...
(Fnext_read_file_uses_dialog_p): ... here.
Don't declare as const, as make-docfile.c now has a special case
for this function.  This is an ugly hack, but it's better than
lying to the compiler.

10 years agoRemove now-unnecessary forward XTYPE decl
Paul Eggert [Tue, 13 Jan 2015 22:04:23 +0000 (14:04 -0800)]
Remove now-unnecessary forward XTYPE decl

* lisp.h (XTYPE): Remove forward declaration.  The recent merge
from emacs-24 fixed the problem in a better way, by moving XPNTR's
definition to after XTYPE's.

10 years agoFix problems with 32-bit wide-int build exposed by MinGW
Eli Zaretskii [Tue, 13 Jan 2015 17:16:51 +0000 (19:16 +0200)]
Fix problems with 32-bit wide-int build exposed by MinGW

 lisp.h (XPNTR): Move definition to after XTYPE, to avoid
 compilation error in an unoptimized build when !USE_LSB_TAG.
 src/w32heap.c (DUMPED_HEAP_SIZE): For 32-bit wide-int build, use the
 same larger value as for the 64-bit build.
 src/w32term.h (SCROLL_BAR_PACK): Cast the result to UINT_PTR to
 avoid compiler warnings.
 src/w32proc.c (Fw32_get_codepage_charset, Fw32_set_keyboard_layout):
 Avoid compiler warnings about cast from integer to pointer of
 different size.
 src/w32menu.c (menubar_selection_callback, w32_menu_show): Cast to
 UINT_PTR instead of EMACS_INT, to avoid compiler warnings about
 casting from integer to pointer of different size.
 (add_menu_item): Pass the help-echo string as a pointer to
 Lisp_String, not as a Lisp_Object.
 (w32_menu_display_help): Use make_lisp_ptr to reconstruct a Lisp
 string object from its C pointer.
 src/w32fns.c (w32_msg_pump) <WM_EMACS_UNREGISTER_HOT_KEY>: Use
 make_lisp_ptr instead of XIL, to reconstruct a Lisp_Cons from its
 C pointer.
 <WM_EMACS_TOGGLE_LOCK_KEY>: msg.lparam is now a C integer.
 (Fx_create_frame): Type-cast the result of XFASTINT to avoild
 compiler warnings about size differences.
 (Fw32_unregister_hot_key): Pass the tail of w32_grabbed_keys as a
 pointer to a Lisp_Cons struct, not as a disguised EMACS_INT.
 (Fw32_toggle_lock_key): Pass the new state of the key as a C
 integer; use -1 for nil.  Doc fix.
 src/.gdbinit (xgetsym): New subroutine.
 (xsymname, xsymbol): Use it.
 (xprintsym): No need to call xgetptr.

10 years agoAllow compilation during loading of Modes derived from a CC Mode mode.
Alan Mackenzie [Tue, 13 Jan 2015 15:39:36 +0000 (15:39 +0000)]
Allow compilation during loading of Modes derived from a CC Mode mode.
Fixes debbugs#19206.

cc-bytecomp.el (cc-bytecomp-compiling-or-loading): new function which
walks the stack to discover whether we're compiling or loading.
(cc-bytecomp-is-compiling): Reformulate, and move towards beginning.
(cc-bytecomp-is-loading): New defsubst.
(cc-bytecomp-setup-environment, cc-bytecomp-restore-environment): Use
the
above defsubsts.
(cc-require-when-compile, cc-bytecomp-defvar)
(cc-bytecomp-defun): Simplify conditionals.

cc-defs.el (cc-bytecomp-compiling-or-loading): "Borrow" this function
from cc-bytecomp.el.
(c-get-current-file): Reformulate using the above.
(c-lang-defconst): Prevent duplicate entries of file names in a symbol's
'source property.
(c-lang-const): Use cc-bytecomp-is-compiling.

cc-langs.el (c-make-init-lang-vars-fun): Use cc-bytecomp-is-compiling.

10 years agoFixes: debbugs:19552
Stefan Monnier [Tue, 13 Jan 2015 15:17:44 +0000 (10:17 -0500)]
Fixes: debbugs:19552
* lisp/emacs-lisp/eieio-core.el (eieio-defclass): Fix call to `defclass'.

10 years agoMake Fnext_read_file_uses_dialog_p compatible with recent DEFUN change.
Dmitry Antipov [Tue, 13 Jan 2015 10:08:32 +0000 (13:08 +0300)]
Make Fnext_read_file_uses_dialog_p compatible with recent DEFUN change.

* fileio.c (next_read_file_uses_dialog_p): New workaround ...
(Fnext_read_file_uses_dialog_p): ... called from here to avoid
ATTRIBUTE_CONST dependency from #ifdefs.  For details, see
http://lists.gnu.org/archive/html/emacs-devel/2015-01/msg00289.html.

10 years agoIn adjust_frame_size don't return too early after font size change.
Martin Rudalics [Tue, 13 Jan 2015 08:10:05 +0000 (09:10 +0100)]
In adjust_frame_size don't return too early after font size change.

* frame.c (adjust_frame_size): Make sure new numbers of
lines/columns get installed after font size change (Bug#19575).

10 years agoConsolidate duplicated string matching code.
Dmitry Antipov [Tue, 13 Jan 2015 04:08:54 +0000 (07:08 +0300)]
Consolidate duplicated string matching code.

* search.c (fast_string_match_internal): New function,
consolidated from...
(fast_string_match, fast_string_match_ignore_case): ...functions
which are...
* lisp.h (fast_string_match, fast_string_match_ignore_case):
inlined from here now.
(fast_string_match_internal): Add prototype.
* dired.c (file_name_completion): Use fast_string_match_internal.

10 years agoSupport const and noreturn DEFUN attributes.
Dmitry Antipov [Tue, 13 Jan 2015 03:39:45 +0000 (06:39 +0300)]
Support const and noreturn DEFUN attributes.

* lib-src/make-docfile.c (struct global): New field 'flags'.
(DEFUN_noreturn, DEFUN_const): New enum bitfields.
(add_global): Now return pointer to global.
(write_globals): Add _Noreturn and ATTRIBUTE_CONST attributes
if requested by global's flags.
(stream_match): New function.
(scan_c_stream): Recognize 'attributes:' of DEFUN.

* src/callint.c (Finteractive):
* src/character.c (Fcharacterp, Fmax_char):
* src.data.c (Feq, Fnull, Fconsp, Fatom, Flistp, Fnlistp, Fsymbolp)
(Fstringp, Fchar_or_string_p, Fintegerp, Fnatnump, Fnumberp)
(Ffloatp, Fbyteorder):
* src/decompress.c (Fzlib_available_p):
* src/fns.c (Fidentity):
* src/frame.c (Fframe_windows_min_size):
* src/gnutls.c (Fgnutls_error_p, Fgnutls_available_p):
* src/window.c (Fwindow__sanitize_window_sizes):
* src/xdisp.c (Ftool_bar_height):
* src/xfaces.c (Fface_attribute_relative_p): Add const attribute.
* src/emacs.c (Fkill_emacs):
* src/eval.c (Fthrow):
* src/keyboard.c (Ftop_level, Fexit_recursive_edit)
(Fabor_recursive_edit): Add noreturn attribute.

10 years agoDon't eagerly load xref
Dmitry Gutov [Tue, 13 Jan 2015 03:06:15 +0000 (06:06 +0300)]
Don't eagerly load xref

Fixes: debbugs:19554
* lisp/menu-bar.el (menu-bar-goto-menu): Before calling
`xref-marker-stack-empty-p', first check that `xref' is loaded.

10 years agoPort to 32-bit MingGW --with-wide-int
Paul Eggert [Mon, 12 Jan 2015 19:26:06 +0000 (11:26 -0800)]
Port to 32-bit MingGW --with-wide-int

Problem reported by Eli Zaretskii in:
http://lists.gnu.org/archive/html/emacs-devel/2015-01/msg00265.html
* lisp.h (struct Lisp_Sub_Char_Table): Check that offset matches
what we think it is, rather than checking only its alignment (and
doing so incorrectly on MinGW).

10 years agoAdd autoload cookie for xref-marker-stack-empty-p (Bug#19554).
Martin Rudalics [Mon, 12 Jan 2015 17:26:39 +0000 (18:26 +0100)]
Add autoload cookie for xref-marker-stack-empty-p (Bug#19554).

* progmodes/xref.el (xref-marker-stack-empty-p): Add autoload
cookie (Bug#19554).

10 years agoMiscellaneous tiny fixes here and there.
Dmitry Antipov [Mon, 12 Jan 2015 17:14:43 +0000 (20:14 +0300)]
Miscellaneous tiny fixes here and there.

* fileio.c (Ffile_name_as_directory, Fdirectory_file_name):
Remove dead NILP check.
* image.c (Flookup_image): Use regular format for docstring.
* keyboard.c (apply_modifiers_uncached): Use stpcpy.

10 years agoAdjust frame heights to real height of tool bar.
Martin Rudalics [Mon, 12 Jan 2015 07:18:00 +0000 (08:18 +0100)]
Adjust frame heights to real height of tool bar.

* frame.el (frame-notice-user-settings): Remove code dealing with
frame-initial-frame-tool-bar-height.  Turn off `tool-bar-mode'
only if `window-system-frame-alist' or `default-frame-alist' ask
for it.
(make-frame): Update frame-adjust-size-history if needed.
* dispnew.c (change_frame_size_1): Pass Qchange_frame_size to
adjust_frame_size.
* frame.c (frame_default_tool_bar_height): New variable.
(adjust_frame_size): Possibly add requested adjustment to
Vframe_adjust_size_history.
(make_frame): Initialize tool_bar_redisplayed_once slot.
(Fset_frame_height, Fset_frame_width, Fset_frame_size): Clarify
doc-string.  Call adjust_frame_size unconditionally (the frame's
text size may remain unaltered but the pixel size may change).
(x_figure_window_size): If frame_default_tool_bar_height was
set, use it instead of calculating the tool bar height from
DEFAULT_TOOL_BAR_IMAGE_HEIGHT.  Don't set
Vframe_initial_frame_tool_bar_height.
(Qchange_frame_size, Qxg_frame_set_char_size)
(Qset_window_configuration, Qx_create_frame_1)
(Qx_create_frame_2): New symbols.
(Vframe_initial_frame_tool_bar_height): Remove.
(Vframe_adjust_size_history): New history variable for debugging
frame size adjustments.
* frame.h (struct frame): New boolean slot
tool_bar_redisplayed_once.
(frame_default_tool_bar_height): Extern.
* gtkutil.c (xg_frame_set_char_size): Pass Qxg_frame_set_char_size
to adjust_frame_size.
* nsfns.m (Fx_create_frame): Pass Pass Qx_create_frame_1 and
Qx_create_frame_2 to adjust_frame_size.
* w32fns.c (x_change_tool_bar_height): Call adjust_frame_size with
inhibit 1 when we have not redisplayed the tool bar yet.
(Fx_create_frame): Pass Pass Qx_create_frame_1 and
Qx_create_frame_2 to adjust_frame_size.
* w32menu.c (set_frame_menubar): Simplify adjust_frame_size
call.
* window.c (Fset_window_configuration): Pass
Qset_window_configuration to adjust_frame_size.
* xdisp.c (redisplay_tool_bar): Assign new height to
frame_default_tool_bar_height.
(redisplay_internal): If we haven't redisplayed this frame's
tool bar, call redisplay_tool_bar early so we can adjust the
frame size accordingly.
* xfns.c (x_change_tool_bar_height): Call adjust_frame_size with
inhibit 1 when we have not redisplayed the tool bar yet.
(Fx_create_frame): Pass Pass Qx_create_frame_1 and
Qx_create_frame_2 to adjust_frame_size.

10 years agoHave 'make' output better GEN names
Paul Eggert [Mon, 12 Jan 2015 02:19:31 +0000 (18:19 -0800)]
Have 'make' output better GEN names

* lisp/Makefile.in (PHONY_EXTRAS): New macro.
(.PHONY): Depend on it, and on $(lisp)/loaddefs.el, so that the
relevant files' time stamps are ignored.
(custom-deps, $(lisp)/cus-load.el, finder-data)
($(lisp)/finder-inf.el): Use PHONY_EXTRAS.
(custom-deps, $(lisp)/cus-load.el, finder-data)
($(lisp)/finder-inf.el, autoloads, $(lisp)/loaddefs.el)
($(lisp)/subdirs.el, update-subdirs):
Output more-accurate destination names with GEN.
* src/Makefile.in (gl-stamp, globals.h): Simplify by putting the new
contents of globals.h into gl-stamp.  This lets us use AM_V_GEN
more naturally so that 'make' can output more-accurate names.

10 years agoSay "ELC foo.elc" instead of "GEN foo.elc"
Paul Eggert [Mon, 12 Jan 2015 01:41:57 +0000 (17:41 -0800)]
Say "ELC foo.elc" instead of "GEN foo.elc"

* admin/unidata/Makefile.in, lisp/Makefile.in (AM_V_ELC)
(am__v_ELC_, am__v_ELC_0, am__v_ELC_1): New macros.
* admin/unidata/Makefile.in (%.elc):
* lisp/Makefile.in ($(THEFILE)c, .el.elc): Use them.

10 years ago* src/buffer.c (init_buffer_once): Initialize buffer_local_flags early.
Stefan Monnier [Sun, 11 Jan 2015 22:38:04 +0000 (17:38 -0500)]
* src/buffer.c (init_buffer_once): Initialize buffer_local_flags early.

* src/buffer.c (init_buffer_once): Initialize buffer_local_flags before
calling reset_buffer_local_variables, and make sure we initialize
it completely.

10 years ago* coding.c (Fcoding_system_plist): Use common style for docstring.
Dmitry Antipov [Sun, 11 Jan 2015 17:42:53 +0000 (20:42 +0300)]
* coding.c (Fcoding_system_plist): Use common style for docstring.

10 years agoMerge branch 'master' of git.sv.gnu.org:/srv/git/emacs
Michael Albinus [Sun, 11 Jan 2015 15:00:33 +0000 (16:00 +0100)]
Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs

Conflicts:
lisp/ChangeLog

10 years agoFurther eww URL DWIM tweaks
Lars Magne Ingebrigtsen [Sun, 11 Jan 2015 14:58:10 +0000 (15:58 +0100)]
Further eww URL DWIM tweaks

* net/eww.el (eww): Interpret anything that looks like a protocol
designator as a full URL.

10 years ago* files.el (directory-files-recursively): Do not include remote file names.
Michael Albinus [Sun, 11 Jan 2015 14:58:06 +0000 (15:58 +0100)]
* files.el (directory-files-recursively): Do not include remote file names.

10 years agoPort to MSB hosts without optimization
Paul Eggert [Sun, 11 Jan 2015 09:42:50 +0000 (01:42 -0800)]
Port to MSB hosts without optimization

E.g., when configuring --with-wide-int CFLAGS='-O0' on x86,
the inline function XTYPE needs to be declared before being used.
* lisp.h (XTYPE): New forward declaration.

10 years agoDefault to 'configure --enable-silent-rules'
Paul Eggert [Sun, 11 Jan 2015 09:18:15 +0000 (01:18 -0800)]
Default to 'configure --enable-silent-rules'

This greatly shortens the 'make' output, making it more readable
and useful.  For example, on my platform it shortens a
4125-character line "gcc -std=gnu99 -c -Demacs -I. -I. -I../lib
... emacs.c" -- a line so long that it's hard to see what's going
on or where the diagnostics are -- to just "CC emacs.o".
* INSTALL: Document this.
* configure.ac: Add AM_SILENT_RULES([yes]).
(AM_DEFAULT_VERBOSITY): Remove now-unnecessary initialization.
* etc/NEWS: Document this.
Fixes: bug#19501
10 years agoSpelling fixes
Paul Eggert [Sun, 11 Jan 2015 05:50:52 +0000 (21:50 -0800)]
Spelling fixes

10 years agoPort to 32-bit --with-wide-int
Paul Eggert [Sat, 10 Jan 2015 21:33:38 +0000 (13:33 -0800)]
Port to 32-bit --with-wide-int

Prefer symbol indexes to struct Lisp_Symbol * casted and then
widened, as the latter had trouble with GCC on Fedora 21 when
configured --with-wide-int and when used in static initializers.
* lib-src/make-docfile.c (write_globals): Define and use symbols like
iQnil (a small integer, like 0) rather than aQnil (an address
constant).
* src/alloc.c (garbage_collect_1, which_symbols):
* src/lread.c (init_obarray):
Prefer builtin_lisp_symbol when it can be used.
* src/dispextern.h (struct image_type.type):
* src/font.c (font_property_table.key):
* src/frame.c (struct frame_parm_table.sym):
* src/keyboard.c (scroll_bar_parts, struct event_head):
* src/xdisp.c (struct props.name):
Use the index of a builtin symbol rather than its address.
All uses changed.
* src/lisp.h (TAG_SYMPTR, XSYMBOL_INIT): Remove, replacing with ...
(TAG_SYMOFFSET, SYMBOL_INDEX): ... new macros that deal with
symbol indexes rather than pointers, and which work better on MSB
hosts because they shift right before tagging.  All uses changed.
(DEFINE_LISP_SYMBOL_BEGIN, DEFINE_LISP_SYMBOL_END):
No longer noops on wide-int hosts, since they work now.
(builtin_lisp_symbol): New function.

10 years agoPort to HAVE_FREETYPE && !HAVE_XFT
Paul Eggert [Sat, 10 Jan 2015 21:13:57 +0000 (13:13 -0800)]
Port to HAVE_FREETYPE && !HAVE_XFT

* dispextern.h (struct face.extra) [HAVE_FREETYPE && !HAVE_XFT]:
* font.h (syms_of_xftfont) [HAVE_FREETYPE && !HAVE_XFT]:
Declare in this case too.

10 years agoPort to 32-bit Sun C 5.12 sparc
Paul Eggert [Sat, 10 Jan 2015 21:35:33 +0000 (13:35 -0800)]
Port to 32-bit Sun C 5.12 sparc

* make-docfile.c (close_emacs_globals): Align lispsym to GCALIGNMENT.
The alignment is required on all platforms; it just happens to have
been properly aligned on the previous platforms we tested.

10 years agoPort Qnil==0 changes to 32-bit --with-wide-int
Paul Eggert [Sat, 10 Jan 2015 21:35:33 +0000 (13:35 -0800)]
Port Qnil==0 changes to 32-bit --with-wide-int

* lisp.h (lisp_h_XSYMBOL, XSYMBOL): Assume USE_LSB_TAG in the
macro-implemented version.  For the non-USE_LSB_TAG case, supply
a new inline function that is the inverse of the new TAG_SYMPTR.
(lisp_h_XUNTAGBASE, XUNTAGBASE): Remove.  All uses removed.
(TAG_SYMPTR) [!USE_LSB_TAG]: If the pointer subtraction yields a
negative number, don't allow sign bits to bleed into the encoded
value.  Shift in zero bits instead.

10 years ago(shr-urlify): Don't bother the user about invalidly-encoded display strings
Lars Magne Ingebrigtsen [Sat, 10 Jan 2015 16:54:24 +0000 (17:54 +0100)]
(shr-urlify): Don't bother the user about invalidly-encoded display strings

10 years ago(shr-urlify): Decode URLs before using them as titles
Ivan Shmakov [Sat, 10 Jan 2015 16:48:38 +0000 (17:48 +0100)]
(shr-urlify): Decode URLs before using them as titles

Fixes: debbugs:19555
* lisp/net/shr.el (shr-urlify): Decode URLs before using them as titles.

10 years agoeww title cleanup when loading
Lars Magne Ingebrigtsen [Sat, 10 Jan 2015 16:26:37 +0000 (17:26 +0100)]
eww title cleanup when loading

(eww): Clear the title when loading so that we don't display
misleading information.

10 years ago(eww): Don't interpret "org/foo" as an URL.
Lars Magne Ingebrigtsen [Sat, 10 Jan 2015 15:41:49 +0000 (16:41 +0100)]
(eww): Don't interpret "org/foo" as an URL.

10 years agoFurther eww DWIM URL interpretation fixups
Lars Magne Ingebrigtsen [Sat, 10 Jan 2015 15:20:44 +0000 (16:20 +0100)]
Further eww DWIM URL interpretation fixups

(eww): Also interpret things like "en.wikipedia.org/wiki/Free
software" as an URL.

10 years agoTweak eww DWIM URL recognition
Lars Magne Ingebrigtsen [Sat, 10 Jan 2015 15:01:43 +0000 (16:01 +0100)]
Tweak eww DWIM URL recognition

Fixes: debbugs:19556
* net/eww.el (eww): Always interpret URLs that start with https?:
as plain URLs, even if they have spaces in them.

10 years agoMS-Windows followup for change in semantics of XIL and XLI. (Bug#15880)
Eli Zaretskii [Sat, 10 Jan 2015 11:27:35 +0000 (13:27 +0200)]
MS-Windows followup for change in semantics of XIL and XLI.  (Bug#15880)

 src/w32fns.c (Fw32_register_hot_key): Use XINT instead of XLI.
 src/w32notify.c (Fw32notify_add_watch, w32_get_watch_object): Use
 make_pointer_integer instead of XIL.
 (Fw32notify_rm_watch): Use XINTPTR instead of XLI.
 src/w32inevt.c (handle_file_notifications): Use make_pointer_integer
 instead of XIL.  Put a list of the descriptor, action, and file
 name in event->arg, instead of spreading them between event->code
 and event->arg.
 src/w32term.c (queue_notifications): Use make_pointer_integer
 instead of XIL.  Put a list of the descriptor, action, and file
 name in event->arg, instead of spreading them between event->code
 and event->arg.
 src/keyboard.c (kbd_buffer_get_event) [HAVE_W32NOTIFY]: Adjust Lisp
 event creation to changes in w32term.c and w32inevt.c above.

10 years agoBetter binding for vc-delete-file
Daniel Colascione [Sat, 10 Jan 2015 06:44:31 +0000 (22:44 -0800)]
Better binding for vc-delete-file

* lisp/vc/vc-hooks.el (vc-prefix-map): Bind vc-delete-file to C-x v x,
by analogy with dired.

10 years agoTweak NEWS
Daniel Colascione [Sat, 10 Jan 2015 06:18:04 +0000 (22:18 -0800)]
Tweak NEWS

* etc/NEWS: Fix typo

10 years agoTeach js-mode about ES6 generators
Daniel Colascione [Fri, 9 Jan 2015 18:25:50 +0000 (10:25 -0800)]
Teach js-mode about ES6 generators

* lisp/progmodes/js.el (js--function-heading-1-re)
(js--function-prologue-beginning): Parse ES6 generator function
declarations.  (That is, "function* name()").

10 years agoRefactor pointer-to-integer conversion
Paul Eggert [Fri, 9 Jan 2015 16:04:36 +0000 (08:04 -0800)]
Refactor pointer-to-integer conversion

* gfilenotify.c (monitor_to_lisp, lisp_to_monitor):
Rename and move to lisp.h.  All uses changed.
* lisp.h (XINTPTR, make_pointer_integer): New inline functions,
which are renamed from gfilenotify.c's lisp_to_monitor and
monitor_to_lisp, and with more-generic void * signatures.

10 years agoShrink EIEIO object header. Move generics to eieio-generic.el.
Stefan Monnier [Thu, 8 Jan 2015 21:03:04 +0000 (16:03 -0500)]
Shrink EIEIO object header.  Move generics to eieio-generic.el.

10 years ago* lisp/emacs-lisp/eieio*.el: Move the function defs to defclass.
Stefan Monnier [Thu, 8 Jan 2015 20:47:32 +0000 (15:47 -0500)]
* lisp/emacs-lisp/eieio*.el: Move the function defs to defclass.

* lisp/emacs-lisp/eieio.el (defclass): Move from eieio-defclass all the code
that creates functions, and most of the sanity checks.
Mark as obsolete the <class>-child-p function.
* lisp/emacs-lisp/eieio-core.el (eieio--define-field-accessors): Remove.
(eieio--class, eieio--object): Use cl-defstruct.
(eieio--object-num-slots): Define manually.
(eieio-defclass-autoload): Use eieio--class-make.
(eieio-defclass-internal): Rename from eieio-defclass.  Move all the
`(lambda...) definitions and most of the sanity checks to `defclass'.
Mark as obsolete the <class>-list-p function, the <class> variable and
the <initarg> variables.  Use pcase-dolist.
(eieio-defclass): New compatibility function.
* lisp/emacs-lisp/eieio-opt.el (eieio-build-class-alist)
(eieio-class-speedbar): Don't use eieio-default-superclass var.

10 years agoFix line-move-visual's following of column in R2L lines.
Eli Zaretskii [Thu, 8 Jan 2015 14:04:46 +0000 (16:04 +0200)]
Fix line-move-visual's following of column in R2L lines.

 src/simple.el (line-move-visual): When converting X pixel coordinate
 to temporary-goal-column, adjust the value for right-to-left
 screen lines.  This fixes vertical-motion, next/prev-line, etc.

 src/dispnew.c (buffer_posn_from_coords): Fix the value of the column
 returned for right-to-left screen lines.  (Before the change on
 2014-12-30, the incorrectly-computed X pixel coordinate concealed
 this bug.)

10 years agoFix GDB accesses to the 'nil's name.
Eli Zaretskii [Thu, 8 Jan 2015 13:53:09 +0000 (15:53 +0200)]
Fix GDB accesses to the 'nil's name.

 src/.gdbinit (xsymname): New subroutine.
 (xprintsym, initial-tbreak): Use it to access the name of a symbol
 in a way that doesn't cause GDB to barf when it tries to
 dereference a NULL pointer.

10 years agoFix fallout from "Qnil is zero" change in the display engine. (Bug#19535)
Eli Zaretskii [Thu, 8 Jan 2015 13:46:23 +0000 (15:46 +0200)]
Fix fallout from "Qnil is zero" change in the display engine.  (Bug#19535)

 src/xdisp.c (next_element_from_c_string): Use Lisp integer zero as
 the object.
 (set_cursor_from_row, try_cursor_movement, dump_glyph)
 (insert_left_trunc_glyphs, append_space_for_newline)
 (extend_face_to_end_of_line, highlight_trailing_whitespace)
 (find_row_edges, ROW_GLYPH_NEWLINE_P, Fmove_point_visually)
 (Fbidi_resolved_levels, produce_special_glyphs)
 (rows_from_pos_range, mouse_face_from_buffer_pos)
 (note_mouse_highlight): Use nil as the object for glyphs inserted
 by the display engine, and test with NILP instead of INTEGERP.
 src/w32fns.c (Fx_show_tip): Use NILP to test for glyphs inserted by
 the display engine.
 src/xfns.c (Fx_show_tip): Use NILP to test for glyphs inserted by
 the display engine.
 src/dispextern.h (struct glyph, struct it): Update comments for the
 OBJECT members.

10 years agoPort new Lisp symbol init to x86 --with-wide-int
Paul Eggert [Thu, 8 Jan 2015 08:41:17 +0000 (00:41 -0800)]
Port new Lisp symbol init to x86 --with-wide-int

* lisp.h (DEFINE_LISP_SYMBOL_BEGIN, DEFINE_LISP_SYMBOL_END):
Define to empty on platforms where EMACS_INT_MAX != INTPTR_MAX, as
GCC (at least) does not allow a constant initializer to widen an
address constant.

10 years ago* lisp.h (TAG_SYMPTR): Don't do arithmetic on NULL.
Paul Eggert [Thu, 8 Jan 2015 07:39:56 +0000 (23:39 -0800)]
* lisp.h (TAG_SYMPTR): Don't do arithmetic on NULL.

This is a followup to the "Port Qnil==0 XUNTAG to clang" patch.
Although clang doesn't need it, some other compiler might, and
it's easy enough to be safe.

10 years ago* conf_post.h (ATTRIBUTE_ALLOC_SIZE): Port to clang 3.5.0.
Paul Eggert [Thu, 8 Jan 2015 07:11:36 +0000 (23:11 -0800)]
* conf_post.h (ATTRIBUTE_ALLOC_SIZE): Port to clang 3.5.0.

Apparently clang removed support for the alloc_size attribute.

10 years agoPort Qnil==0 XUNTAG to clang
Paul Eggert [Thu, 8 Jan 2015 07:02:01 +0000 (23:02 -0800)]
Port Qnil==0 XUNTAG to clang

clang has undefined behavior if the program subtracts an integer
from (char *) 0.  Problem reported by YAMAMOTO Mitsuharu in:
http://lists.gnu.org/archive/html/emacs-devel/2015-01/msg00132.html
* lisp.h (lisp_h_XUNTAG) [USE_LSB_TAG]:
(XUNTAG) [!USE_LSB_TAG]: Port to clang 3.5.0.

10 years ago* emacs-lisp/eieio-generic.el: New file.
Stefan Monnier [Thu, 8 Jan 2015 05:24:24 +0000 (00:24 -0500)]
* emacs-lisp/eieio-generic.el: New file.

* lisp/emacs-lisp/eieio-core.el: Move all generic function code to
eieio-generic.el.
(eieio--defmethod): Declare.
* lisp/emacs-lisp/eieio.el: Require eieio-generic.  Move all generic
function code to eieio-generic.el.
* lisp/emacs-lisp/eieio-opt.el (eieio-help-generic): Move to
eieio-generic.el.
* lisp/emacs-lisp/eieio-datadebug.el (eieio-debug-methodinvoke): Update call
to eieio--generic-call.
* lisp/emacs-lisp/eieio-base.el (eieio-instance-inheritor): Don't use
<class>-child type.
* test/automated/eieio-test-methodinvoke.el (eieio-test-method-store):
Update reference to eieio--generic-call-key.
* test/automated/eieio-tests.el (eieio-test-23-inheritance-check): Don't use
<foo>-child-p.