]> code.delx.au - gnu-emacs/log
gnu-emacs
9 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.

9 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.

9 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.

9 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.

9 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

9 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.

9 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.

9 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.

9 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'.

9 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.

9 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.

9 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.

9 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.

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

9 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.

9 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.

9 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
9 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).

9 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.

9 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.

9 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.

9 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.

9 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
9 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.

9 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.

9 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.

9 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.

9 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

9 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'.

9 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.

9 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

9 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.

9 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.

9 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.

9 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.

9 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.

9 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.

9 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.

9 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.

9 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.

9 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.

9 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.

9 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.

9 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.

9 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.

9 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.

9 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.

9 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'.

9 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.

9 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).

9 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.

9 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.

9 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.

9 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).

9 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).

9 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.

9 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.

9 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.

9 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.

9 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.

9 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.

9 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

9 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.

9 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.

9 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.

9 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
9 years agoSpelling fixes
Paul Eggert [Sun, 11 Jan 2015 05:50:52 +0000 (21:50 -0800)]
Spelling fixes

9 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.

9 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.

9 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.

9 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.

9 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

9 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.

9 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.

9 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.

9 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.

9 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.

9 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.

9 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.

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

* etc/NEWS: Fix typo

9 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()").

9 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.

9 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.

9 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.

9 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.)

9 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.

9 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.

9 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.

9 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.

9 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.

9 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.

9 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.

9 years ago# ChangeLog fixes
Glenn Morris [Thu, 8 Jan 2015 05:00:04 +0000 (21:00 -0800)]
# ChangeLog fixes

9 years ago* admin/authors.el (authors-aliases): Add an entry to ignore.
Glenn Morris [Thu, 8 Jan 2015 04:58:09 +0000 (20:58 -0800)]
* admin/authors.el (authors-aliases): Add an entry to ignore.

9 years ago* lisp/files.el (file-tree-walk): Remove; of unknown authorship.
Glenn Morris [Thu, 8 Jan 2015 04:52:24 +0000 (20:52 -0800)]
* lisp/files.el (file-tree-walk): Remove; of unknown authorship.

* etc/NEWS: Remove entry.

Fixes: debbugs:19325
9 years agolisp/emacs-lisp/eieio-core.el (eieio-backward-compatibility): New var.
Stefan Monnier [Thu, 8 Jan 2015 04:11:58 +0000 (23:11 -0500)]
lisp/emacs-lisp/eieio-core.el (eieio-backward-compatibility): New var.

* lisp/cedet/ede/speedbar.el (ede-speedbar-compile-line)
(ede-speedbar-get-top-project-for-line):
* lisp/cedet/ede.el (ede-buffer-belongs-to-target-p)
(ede-buffer-belongs-to-project-p, ede-build-forms-menu)
(ede-add-project-to-global-list):
* lisp/cedet/semantic/db-typecache.el (semanticdb-get-typecache):
* lisp/cedet/semantic/db-file.el (semanticdb-load-database):
* lisp/cedet/semantic/db-el.el (semanticdb-elisp-sym->tag):
* lisp/cedet/semantic/db-ebrowse.el (semanticdb-ebrowse-load-helper):
* lisp/cedet/ede/project-am.el (project-am-preferred-target-type):
* lisp/cedet/ede/proj.el (ede-proj-load):
* lisp/cedet/ede/custom.el (ede-customize-current-target, ede-customize-target):
* lisp/cedet/semantic/ede-grammar.el ("semantic grammar"):
* lisp/cedet/semantic/scope.el (semantic-scope-reset-cache)
(semantic-calculate-scope):
* lisp/cedet/srecode/map.el (srecode-map-update-map):
* lisp/cedet/srecode/insert.el (srecode-insert-show-error-report)
(srecode-insert-method, srecode-insert-include-lookup)
(srecode-insert-method):
* lisp/cedet/srecode/fields.el (srecode-active-template-region):
* lisp/cedet/srecode/compile.el (srecode-flush-active-templates)
(srecode-compile-inserter): Don't use <class> as a variable.
Use `oref-default' for class slots.

* lisp/cedet/semantic/grammar.el (semantic-grammar-eldoc-last-data): New var.
(semantic-grammar-eldoc-get-macro-docstring): Use it instead of
eldoc-last-data.
* lisp/cedet/semantic/fw.el (semantic-exit-on-input): Use `declare'.
(semantic-throw-on-input): Use `with-current-buffer'.
* lisp/cedet/semantic/db.el (semanticdb-abstract-table-list): Define if not
pre-defined.
* lisp/cedet/semantic/db-find.el (semanticdb-find-tags-collector):
Use save-current-buffer.
(semanticdb-find-tags-collector): Don't use <class> as a variable.
* lisp/cedet/semantic/complete.el (semantic-complete-active-default)
(semantic-complete-current-matched-tag): Declare.
(semantic-complete-inline-custom-type): Don't use <class> as a variable.
* lisp/cedet/semantic/bovine/make.el (semantic-analyze-possible-completions):
Use with-current-buffer.
* lisp/cedet/semantic.el (semantic-parser-warnings): Declare.
* lisp/cedet/ede/base.el (ede-target-list): Define if not pre-defined.
(ede-with-projectfile): Prefer find-file-noselect over
save-window-excursion.

* lisp/emacs-lisp/chart.el (chart-add-sequence, chart-bar-quickie):
Don't use <class> as a variable.

* lisp/emacs-lisp/eieio-base.el (eieio-persistent-validate/fix-slot-value):
Improve error messages.
(eieio-persistent-slot-type-is-class-p): Handle `list-of' types, as
well as user-defined types.  Emit errors for legacy types like
<class>-child and <class>-list, if not eieio-backward-compatibility.

* lisp/emacs-lisp/eieio-core.el (eieio-backward-compatibility): New var.
(eieio-defclass-autoload): Obey it.
(eieio--class-object): Improve error behavior.
(eieio-class-children-fast, same-class-fast-p): Remove.  Inline at
every use site.
(eieio--defgeneric-form-primary-only): Rename from
eieio-defgeneric-form-primary-only; update all callers.
(eieio--defgeneric-form-primary-only-one): Rename from
eieio-defgeneric-form-primary-only-one; update all callers.
(eieio-defgeneric-reset-generic-form)
(eieio-defgeneric-reset-generic-form-primary-only)
(eieio-defgeneric-reset-generic-form-primary-only-one): Remove.
(eieio--method-optimize-primary): New function to replace them.
(eieio--defmethod, eieio-defmethod): Use it.
(eieio--perform-slot-validation): Rename from
eieio-perform-slot-validation; update all callers.
(eieio--validate-slot-value): Rename from eieio-validate-slot-value.
Change `class' to be a class object.  Update all callers.
(eieio--validate-class-slot-value): Rename from
eieio-validate-class-slot-value.  Change `class' to be a class object.
Update all callers.
(eieio-oset-default): Accept class object as well.
(eieio--generic-call-primary-only): Rename from
eieio-generic-call-primary-only.  Update all callers.

* lisp/emacs-lisp/eieio-opt.el (eieio-read-generic-p): Remove.
(eieio-read-generic): Use `generic-p' instead.

* lisp/emacs-lisp/eieio.el (same-class-p): Accept class object as well.
(call-next-method): Simplify.
(clone): Obey eieio-backward-compatibility.

* lisp/gnus/registry.el: Don't use <class> as a variable.

* test/automated/eieio-test-methodinvoke.el
(eieio-test-method-order-list-4):
Don't use <class> as a variable.

* test/automated/eieio-test-persist.el (persistent-with-objs-list-slot):
Don't use <class>-list type.

* test/automated/eieio-tests.el: Use cl-lib.  Don't use <class> as a variable.
Don't use <class>-list types and <class>-list-p predicates.

9 years agolisp/gnus/gnus-group.el (gnus-read-ephemeral-bug-group): Use mm-disable-multibyte...
Katsumi Yamaoka [Thu, 8 Jan 2015 03:38:59 +0000 (03:38 +0000)]
lisp/gnus/gnus-group.el (gnus-read-ephemeral-bug-group): Use mm-disable-multibyte instead of mm-enable-multibyte

9 years agolisp/gnus/gnus-group.el (gnus-read-ephemeral-bug-group): Use mm-enable-multibyte...
Katsumi Yamaoka [Thu, 8 Jan 2015 03:37:10 +0000 (03:37 +0000)]
lisp/gnus/gnus-group.el (gnus-read-ephemeral-bug-group): Use mm-enable-multibyte instead of set-buffer-multibyte

9 years ago* src/gfilenotify.c (monitor_to_lisp, lisp_to_monitor):
Paul Eggert [Thu, 8 Jan 2015 01:52:30 +0000 (17:52 -0800)]
* src/gfilenotify.c (monitor_to_lisp, lisp_to_monitor):

Port recent fix to !USE_LSB_TAG platforms.

9 years agoPort GFileMonitor * hack to Qnil==0 platforms
Paul Eggert [Thu, 8 Jan 2015 01:12:16 +0000 (17:12 -0800)]
Port GFileMonitor * hack to Qnil==0 platforms

Reported by Glenn Morris in: http://bugs.gnu.org/15880#112
* gfilenotify.c (monitor_to_lisp, lisp_to_monitor): New functions.
(dir_monitor_callback, Fgfile_add_watch, Fgfile_rm_watch): Use them.