aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPaul Eggert2012-01-09 09:36:10 -0800
committerPaul Eggert2012-01-09 09:36:10 -0800
commit35cf62d95cdcd5323dcea4a5385942c342ff1d9c (patch)
tree90358cbb033a126c4d48793a80fd804b7baaca24 /src
parent59815c02506eb39b61e672528ed03885749ba529 (diff)
parent7655cb66d86564e792b825f1a0e1a4de7d6e6db5 (diff)
downloademacs-35cf62d95cdcd5323dcea4a5385942c342ff1d9c.tar.gz
emacs-35cf62d95cdcd5323dcea4a5385942c342ff1d9c.zip
Merge from trunk.
Diffstat (limited to 'src')
-rw-r--r--src/.gdbinit2
-rw-r--r--src/ChangeLog174
-rw-r--r--src/ChangeLog.12
-rw-r--r--src/ChangeLog.102
-rw-r--r--src/ChangeLog.116
-rw-r--r--src/ChangeLog.22
-rw-r--r--src/ChangeLog.32
-rw-r--r--src/ChangeLog.42
-rw-r--r--src/ChangeLog.52
-rw-r--r--src/ChangeLog.62
-rw-r--r--src/ChangeLog.74
-rw-r--r--src/ChangeLog.86
-rw-r--r--src/ChangeLog.92
-rw-r--r--src/Makefile.in2
-rw-r--r--src/README2
-rw-r--r--src/alloc.c2
-rw-r--r--src/atimer.c2
-rw-r--r--src/atimer.h2
-rw-r--r--src/bidi.c4
-rw-r--r--src/blockinput.h2
-rw-r--r--src/buffer.c2
-rw-r--r--src/buffer.h2
-rw-r--r--src/bytecode.c2
-rw-r--r--src/callint.c13
-rw-r--r--src/callproc.c2
-rw-r--r--src/casefiddle.c2
-rw-r--r--src/casetab.c2
-rw-r--r--src/category.c2
-rw-r--r--src/ccl.c6
-rw-r--r--src/character.c2
-rw-r--r--src/charset.c4
-rw-r--r--src/charset.h6
-rw-r--r--src/cm.c2
-rw-r--r--src/cm.h2
-rw-r--r--src/cmds.c2
-rw-r--r--src/coding.c6
-rw-r--r--src/coding.h4
-rw-r--r--src/commands.h2
-rw-r--r--src/composite.c2
-rw-r--r--src/composite.h2
-rw-r--r--src/data.c2
-rw-r--r--src/dbusbind.c4
-rw-r--r--src/deps.mk2
-rw-r--r--src/dired.c2
-rw-r--r--src/dispextern.h2
-rw-r--r--src/dispnew.c2
-rw-r--r--src/disptab.h2
-rw-r--r--src/doc.c2
-rw-r--r--src/doprnt.c2
-rw-r--r--src/dosfns.c2
-rw-r--r--src/dosfns.h2
-rw-r--r--src/editfns.c2
-rw-r--r--src/emacs-icon.h2
-rw-r--r--src/emacs.c16
-rw-r--r--src/emacsgtkfixed.c2
-rw-r--r--src/emacsgtkfixed.h2
-rw-r--r--src/epaths.in2
-rw-r--r--src/eval.c2
-rw-r--r--src/fileio.c37
-rw-r--r--src/filelock.c2
-rw-r--r--src/firstfile.c2
-rw-r--r--src/floatfns.c2
-rw-r--r--src/fns.c4
-rw-r--r--src/font.c2
-rw-r--r--src/font.h6
-rw-r--r--src/fontset.c2
-rw-r--r--src/fontset.h2
-rw-r--r--src/frame.c2
-rw-r--r--src/frame.h2
-rw-r--r--src/fringe.c2
-rw-r--r--src/ftfont.c2
-rw-r--r--src/ftxfont.c2
-rw-r--r--src/getpagesize.h2
-rw-r--r--src/gnutls.c16
-rw-r--r--src/gnutls.h2
-rw-r--r--src/gtkutil.c4
-rw-r--r--src/gtkutil.h2
-rw-r--r--src/image.c35
-rw-r--r--src/indent.c2
-rw-r--r--src/indent.h2
-rw-r--r--src/insdel.c2
-rw-r--r--src/intervals.c2
-rw-r--r--src/intervals.h2
-rw-r--r--src/keyboard.c2
-rw-r--r--src/keyboard.h2
-rw-r--r--src/keymap.c2
-rw-r--r--src/keymap.h2
-rw-r--r--src/lastfile.c2
-rw-r--r--src/lisp.h2
-rw-r--r--src/lisp.mk2
-rw-r--r--src/lread.c4
-rw-r--r--src/m/alpha.h2
-rw-r--r--src/m/amdx86-64.h2
-rw-r--r--src/m/ia64.h2
-rw-r--r--src/m/ibmrs6000.h2
-rw-r--r--src/m/ibms390x.h2
-rw-r--r--src/m/intel386.h2
-rw-r--r--src/m/m68k.h2
-rw-r--r--src/m/macppc.h2
-rw-r--r--src/m/sparc.h2
-rw-r--r--src/m/template.h2
-rw-r--r--src/m/vax.h2
-rw-r--r--src/macros.c2
-rw-r--r--src/macros.h2
-rw-r--r--src/makefile.w32-in2
-rw-r--r--src/marker.c2
-rw-r--r--src/mem-limits.h2
-rw-r--r--src/menu.c2
-rw-r--r--src/menu.h2
-rw-r--r--src/minibuf.c2
-rw-r--r--src/msdos.c2
-rw-r--r--src/msdos.h2
-rw-r--r--src/ns.mk2
-rw-r--r--src/nsfns.m13
-rw-r--r--src/nsfont.m30
-rw-r--r--src/nsgui.h2
-rw-r--r--src/nsimage.m2
-rw-r--r--src/nsmenu.m48
-rw-r--r--src/nsselect.m170
-rw-r--r--src/nsterm.h2
-rw-r--r--src/nsterm.m38
-rw-r--r--src/print.c4
-rw-r--r--src/process.c4
-rw-r--r--src/process.h2
-rw-r--r--src/puresize.h2
-rw-r--r--src/ralloc.c2
-rw-r--r--src/regex.c2
-rw-r--r--src/regex.h2
-rw-r--r--src/region-cache.c2
-rw-r--r--src/region-cache.h2
-rw-r--r--src/s/aix4-2.h2
-rw-r--r--src/s/bsd-common.h2
-rw-r--r--src/s/cygwin.h2
-rw-r--r--src/s/darwin.h2
-rw-r--r--src/s/freebsd.h2
-rw-r--r--src/s/gnu-linux.h4
-rw-r--r--src/s/gnu.h2
-rw-r--r--src/s/hpux10-20.h2
-rw-r--r--src/s/irix6-5.h2
-rw-r--r--src/s/ms-w32.h2
-rw-r--r--src/s/msdos.h2
-rw-r--r--src/s/netbsd.h2
-rw-r--r--src/s/sol2-6.h2
-rw-r--r--src/s/template.h2
-rw-r--r--src/s/unixware.h2
-rw-r--r--src/s/usg5-4-common.h2
-rw-r--r--src/scroll.c2
-rw-r--r--src/search.c12
-rw-r--r--src/sheap.c2
-rw-r--r--src/sound.c2
-rw-r--r--src/syntax.c2
-rw-r--r--src/syntax.h2
-rw-r--r--src/sysdep.c2
-rw-r--r--src/sysselect.h2
-rw-r--r--src/syssignal.h2
-rw-r--r--src/systime.h2
-rw-r--r--src/systty.h2
-rw-r--r--src/syswait.h2
-rw-r--r--src/term.c4
-rw-r--r--src/termchar.h2
-rw-r--r--src/termhooks.h2
-rw-r--r--src/terminal.c2
-rw-r--r--src/terminfo.c2
-rw-r--r--src/termopts.h2
-rw-r--r--src/textprop.c4
-rw-r--r--src/tparam.h2
-rw-r--r--src/undo.c2
-rw-r--r--src/unexaix.c2
-rw-r--r--src/unexcoff.c2
-rw-r--r--src/unexcw.c2
-rw-r--r--src/unexelf.c2
-rw-r--r--src/unexmacosx.c2
-rw-r--r--src/unexw32.c2
-rw-r--r--src/vm-limit.c2
-rw-r--r--src/w16select.c11
-rw-r--r--src/w32.c42
-rw-r--r--src/w32.h2
-rw-r--r--src/w32console.c2
-rw-r--r--src/w32fns.c2
-rw-r--r--src/w32font.c4
-rw-r--r--src/w32font.h2
-rw-r--r--src/w32gui.h2
-rw-r--r--src/w32heap.c2
-rw-r--r--src/w32heap.h2
-rw-r--r--src/w32inevt.c2
-rw-r--r--src/w32inevt.h2
-rw-r--r--src/w32menu.c2
-rw-r--r--src/w32proc.c2
-rw-r--r--src/w32reg.c2
-rw-r--r--src/w32select.c2
-rw-r--r--src/w32term.c8
-rw-r--r--src/w32term.h2
-rw-r--r--src/w32uniscribe.c2
-rw-r--r--src/w32xfns.c2
-rw-r--r--src/widget.c2
-rw-r--r--src/widget.h2
-rw-r--r--src/widgetprv.h2
-rw-r--r--src/window.c2
-rw-r--r--src/window.h2
-rw-r--r--src/xdisp.c23
-rw-r--r--src/xfaces.c2
-rw-r--r--src/xfns.c20
-rw-r--r--src/xfont.c2
-rw-r--r--src/xftfont.c4
-rw-r--r--src/xgselect.c2
-rw-r--r--src/xgselect.h2
-rw-r--r--src/xmenu.c25
-rw-r--r--src/xml.c2
-rw-r--r--src/xrdb.c2
-rw-r--r--src/xselect.c4
-rw-r--r--src/xsettings.c2
-rw-r--r--src/xsettings.h2
-rw-r--r--src/xsmfns.c2
-rw-r--r--src/xterm.c16
-rw-r--r--src/xterm.h3
215 files changed, 745 insertions, 451 deletions
diff --git a/src/.gdbinit b/src/.gdbinit
index 2051475bea0..b60c14fe289 100644
--- a/src/.gdbinit
+++ b/src/.gdbinit
@@ -1,4 +1,4 @@
1# Copyright (C) 1992-1998, 2000-2011 Free Software Foundation, Inc. 1# Copyright (C) 1992-1998, 2000-2012 Free Software Foundation, Inc.
2# 2#
3# This file is part of GNU Emacs. 3# This file is part of GNU Emacs.
4# 4#
diff --git a/src/ChangeLog b/src/ChangeLog
index e2c579459a2..00202258d02 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,4 +1,4 @@
12011-12-14 Paul Eggert <eggert@cs.ucla.edu> 12012-01-09 Paul Eggert <eggert@cs.ucla.edu>
2 2
3 Fix integer width and related bugs (Bug#9874). 3 Fix integer width and related bugs (Bug#9874).
4 * alloc.c (pure_bytes_used_lisp, pure_bytes_used_non_lisp): 4 * alloc.c (pure_bytes_used_lisp, pure_bytes_used_non_lisp):
@@ -788,6 +788,174 @@
788 rather than rolling our own approximation. 788 rather than rolling our own approximation.
789 (SCROLL_BAR_VEC_SIZE): Remove; not used. 789 (SCROLL_BAR_VEC_SIZE): Remove; not used.
790 790
7912012-01-07 Paul Eggert <eggert@cs.ucla.edu>
792
793 emacs: fix an auto-save permissions race condition (Bug#10400)
794 * fileio.c (auto_saving_dir_umask): New static var.
795 (Fmake_directory_internal): Use it.
796 (do_auto_save_make_dir): Set it, instead of invoking chmod after
797 creating the directory. The old code temporarily assigns
798 too-generous permissions to the directory.
799 (do_auto_save_eh): Clear it.
800 (Fdo_auto_save): Catch all errors, not just file errors, so
801 that the var is always cleared.
802
8032012-01-07 Eli Zaretskii <eliz@gnu.org>
804
805 * search.c (scan_buffer): Pass character positions to
806 know_region_cache, not byte positions. (Bug#6540)
807
8082012-01-07 LynX <_LynX@bk.ru> (tiny change)
809
810 * w32.c (sys_rename): Report EXDEV when rename of a directory
811 fails because the target is on another logical disk. (Bug#10284)
812
8132012-01-07 David Benjamin <davidben@mit.edu> (tiny change)
814
815 * xterm.c (x_embed_request_focus): New function.
816
817 * xterm.h: Add prototype.
818
819 * xfns.c (Fx_focus_frame): Use it for embedded frames (Bug#9977).
820
8212012-01-05 Glenn Morris <rgm@gnu.org>
822
823 * emacs.c (emacs_copyright): Update short copyright year to 2012.
824
8252012-01-01 Eli Zaretskii <eliz@gnu.org>
826
827 * gnutls.c (init_gnutls_functions): Load gnutls_check_version.
828 Load gnutls_transport_set_lowat only if GnuTLS version is below
829 2.11.1.
830 (emacs_gnutls_handshake): Call gnutls_transport_set_lowat only for
831 GnuTLS versions below 2.11.1.
832
8332011-12-31 Antoine Levitt <antoine.levitt@gmail.com>
834
835 * xdisp.c (syms_of_xdisp) <window-scroll-functions>: Add warning
836 to the doc string advising against its use for altering the way
837 windows are scrolled.
838
8392011-12-28 Kenichi Handa <handa@m17n.org>
840
841 * coding.c (Fdefine_coding_system_internal): Make an utf-8 base
842 coding-system ASCII compatible only when it does not produce BOM
843 on encoding (Bug#10383).
844
8452011-12-26 Jan Djärv <jan.h.d@swipnet.se>
846
847 * xmenu.c (x_menu_wait_for_event): Use xg_select for Gtk3 so menus
848 can scroll.
849 (create_and_show_popup_menu): Always use menu_position_func for
850 Gtk3 (Bug#10361).
851
8522011-12-24 Andreas Schwab <schwab@linux-m68k.org>
853
854 * callint.c (Fcall_interactively): Don't truncate prompt string.
855
8562011-12-23 Eli Zaretskii <eliz@gnu.org>
857
858 * xdisp.c (handle_invisible_prop): Handle correctly an invisible
859 property that ends at ZV, so that the bidi iteration could be
860 resumed from there (after widening). (Bug#10360)
861
8622011-12-22 Jan Djärv <jan.h.d@swipnet.se>
863
864 * nsfont.m (ns_spec_to_descriptor): Do not autorelease fdesc.
865
8662011-12-21 Jan Djärv <jan.h.d@swipnet.se>
867
868 * nsterm.m (x_free_frame_resources):
869 Release f->output_data.ns->miniimage.
870 (ns_index_color): Fix indentation. Do not retain
871 color_table->colors[i].
872
873 * nsmenu.m (ns_update_menubar): Call free_menubar_widget_value_tree
874 before returning.
875
876 * nsfns.m (x_set_background_color): Assign return value from
877 ns_index_color to face-background instead of NSColor*.
878 (ns_implicitly_set_icon_type): Fix indentation.
879 Change assignment in for loop to comparison.
880
881 * emacs.c (ns_pool): New variable.
882 (main): Assign ns_pool.
883 (Fkill_emacs): Call ns_release_autorelease_pool.
884
885 * nsfont.m (ns_spec_to_descriptor): Fix indentation,
886 autorelease fdesc, release fdAttrs and tdict.
887 (ns_get_covering_families): Release charset.
888 (ns_findfonts): Release NSFontDescriptor created with new.
889 (ns_uni_to_glyphs): Fix indentation.
890 (setString): Release attrStr before assigning new value.
891
8922011-12-18 Jan Djärv <jan.h.d@swipnet.se>
893
894 * nsmenu.m (NSMenuDidBeginTrackingNotification): Declare if OSX < 10.5
895 and NS_IMPL_COCOA.
896 (trackingNotification): Surround with ifdef NS_IMPL_COCOA.
897 (syms_of_nsmenu): Set trackingMenu to 1 if not NS_IMPL_COCOA.
898
8992011-12-18 David Reitter <reitter@cmu.edu>
900
901 * nsterm.m (ns_term_init): Subscribe for notifications
902 NSMenuDidBeginTrackingNotification and NSMenuDidEndTrackingNotification
903 to method trackingNotification in EmacsMenu.
904
905 * nsmenu.m (trackingMenu): New variable.
906 (trackingNotification): New method (from Aquamacs).
907 (menuNeedsUpdate): Expand comment and return if trackingMenu is 0,
908 from Aquamacs (Bug#7030).
909
9102011-12-18 Jan Djärv <jan.h.d@swipnet.se>
911
912 * nsselect.m (CUT_BUFFER_SUPPORT): Remove define.
913 (symbol_to_nsstring): Fix indentation.
914 (ns_symbol_to_pb): New function.
915 (Fns_get_selection_internal): Renamed from Fns_get_cut_buffer_internal.
916 (Fns_rotate_cut_buffers_internal): Removed.
917 (Fns_store_selection_internal): Renamed from
918 Fns_store_cut_buffer_internal.
919 (ns_get_foreign_selection, Fx_own_selection_internal)
920 (Fx_disown_selection_internal, Fx_selection_exists_p)
921 (Fns_get_selection_internal, Fns_store_selection_internal):
922 Use ns_symbol_to_pb and check if return value is nil.
923 (syms_of_nsselect): Remove ifdef CUT_BUFFER_SUPPORT. Remove defsubr
924 Sns_rotate_cut_buffers_internal. Sns_get_cut_buffer_internal
925 renamed to Sns_get_selection_internal, Sns_store_cut_buffer_internal
926 renamed to Sns_store_selection_internal.
927 (ns_handle_selection_request): Move code to Fx_own_selection_internal
928 and remove this function.
929 (ns_handle_selection_clear): Remove, never used.
930 (Fx_own_selection_internal): Move code from ns_handle_selection_request
931 here.
932
9332011-12-17 Ken Brown <kbrown@cornell.edu>
934
935 * fileio.c (check_writable) [CYGWIN]: Return non-zero if UID or
936 GID is unknown (Bug#10257).
937
9382011-12-17 Paul Eggert <eggert@cs.ucla.edu>
939
940 * s/gnu-linux.h: Fix mark_memory typo (Bug#10286).
941 (GC_MARK_SECONDARY_STACK): Omit removed 3rd arg to mark_memory,
942 which caused a build failure on GNU/Linux IA-64. This problem was
943 introduced by my 2011-10-07 patch.
944
9452011-12-15 Juri Linkov <juri@jurta.org>
946
947 * image.c (imagemagick_error): New function. (Bug#10112)
948 (imagemagick_load_image): Comment out `MagickSetResolution' call.
949 Use `imagemagick_error' where ImageMagick functions return
950 `MagickFalse'.
951 (Fimagemagick_types): Add `Fnreverse' to return the list in the
952 proper order.
953
9542011-12-15 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
955
956 * xftfont.c (xftfont_draw): Use the font metrics of s->font to
957 fill background (Bug#8992).
958
7912011-12-13 Martin Rudalics <rudalics@gmx.at> 9592011-12-13 Martin Rudalics <rudalics@gmx.at>
792 960
793 * window.c (Vwindow_combination_resize) 961 * window.c (Vwindow_combination_resize)
@@ -5097,7 +5265,7 @@
5097 5265
50982011-06-15 Paul Eggert <eggert@cs.ucla.edu> 52662011-06-15 Paul Eggert <eggert@cs.ucla.edu>
5099 5267
5100 Integer overflow and signedness fixes (Bug#8873). 5268 Integer overflow and signedness fixes (Bug#8873, Bug#8828).
5101 5269
5102 * ccl.c (ASCENDING_ORDER): New macro, to work around GCC bug 43772. 5270 * ccl.c (ASCENDING_ORDER): New macro, to work around GCC bug 43772.
5103 (GET_CCL_RANGE, IN_INT_RANGE): Use it. 5271 (GET_CCL_RANGE, IN_INT_RANGE): Use it.
@@ -9692,7 +9860,7 @@ See ChangeLog.11 for earlier changes.
9692;; coding: utf-8 9860;; coding: utf-8
9693;; End: 9861;; End:
9694 9862
9695 Copyright (C) 2011 Free Software Foundation, Inc. 9863 Copyright (C) 2011-2012 Free Software Foundation, Inc.
9696 9864
9697 This file is part of GNU Emacs. 9865 This file is part of GNU Emacs.
9698 9866
diff --git a/src/ChangeLog.1 b/src/ChangeLog.1
index 7fef45f36da..5265d6fdf59 100644
--- a/src/ChangeLog.1
+++ b/src/ChangeLog.1
@@ -3521,7 +3521,7 @@
3521 * minibuf.c: Don't allow entry to minibuffer 3521 * minibuf.c: Don't allow entry to minibuffer
3522 while minibuffer is selected. 3522 while minibuffer is selected.
3523 3523
3524 Copyright (C) 1985-1986, 2001-2011 Free Software Foundation, Inc. 3524 Copyright (C) 1985-1986, 2001-2012 Free Software Foundation, Inc.
3525 3525
3526 This file is part of GNU Emacs. 3526 This file is part of GNU Emacs.
3527 3527
diff --git a/src/ChangeLog.10 b/src/ChangeLog.10
index 53f7a016654..5baeb877939 100644
--- a/src/ChangeLog.10
+++ b/src/ChangeLog.10
@@ -27912,7 +27912,7 @@ See ChangeLog.9 for earlier changes.
27912;; add-log-time-zone-rule: t 27912;; add-log-time-zone-rule: t
27913;; End: 27913;; End:
27914 27914
27915 Copyright (C) 2001-2011 Free Software Foundation, Inc. 27915 Copyright (C) 2001-2012 Free Software Foundation, Inc.
27916 27916
27917 This file is part of GNU Emacs. 27917 This file is part of GNU Emacs.
27918 27918
diff --git a/src/ChangeLog.11 b/src/ChangeLog.11
index f9fd442da3f..6c361399535 100644
--- a/src/ChangeLog.11
+++ b/src/ChangeLog.11
@@ -12897,7 +12897,7 @@
12897 * font.c (font_update_drivers): Sanity fallback to avoid disabling 12897 * font.c (font_update_drivers): Sanity fallback to avoid disabling
12898 all drivers. 12898 all drivers.
12899 12899
12900 * nsterm.m (-windowDidResize:): Avoid inf-loop under GNUStep. 12900 * nsterm.m (-windowDidResize:): Avoid inf-loop under GNUstep.
12901 12901
129022009-05-06 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> 129022009-05-06 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
12903 12903
@@ -30657,7 +30657,7 @@
30657 (display_buffer): Do not set split_height_threshold to twice the 30657 (display_buffer): Do not set split_height_threshold to twice the
30658 value of window_min_height to avoid changing the value of a 30658 value of window_min_height to avoid changing the value of a
30659 customizable variable. Rather explicitly check whether the 30659 customizable variable. Rather explicitly check whether the
30660 height of the window that shall be splitted is at least as large 30660 height of the window that shall be split is at least as large
30661 as split_height_threshold. 30661 as split_height_threshold.
30662 (Fwindow_full_width_p): New defun. 30662 (Fwindow_full_width_p): New defun.
30663 (syms_of_window): Defsubr it. 30663 (syms_of_window): Defsubr it.
@@ -31383,7 +31383,7 @@ See ChangeLog.10 for earlier changes.
31383;; coding: utf-8 31383;; coding: utf-8
31384;; End: 31384;; End:
31385 31385
31386 Copyright (C) 2007-2011 Free Software Foundation, Inc. 31386 Copyright (C) 2007-2012 Free Software Foundation, Inc.
31387 31387
31388 This file is part of GNU Emacs. 31388 This file is part of GNU Emacs.
31389 31389
diff --git a/src/ChangeLog.2 b/src/ChangeLog.2
index d3be0064610..1a9728f6896 100644
--- a/src/ChangeLog.2
+++ b/src/ChangeLog.2
@@ -4771,7 +4771,7 @@
4771 4771
4772See ChangeLog.1 for earlier changes. 4772See ChangeLog.1 for earlier changes.
4773 4773
4774 Copyright (C) 1986-1988, 2001-2011 Free Software Foundation, Inc. 4774 Copyright (C) 1986-1988, 2001-2012 Free Software Foundation, Inc.
4775 4775
4776 This file is part of GNU Emacs. 4776 This file is part of GNU Emacs.
4777 4777
diff --git a/src/ChangeLog.3 b/src/ChangeLog.3
index 34906e505da..6c580fe4b52 100644
--- a/src/ChangeLog.3
+++ b/src/ChangeLog.3
@@ -16507,7 +16507,7 @@ See ChangeLog.2 for earlier changes.
16507;; coding: utf-8 16507;; coding: utf-8
16508;; End: 16508;; End:
16509 16509
16510 Copyright (C) 1993, 2001-2011 Free Software Foundation, Inc. 16510 Copyright (C) 1993, 2001-2012 Free Software Foundation, Inc.
16511 16511
16512 This file is part of GNU Emacs. 16512 This file is part of GNU Emacs.
16513 16513
diff --git a/src/ChangeLog.4 b/src/ChangeLog.4
index 88c9e3dbf71..d7ef7d8779a 100644
--- a/src/ChangeLog.4
+++ b/src/ChangeLog.4
@@ -6906,7 +6906,7 @@ See ChangeLog.3 for earlier changes.
6906;; coding: utf-8 6906;; coding: utf-8
6907;; End: 6907;; End:
6908 6908
6909 Copyright (C) 1993-1994, 2001-2011 Free Software Foundation, Inc. 6909 Copyright (C) 1993-1994, 2001-2012 Free Software Foundation, Inc.
6910 6910
6911 This file is part of GNU Emacs. 6911 This file is part of GNU Emacs.
6912 6912
diff --git a/src/ChangeLog.5 b/src/ChangeLog.5
index ee79917a34d..c6dfde7496b 100644
--- a/src/ChangeLog.5
+++ b/src/ChangeLog.5
@@ -7148,7 +7148,7 @@ See ChangeLog.4 for earlier changes.
7148;; coding: utf-8 7148;; coding: utf-8
7149;; End: 7149;; End:
7150 7150
7151 Copyright (C) 1994-1995, 2001-2011 Free Software Foundation, Inc. 7151 Copyright (C) 1994-1995, 2001-2012 Free Software Foundation, Inc.
7152 7152
7153 This file is part of GNU Emacs. 7153 This file is part of GNU Emacs.
7154 7154
diff --git a/src/ChangeLog.6 b/src/ChangeLog.6
index 74141f6813a..91c20681157 100644
--- a/src/ChangeLog.6
+++ b/src/ChangeLog.6
@@ -5354,7 +5354,7 @@
5354 5354
5355See ChangeLog.5 for earlier changes. 5355See ChangeLog.5 for earlier changes.
5356 5356
5357 Copyright (C) 1995-1996, 2001-2011 Free Software Foundation, Inc. 5357 Copyright (C) 1995-1996, 2001-2012 Free Software Foundation, Inc.
5358 5358
5359 This file is part of GNU Emacs. 5359 This file is part of GNU Emacs.
5360 5360
diff --git a/src/ChangeLog.7 b/src/ChangeLog.7
index fc97acdeb1e..891c1ca081a 100644
--- a/src/ChangeLog.7
+++ b/src/ChangeLog.7
@@ -3968,7 +3968,7 @@
3968 3968
39691998-01-12 Kenichi Handa <handa@etl.go.jp> 39691998-01-12 Kenichi Handa <handa@etl.go.jp>
3970 3970
3971 * minibuf.c (Fminibuffer_complete_word): Fix a bug of refering 3971 * minibuf.c (Fminibuffer_complete_word): Fix a bug of referring
3972 `i'. We must refer `i_byte' instead. 3972 `i'. We must refer `i_byte' instead.
3973 3973
3974 * insdel.c (insert_from_string_1): Decrement GAP_SIZE by 3974 * insdel.c (insert_from_string_1): Decrement GAP_SIZE by
@@ -11092,7 +11092,7 @@ See ChangeLog.6 for earlier changes.
11092;; coding: utf-8 11092;; coding: utf-8
11093;; End: 11093;; End:
11094 11094
11095 Copyright (C) 1997-1998, 2001-2011 Free Software Foundation, Inc. 11095 Copyright (C) 1997-1998, 2001-2012 Free Software Foundation, Inc.
11096 11096
11097 This file is part of GNU Emacs. 11097 This file is part of GNU Emacs.
11098 11098
diff --git a/src/ChangeLog.8 b/src/ChangeLog.8
index 6a48b09e64b..d3ce1eb2a45 100644
--- a/src/ChangeLog.8
+++ b/src/ChangeLog.8
@@ -4027,7 +4027,7 @@
4027 * dispextern.h (struct glyph_row): Flag internal_border_p removed. 4027 * dispextern.h (struct glyph_row): Flag internal_border_p removed.
4028 4028
4029 * xfns.c (x_create_tip_frame): Don't set bitmapIcon resource 4029 * xfns.c (x_create_tip_frame): Don't set bitmapIcon resource
4030 because this will try to access a nonexisting widget. 4030 because this will try to access a nonexistent widget.
4031 4031
40321999-07-26 Markus Rost <rost@gnu.org> 40321999-07-26 Markus Rost <rost@gnu.org>
4033 4033
@@ -11485,7 +11485,7 @@
11485 Substitute homedir by `~' also in default_filename. 11485 Substitute homedir by `~' also in default_filename.
11486 11486
11487 * xdisp.c (try_window_id): Fix computation of tab_offset when 11487 * xdisp.c (try_window_id): Fix computation of tab_offset when
11488 backing up over a character that is splitted across lines. 11488 backing up over a character that is split across lines.
11489 11489
114901999-05-08 Kenichi HANDA <handa@etl.go.jp> 114901999-05-08 Kenichi HANDA <handa@etl.go.jp>
11491 11491
@@ -13979,7 +13979,7 @@
13979 13979
13980See ChangeLog.7 for earlier changes. 13980See ChangeLog.7 for earlier changes.
13981 13981
13982 Copyright (C) 1999, 2001-2011 Free Software Foundation, Inc. 13982 Copyright (C) 1999, 2001-2012 Free Software Foundation, Inc.
13983 13983
13984 This file is part of GNU Emacs. 13984 This file is part of GNU Emacs.
13985 13985
diff --git a/src/ChangeLog.9 b/src/ChangeLog.9
index 6e3a8d8ab3b..d6d772c5f95 100644
--- a/src/ChangeLog.9
+++ b/src/ChangeLog.9
@@ -13294,7 +13294,7 @@ See ChangeLog.8 for earlier changes.
13294;; coding: utf-8 13294;; coding: utf-8
13295;; End: 13295;; End:
13296 13296
13297 Copyright (C) 2001-2011 Free Software Foundation, Inc. 13297 Copyright (C) 2001-2012 Free Software Foundation, Inc.
13298 13298
13299 This file is part of GNU Emacs. 13299 This file is part of GNU Emacs.
13300 13300
diff --git a/src/Makefile.in b/src/Makefile.in
index 3be10c388c7..035ea277454 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -1,6 +1,6 @@
1# src/Makefile for GNU Emacs. 1# src/Makefile for GNU Emacs.
2 2
3# Copyright (C) 1985, 1987-1988, 1993-1995, 1999-2011 3# Copyright (C) 1985, 1987-1988, 1993-1995, 1999-2012
4# Free Software Foundation, Inc. 4# Free Software Foundation, Inc.
5 5
6# This file is part of GNU Emacs. 6# This file is part of GNU Emacs.
diff --git a/src/README b/src/README
index f568797a1ea..558710627a7 100644
--- a/src/README
+++ b/src/README
@@ -1,4 +1,4 @@
1Copyright (C) 2001-2011 Free Software Foundation, Inc. 1Copyright (C) 2001-2012 Free Software Foundation, Inc.
2See the end of the file for license conditions. 2See the end of the file for license conditions.
3 3
4 4
diff --git a/src/alloc.c b/src/alloc.c
index 05b681cdafb..c4db234aba5 100644
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -1,5 +1,5 @@
1/* Storage allocation and gc for GNU Emacs Lisp interpreter. 1/* Storage allocation and gc for GNU Emacs Lisp interpreter.
2 Copyright (C) 1985-1986, 1988, 1993-1995, 1997-2011 2 Copyright (C) 1985-1986, 1988, 1993-1995, 1997-2012
3 Free Software Foundation, Inc. 3 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
diff --git a/src/atimer.c b/src/atimer.c
index a54b397f52e..48f22fe0e3e 100644
--- a/src/atimer.c
+++ b/src/atimer.c
@@ -1,5 +1,5 @@
1/* Asynchronous timers. 1/* Asynchronous timers.
2 Copyright (C) 2000-2011 Free Software Foundation, Inc. 2 Copyright (C) 2000-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
diff --git a/src/atimer.h b/src/atimer.h
index 8035681b225..4282bab49ba 100644
--- a/src/atimer.h
+++ b/src/atimer.h
@@ -1,5 +1,5 @@
1/* Asynchronous timers. 1/* Asynchronous timers.
2 Copyright (C) 2000-2011 Free Software Foundation, Inc. 2 Copyright (C) 2000-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
diff --git a/src/bidi.c b/src/bidi.c
index bd78a5eff29..a2d857469cc 100644
--- a/src/bidi.c
+++ b/src/bidi.c
@@ -1,5 +1,5 @@
1/* Low-level bidirectional buffer/string-scanning functions for GNU Emacs. 1/* Low-level bidirectional buffer/string-scanning functions for GNU Emacs.
2 Copyright (C) 2000-2001, 2004-2005, 2009-2011 2 Copyright (C) 2000-2001, 2004-2005, 2009-2012
3 Free Software Foundation, Inc. 3 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
@@ -1132,7 +1132,7 @@ bidi_find_paragraph_start (ptrdiff_t pos, ptrdiff_t pos_byte)
1132 1132
1133 Note that this function gives the paragraph separator the same 1133 Note that this function gives the paragraph separator the same
1134 direction as the preceding paragraph, even though Emacs generally 1134 direction as the preceding paragraph, even though Emacs generally
1135 views the separartor as not belonging to any paragraph. */ 1135 views the separator as not belonging to any paragraph. */
1136void 1136void
1137bidi_paragraph_init (bidi_dir_t dir, struct bidi_it *bidi_it, int no_default_p) 1137bidi_paragraph_init (bidi_dir_t dir, struct bidi_it *bidi_it, int no_default_p)
1138{ 1138{
diff --git a/src/blockinput.h b/src/blockinput.h
index aa46d67ee56..dc02919cf4f 100644
--- a/src/blockinput.h
+++ b/src/blockinput.h
@@ -1,5 +1,5 @@
1/* blockinput.h - interface to blocking complicated interrupt-driven input. 1/* blockinput.h - interface to blocking complicated interrupt-driven input.
2 Copyright (C) 1989, 1993, 2001-2011 Free Software Foundation, Inc. 2 Copyright (C) 1989, 1993, 2001-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
diff --git a/src/buffer.c b/src/buffer.c
index afa7e915429..b176bfed3fe 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -1,6 +1,6 @@
1/* Buffer manipulation primitives for GNU Emacs. 1/* Buffer manipulation primitives for GNU Emacs.
2 2
3Copyright (C) 1985-1989, 1993-1995, 1997-2011 Free Software Foundation, Inc. 3Copyright (C) 1985-1989, 1993-1995, 1997-2012 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
6 6
diff --git a/src/buffer.h b/src/buffer.h
index e2d4b555e11..c75a09c5579 100644
--- a/src/buffer.h
+++ b/src/buffer.h
@@ -1,6 +1,6 @@
1/* Header file for the buffer manipulation primitives. 1/* Header file for the buffer manipulation primitives.
2 2
3Copyright (C) 1985-1986, 1993-1995, 1997-2011 3Copyright (C) 1985-1986, 1993-1995, 1997-2012
4 Free Software Foundation, Inc. 4 Free Software Foundation, Inc.
5 5
6This file is part of GNU Emacs. 6This file is part of GNU Emacs.
diff --git a/src/bytecode.c b/src/bytecode.c
index fdefe39a69d..e2370254f36 100644
--- a/src/bytecode.c
+++ b/src/bytecode.c
@@ -1,5 +1,5 @@
1/* Execution of byte code produced by bytecomp.el. 1/* Execution of byte code produced by bytecomp.el.
2 Copyright (C) 1985-1988, 1993, 2000-2011 Free Software Foundation, Inc. 2 Copyright (C) 1985-1988, 1993, 2000-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
diff --git a/src/callint.c b/src/callint.c
index 444892ef9cb..78daa8f8fce 100644
--- a/src/callint.c
+++ b/src/callint.c
@@ -1,5 +1,5 @@
1/* Call a Lisp function interactively. 1/* Call a Lisp function interactively.
2 Copyright (C) 1985-1986, 1993-1995, 1997, 2000-2011 2 Copyright (C) 1985-1986, 1993-1995, 1997, 2000-2012
3 Free Software Foundation, Inc. 3 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
@@ -274,8 +274,6 @@ invoke it. If KEYS is omitted or nil, the return value of
274 274
275 ptrdiff_t i, nargs; 275 ptrdiff_t i, nargs;
276 int foo; 276 int foo;
277 char prompt1[100];
278 char *tem1;
279 int arg_from_tty = 0; 277 int arg_from_tty = 0;
280 struct gcpro gcpro1, gcpro2, gcpro3, gcpro4, gcpro5; 278 struct gcpro gcpro1, gcpro2, gcpro3, gcpro4, gcpro5;
281 ptrdiff_t key_count; 279 ptrdiff_t key_count;
@@ -491,13 +489,8 @@ invoke it. If KEYS is omitted or nil, the return value of
491 tem = string; 489 tem = string;
492 for (i = 1; *tem; i++) 490 for (i = 1; *tem; i++)
493 { 491 {
494 strncpy (prompt1, tem + 1, sizeof prompt1 - 1); 492 visargs[0] = make_string (tem + 1, strcspn (tem + 1, "\n"));
495 prompt1[sizeof prompt1 - 1] = 0; 493 if (strchr (SSDATA (visargs[0]), '%'))
496 tem1 = strchr (prompt1, '\n');
497 if (tem1) *tem1 = 0;
498
499 visargs[0] = build_string (prompt1);
500 if (strchr (prompt1, '%'))
501 callint_message = Fformat (i, visargs); 494 callint_message = Fformat (i, visargs);
502 else 495 else
503 callint_message = visargs[0]; 496 callint_message = visargs[0];
diff --git a/src/callproc.c b/src/callproc.c
index d8f50e21ee5..22245f2d688 100644
--- a/src/callproc.c
+++ b/src/callproc.c
@@ -1,5 +1,5 @@
1/* Synchronous subprocess invocation for GNU Emacs. 1/* Synchronous subprocess invocation for GNU Emacs.
2 Copyright (C) 1985-1988, 1993-1995, 1999-2011 2 Copyright (C) 1985-1988, 1993-1995, 1999-2012
3 Free Software Foundation, Inc. 3 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
diff --git a/src/casefiddle.c b/src/casefiddle.c
index 05d689a9eef..278806b3030 100644
--- a/src/casefiddle.c
+++ b/src/casefiddle.c
@@ -1,6 +1,6 @@
1/* GNU Emacs case conversion functions. 1/* GNU Emacs case conversion functions.
2 2
3Copyright (C) 1985, 1994, 1997-1999, 2001-2011 Free Software Foundation, Inc. 3Copyright (C) 1985, 1994, 1997-1999, 2001-2012 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
6 6
diff --git a/src/casetab.c b/src/casetab.c
index 8778048072c..c28f0c08d5e 100644
--- a/src/casetab.c
+++ b/src/casetab.c
@@ -1,5 +1,5 @@
1/* GNU Emacs routines to deal with case tables. 1/* GNU Emacs routines to deal with case tables.
2 Copyright (C) 1993-1994, 2001-2011 Free Software Foundation, Inc. 2 Copyright (C) 1993-1994, 2001-2012 Free Software Foundation, Inc.
3 3
4Author: Howard Gayle 4Author: Howard Gayle
5 5
diff --git a/src/category.c b/src/category.c
index 0ab2a70f8a4..a59ad3da53e 100644
--- a/src/category.c
+++ b/src/category.c
@@ -1,6 +1,6 @@
1/* GNU Emacs routines to deal with category tables. 1/* GNU Emacs routines to deal with category tables.
2 2
3Copyright (C) 1998, 2001-2011 Free Software Foundation, Inc. 3Copyright (C) 1998, 2001-2012 Free Software Foundation, Inc.
4Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 4Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
5 2005, 2006, 2007, 2008, 2009, 2010, 2011 5 2005, 2006, 2007, 2008, 2009, 2010, 2011
6 National Institute of Advanced Industrial Science and Technology (AIST) 6 National Institute of Advanced Industrial Science and Technology (AIST)
diff --git a/src/ccl.c b/src/ccl.c
index 1c6f444920c..5da90ad4f04 100644
--- a/src/ccl.c
+++ b/src/ccl.c
@@ -1,5 +1,5 @@
1/* CCL (Code Conversion Language) interpreter. 1/* CCL (Code Conversion Language) interpreter.
2 Copyright (C) 2001-2011 Free Software Foundation, Inc. 2 Copyright (C) 2001-2012 Free Software Foundation, Inc.
3 Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 3 Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
4 2005, 2006, 2007, 2008, 2009, 2010, 2011 4 2005, 2006, 2007, 2008, 2009, 2010, 2011
5 National Institute of Advanced Industrial Science and Technology (AIST) 5 National Institute of Advanced Industrial Science and Technology (AIST)
@@ -210,8 +210,8 @@ static Lisp_Object Vccl_program_table;
210#define CCL_WriteArrayReadJump 0x0B /* Write an array element, read, and jump: 210#define CCL_WriteArrayReadJump 0x0B /* Write an array element, read, and jump:
211 1:A--D--D--R--E--S--S-rrrXXXXX 211 1:A--D--D--R--E--S--S-rrrXXXXX
212 2:LENGTH 212 2:LENGTH
213 3:ELEMENET[0] 213 3:ELEMENT[0]
214 4:ELEMENET[1] 214 4:ELEMENT[1]
215 ... 215 ...
216 N:A--D--D--R--E--S--S-rrrYYYYY 216 N:A--D--D--R--E--S--S-rrrYYYYY
217 ------------------------------ 217 ------------------------------
diff --git a/src/character.c b/src/character.c
index 5e2a7b9461c..f15a20f6999 100644
--- a/src/character.c
+++ b/src/character.c
@@ -1,6 +1,6 @@
1/* Basic character support. 1/* Basic character support.
2 2
3Copyright (C) 2001-2011 Free Software Foundation, Inc. 3Copyright (C) 2001-2012 Free Software Foundation, Inc.
4Copyright (C) 1995, 1997, 1998, 2001 Electrotechnical Laboratory, JAPAN. 4Copyright (C) 1995, 1997, 1998, 2001 Electrotechnical Laboratory, JAPAN.
5 Licensed to the Free Software Foundation. 5 Licensed to the Free Software Foundation.
6Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 6Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
diff --git a/src/charset.c b/src/charset.c
index ec90a64341e..688247de1b0 100644
--- a/src/charset.c
+++ b/src/charset.c
@@ -1,5 +1,5 @@
1/* Basic character set support. 1/* Basic character set support.
2 Copyright (C) 2001-2011 Free Software Foundation, Inc. 2 Copyright (C) 2001-2012 Free Software Foundation, Inc.
3 Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 3 Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
4 2005, 2006, 2007, 2008, 2009, 2010, 2011 4 2005, 2006, 2007, 2008, 2009, 2010, 2011
5 National Institute of Advanced Industrial Science and Technology (AIST) 5 National Institute of Advanced Industrial Science and Technology (AIST)
@@ -1652,7 +1652,7 @@ maybe_unify_char (int c, Lisp_Object val)
1652} 1652}
1653 1653
1654 1654
1655/* Return a character correponding to the code-point CODE of 1655/* Return a character corresponding to the code-point CODE of
1656 CHARSET. */ 1656 CHARSET. */
1657 1657
1658int 1658int
diff --git a/src/charset.h b/src/charset.h
index 6d9079291c7..516582a3f3d 100644
--- a/src/charset.h
+++ b/src/charset.h
@@ -1,5 +1,5 @@
1/* Header for charset handler. 1/* Header for charset handler.
2 Copyright (C) 2001-2011 Free Software Foundation, Inc. 2 Copyright (C) 2001-2012 Free Software Foundation, Inc.
3 Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 3 Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
4 2005, 2006, 2007, 2008, 2009, 2010, 2011 4 2005, 2006, 2007, 2008, 2009, 2010, 2011
5 National Institute of Advanced Industrial Science and Technology (AIST) 5 National Institute of Advanced Industrial Science and Technology (AIST)
@@ -238,7 +238,7 @@ struct charset
238 int unified_p; 238 int unified_p;
239}; 239};
240 240
241/* Hash table of charset symbols vs. the correponding attribute 241/* Hash table of charset symbols vs. the corresponding attribute
242 vectors. */ 242 vectors. */
243extern Lisp_Object Vcharset_hash_table; 243extern Lisp_Object Vcharset_hash_table;
244 244
@@ -389,7 +389,7 @@ extern Lisp_Object Vchar_charset_set;
389#endif 389#endif
390 390
391 391
392/* Return a character correponding to the code-point CODE of CHARSET. 392/* Return a character corresponding to the code-point CODE of CHARSET.
393 Try some optimization before calling decode_char. */ 393 Try some optimization before calling decode_char. */
394 394
395#define DECODE_CHAR(charset, code) \ 395#define DECODE_CHAR(charset, code) \
diff --git a/src/cm.c b/src/cm.c
index 609632eba11..1922cd8140a 100644
--- a/src/cm.c
+++ b/src/cm.c
@@ -1,5 +1,5 @@
1/* Cursor motion subroutines for GNU Emacs. 1/* Cursor motion subroutines for GNU Emacs.
2 Copyright (C) 1985, 1995, 2001-2011 Free Software Foundation, Inc. 2 Copyright (C) 1985, 1995, 2001-2012 Free Software Foundation, Inc.
3 based primarily on public domain code written by Chris Torek 3 based primarily on public domain code written by Chris Torek
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
diff --git a/src/cm.h b/src/cm.h
index a8c7e0d7c4b..e3e2b71dba6 100644
--- a/src/cm.h
+++ b/src/cm.h
@@ -1,5 +1,5 @@
1/* Cursor motion calculation definitions for GNU Emacs 1/* Cursor motion calculation definitions for GNU Emacs
2 Copyright (C) 1985, 1989, 2001-2011 Free Software Foundation, Inc. 2 Copyright (C) 1985, 1989, 2001-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
diff --git a/src/cmds.c b/src/cmds.c
index 3d43c2447ad..225c26b082c 100644
--- a/src/cmds.c
+++ b/src/cmds.c
@@ -1,6 +1,6 @@
1/* Simple built-in editing commands. 1/* Simple built-in editing commands.
2 2
3Copyright (C) 1985, 1993-1998, 2001-2011 Free Software Foundation, Inc. 3Copyright (C) 1985, 1993-1998, 2001-2012 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
6 6
diff --git a/src/coding.c b/src/coding.c
index a2ea9b302cf..be7166e8a14 100644
--- a/src/coding.c
+++ b/src/coding.c
@@ -1,5 +1,5 @@
1/* Coding system handler (conversion, detection, etc). 1/* Coding system handler (conversion, detection, etc).
2 Copyright (C) 2001-2011 Free Software Foundation, Inc. 2 Copyright (C) 2001-2012 Free Software Foundation, Inc.
3 Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 3 Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
4 2005, 2006, 2007, 2008, 2009, 2010, 2011 4 2005, 2006, 2007, 2008, 2009, 2010, 2011
5 National Institute of Advanced Industrial Science and Technology (AIST) 5 National Institute of Advanced Industrial Science and Technology (AIST)
@@ -10003,8 +10003,6 @@ usage: (define-coding-system-internal ...) */)
10003 { 10003 {
10004 Lisp_Object bom; 10004 Lisp_Object bom;
10005 10005
10006 CODING_ATTR_ASCII_COMPAT (attrs) = Qt;
10007
10008 if (nargs < coding_arg_utf8_max) 10006 if (nargs < coding_arg_utf8_max)
10009 goto short_args; 10007 goto short_args;
10010 10008
@@ -10018,6 +10016,8 @@ usage: (define-coding-system-internal ...) */)
10018 CHECK_CODING_SYSTEM (val); 10016 CHECK_CODING_SYSTEM (val);
10019 } 10017 }
10020 ASET (attrs, coding_attr_utf_bom, bom); 10018 ASET (attrs, coding_attr_utf_bom, bom);
10019 if (NILP (bom))
10020 CODING_ATTR_ASCII_COMPAT (attrs) = Qt;
10021 10021
10022 category = (CONSP (bom) ? coding_category_utf_8_auto 10022 category = (CONSP (bom) ? coding_category_utf_8_auto
10023 : NILP (bom) ? coding_category_utf_8_nosig 10023 : NILP (bom) ? coding_category_utf_8_nosig
diff --git a/src/coding.h b/src/coding.h
index 711e41ed5b8..50435282229 100644
--- a/src/coding.h
+++ b/src/coding.h
@@ -1,5 +1,5 @@
1/* Header for coding system handler. 1/* Header for coding system handler.
2 Copyright (C) 2001-2011 Free Software Foundation, Inc. 2 Copyright (C) 2001-2012 Free Software Foundation, Inc.
3 Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 3 Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
4 2005, 2006, 2007, 2008, 2009, 2010, 2011 4 2005, 2006, 2007, 2008, 2009, 2010, 2011
5 National Institute of Advanced Industrial Science and Technology (AIST) 5 National Institute of Advanced Industrial Science and Technology (AIST)
@@ -485,7 +485,7 @@ struct coding_system
485 element. The following elements are OFFSET, ANNOTATION-TYPE, and 485 element. The following elements are OFFSET, ANNOTATION-TYPE, and
486 a sequence of actual data for the annotation. OFFSET is a 486 a sequence of actual data for the annotation. OFFSET is a
487 character position offset from dst_pos or src_pos, 487 character position offset from dst_pos or src_pos,
488 ANNOTATION-TYPE specfies the meaning of the annotation and how to 488 ANNOTATION-TYPE specifies the meaning of the annotation and how to
489 handle the following data.. */ 489 handle the following data.. */
490 int *charbuf; 490 int *charbuf;
491 int charbuf_size, charbuf_used; 491 int charbuf_size, charbuf_used;
diff --git a/src/commands.h b/src/commands.h
index bcd5de44180..36f600cee01 100644
--- a/src/commands.h
+++ b/src/commands.h
@@ -1,5 +1,5 @@
1/* Definitions needed by most editing commands. 1/* Definitions needed by most editing commands.
2 Copyright (C) 1985, 1994, 2001-2011 Free Software Foundation, Inc. 2 Copyright (C) 1985, 1994, 2001-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
diff --git a/src/composite.c b/src/composite.c
index 0a9bdcffc99..0d1ab266309 100644
--- a/src/composite.c
+++ b/src/composite.c
@@ -1,5 +1,5 @@
1/* Composite sequence support. 1/* Composite sequence support.
2 Copyright (C) 2001-2011 Free Software Foundation, Inc. 2 Copyright (C) 2001-2012 Free Software Foundation, Inc.
3 Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 3 Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
4 National Institute of Advanced Industrial Science and Technology (AIST) 4 National Institute of Advanced Industrial Science and Technology (AIST)
5 Registration Number H14PRO021 5 Registration Number H14PRO021
diff --git a/src/composite.h b/src/composite.h
index 39e82ad74ad..845411f5cde 100644
--- a/src/composite.h
+++ b/src/composite.h
@@ -1,5 +1,5 @@
1/* Header for composite sequence handler. 1/* Header for composite sequence handler.
2 Copyright (C) 2001-2011 Free Software Foundation, Inc. 2 Copyright (C) 2001-2012 Free Software Foundation, Inc.
3 Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 3 Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
4 National Institute of Advanced Industrial Science and Technology (AIST) 4 National Institute of Advanced Industrial Science and Technology (AIST)
5 Registration Number H14PRO021 5 Registration Number H14PRO021
diff --git a/src/data.c b/src/data.c
index 2337b0a4952..7c0d1830344 100644
--- a/src/data.c
+++ b/src/data.c
@@ -1,5 +1,5 @@
1/* Primitive operations on Lisp data types for GNU Emacs Lisp interpreter. 1/* Primitive operations on Lisp data types for GNU Emacs Lisp interpreter.
2 Copyright (C) 1985-1986, 1988, 1993-1995, 1997-2011 2 Copyright (C) 1985-1986, 1988, 1993-1995, 1997-2012
3 Free Software Foundation, Inc. 3 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
diff --git a/src/dbusbind.c b/src/dbusbind.c
index 7801ec259bb..6af499ecafd 100644
--- a/src/dbusbind.c
+++ b/src/dbusbind.c
@@ -1,5 +1,5 @@
1/* Elisp bindings for D-Bus. 1/* Elisp bindings for D-Bus.
2 Copyright (C) 2007-2011 Free Software Foundation, Inc. 2 Copyright (C) 2007-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
@@ -968,7 +968,7 @@ DEFUN ("dbus-init-bus", Fdbus_init_bus, Sdbus_init_bus, 1, 1, 0,
968 connection = xd_initialize (bus, TRUE); 968 connection = xd_initialize (bus, TRUE);
969 969
970 /* Add the watch functions. We pass also the bus as data, in order 970 /* Add the watch functions. We pass also the bus as data, in order
971 to distinguish between the busses in xd_remove_watch. */ 971 to distinguish between the buses in xd_remove_watch. */
972 if (!dbus_connection_set_watch_functions (connection, 972 if (!dbus_connection_set_watch_functions (connection,
973 xd_add_watch, 973 xd_add_watch,
974 xd_remove_watch, 974 xd_remove_watch,
diff --git a/src/deps.mk b/src/deps.mk
index c61b01a95c4..c7316a24dad 100644
--- a/src/deps.mk
+++ b/src/deps.mk
@@ -1,6 +1,6 @@
1### deps.mk --- src/Makefile fragment for GNU Emacs 1### deps.mk --- src/Makefile fragment for GNU Emacs
2 2
3## Copyright (C) 1985, 1987-1988, 1993-1995, 1999-2011 3## Copyright (C) 1985, 1987-1988, 1993-1995, 1999-2012
4## Free Software Foundation, Inc. 4## Free Software Foundation, Inc.
5 5
6## This file is part of GNU Emacs. 6## This file is part of GNU Emacs.
diff --git a/src/dired.c b/src/dired.c
index 1d112db8a93..6eedc824231 100644
--- a/src/dired.c
+++ b/src/dired.c
@@ -1,5 +1,5 @@
1/* Lisp functions for making directory listings. 1/* Lisp functions for making directory listings.
2 Copyright (C) 1985-1986, 1993-1994, 1999-2011 Free Software Foundation, Inc. 2 Copyright (C) 1985-1986, 1993-1994, 1999-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
diff --git a/src/dispextern.h b/src/dispextern.h
index 9d5feea6024..82ad1d265a5 100644
--- a/src/dispextern.h
+++ b/src/dispextern.h
@@ -1,6 +1,6 @@
1/* Interface definitions for display code. 1/* Interface definitions for display code.
2 2
3Copyright (C) 1985, 1993-1994, 1997-2011 Free Software Foundation, Inc. 3Copyright (C) 1985, 1993-1994, 1997-2012 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
6 6
diff --git a/src/dispnew.c b/src/dispnew.c
index e53e3fdf80d..5290b60972a 100644
--- a/src/dispnew.c
+++ b/src/dispnew.c
@@ -1,5 +1,5 @@
1/* Updating of data structures for redisplay. 1/* Updating of data structures for redisplay.
2 Copyright (C) 1985-1988, 1993-1995, 1997-2011 Free Software Foundation, Inc. 2 Copyright (C) 1985-1988, 1993-1995, 1997-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
diff --git a/src/disptab.h b/src/disptab.h
index e70079d2098..2e041707eea 100644
--- a/src/disptab.h
+++ b/src/disptab.h
@@ -1,5 +1,5 @@
1/* Things for GLYPHS and glyph tables. 1/* Things for GLYPHS and glyph tables.
2 Copyright (C) 1993, 2001-2011 Free Software Foundation, Inc. 2 Copyright (C) 1993, 2001-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
diff --git a/src/doc.c b/src/doc.c
index b5a57d7d6f2..1a7b307816d 100644
--- a/src/doc.c
+++ b/src/doc.c
@@ -1,5 +1,5 @@
1/* Record indices of function doc strings stored in a file. 1/* Record indices of function doc strings stored in a file.
2 Copyright (C) 1985-1986, 1993-1995, 1997-2011 2 Copyright (C) 1985-1986, 1993-1995, 1997-2012
3 Free Software Foundation, Inc. 3 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
diff --git a/src/doprnt.c b/src/doprnt.c
index 166d396851a..df9ebc11f9c 100644
--- a/src/doprnt.c
+++ b/src/doprnt.c
@@ -1,7 +1,7 @@
1/* Output like sprintf to a buffer of specified size. 1/* Output like sprintf to a buffer of specified size.
2 Also takes args differently: pass one pointer to the end 2 Also takes args differently: pass one pointer to the end
3 of the format string in addition to the format string itself. 3 of the format string in addition to the format string itself.
4 Copyright (C) 1985, 2001-2011 Free Software Foundation, Inc. 4 Copyright (C) 1985, 2001-2012 Free Software Foundation, Inc.
5 5
6This file is part of GNU Emacs. 6This file is part of GNU Emacs.
7 7
diff --git a/src/dosfns.c b/src/dosfns.c
index ab3433b7902..8ef672fb8bb 100644
--- a/src/dosfns.c
+++ b/src/dosfns.c
@@ -1,6 +1,6 @@
1/* MS-DOS specific Lisp utilities. Coded by Manabu Higashida, 1991. 1/* MS-DOS specific Lisp utilities. Coded by Manabu Higashida, 1991.
2 Major changes May-July 1993 Morten Welinder (only 10% original code left) 2 Major changes May-July 1993 Morten Welinder (only 10% original code left)
3 Copyright (C) 1991, 1993, 1996-1998, 2001-2011 Free Software Foundation, Inc. 3 Copyright (C) 1991, 1993, 1996-1998, 2001-2012 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
6 6
diff --git a/src/dosfns.h b/src/dosfns.h
index 89800598d28..9747c364d71 100644
--- a/src/dosfns.h
+++ b/src/dosfns.h
@@ -2,7 +2,7 @@
2 Coded by Manabu Higashida, 1991. 2 Coded by Manabu Higashida, 1991.
3 Modified by Morten Welinder, 1993-1994. 3 Modified by Morten Welinder, 1993-1994.
4 4
5Copyright (C) 1991, 1994-1995, 1997, 1999, 2001-2011 5Copyright (C) 1991, 1994-1995, 1997, 1999, 2001-2012
6 Free Software Foundation, Inc. 6 Free Software Foundation, Inc.
7 7
8This file is part of GNU Emacs. 8This file is part of GNU Emacs.
diff --git a/src/editfns.c b/src/editfns.c
index 2a096db727d..afd4ed48333 100644
--- a/src/editfns.c
+++ b/src/editfns.c
@@ -1,6 +1,6 @@
1/* Lisp functions pertaining to editing. 1/* Lisp functions pertaining to editing.
2 2
3Copyright (C) 1985-1987, 1989, 1993-2011 Free Software Foundation, Inc. 3Copyright (C) 1985-1987, 1989, 1993-2012 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
6 6
diff --git a/src/emacs-icon.h b/src/emacs-icon.h
index 292d1a023d6..590d874ca82 100644
--- a/src/emacs-icon.h
+++ b/src/emacs-icon.h
@@ -1,7 +1,7 @@
1/* XPM */ 1/* XPM */
2/* Emacs icon 2/* Emacs icon
3 3
4Copyright (C) 2008-2011 Free Software Foundation, Inc. 4Copyright (C) 2008-2012 Free Software Foundation, Inc.
5 5
6Author: Kentaro Ohkouchi <nanasess@fsm.ne.jp> 6Author: Kentaro Ohkouchi <nanasess@fsm.ne.jp>
7 7
diff --git a/src/emacs.c b/src/emacs.c
index 6c96f7eb5e3..b8abcef6cbd 100644
--- a/src/emacs.c
+++ b/src/emacs.c
@@ -1,6 +1,6 @@
1/* Fully extensible Emacs, running on Unix, intended for GNU. 1/* Fully extensible Emacs, running on Unix, intended for GNU.
2 2
3Copyright (C) 1985-1987, 1993-1995, 1997-1999, 2001-2011 3Copyright (C) 1985-1987, 1993-1995, 1997-1999, 2001-2012
4 Free Software Foundation, Inc. 4 Free Software Foundation, Inc.
5 5
6This file is part of GNU Emacs. 6This file is part of GNU Emacs.
@@ -98,7 +98,7 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
98#endif 98#endif
99 99
100static const char emacs_version[] = VERSION; 100static const char emacs_version[] = VERSION;
101static const char emacs_copyright[] = "Copyright (C) 2011 Free Software Foundation, Inc."; 101static const char emacs_copyright[] = "Copyright (C) 2012 Free Software Foundation, Inc.";
102 102
103/* Make these values available in GDB, which doesn't see macros. */ 103/* Make these values available in GDB, which doesn't see macros. */
104 104
@@ -321,6 +321,12 @@ static void (*fatal_error_signal_hook) (void);
321pthread_t main_thread; 321pthread_t main_thread;
322#endif 322#endif
323 323
324#ifdef HAVE_NS
325/* NS autrelease pool, for memory management. */
326static void *ns_pool;
327#endif
328
329
324 330
325/* Handle bus errors, invalid instruction, etc. */ 331/* Handle bus errors, invalid instruction, etc. */
326#ifndef FLOAT_CATCH_SIGILL 332#ifndef FLOAT_CATCH_SIGILL
@@ -1318,7 +1324,7 @@ Using an Emacs configured with --with-x-toolkit=lucid does not have this problem
1318 = argmatch (argv, argc, "-nsl", "--no-site-lisp", 11, NULL, &skip_args); 1324 = argmatch (argv, argc, "-nsl", "--no-site-lisp", 11, NULL, &skip_args);
1319 1325
1320#ifdef HAVE_NS 1326#ifdef HAVE_NS
1321 ns_alloc_autorelease_pool (); 1327 ns_pool = ns_alloc_autorelease_pool ();
1322 if (!noninteractive) 1328 if (!noninteractive)
1323 { 1329 {
1324#ifdef NS_IMPL_COCOA 1330#ifdef NS_IMPL_COCOA
@@ -2015,6 +2021,10 @@ all of which are called before Emacs is actually killed. */)
2015 2021
2016 shut_down_emacs (0, 0, STRINGP (arg) ? arg : Qnil); 2022 shut_down_emacs (0, 0, STRINGP (arg) ? arg : Qnil);
2017 2023
2024#ifdef HAVE_NS
2025 ns_release_autorelease_pool (ns_pool);
2026#endif
2027
2018 /* If we have an auto-save list file, 2028 /* If we have an auto-save list file,
2019 kill it because we are exiting Emacs deliberately (not crashing). 2029 kill it because we are exiting Emacs deliberately (not crashing).
2020 Do it after shut_down_emacs, which does an auto-save. */ 2030 Do it after shut_down_emacs, which does an auto-save. */
diff --git a/src/emacsgtkfixed.c b/src/emacsgtkfixed.c
index d9084bf9a98..fba672ff74d 100644
--- a/src/emacsgtkfixed.c
+++ b/src/emacsgtkfixed.c
@@ -1,7 +1,7 @@
1/* A Gtk Widget that inherits GtkFixed, but can be shrunk. 1/* A Gtk Widget that inherits GtkFixed, but can be shrunk.
2This file is only use when compiling with Gtk+ 3. 2This file is only use when compiling with Gtk+ 3.
3 3
4Copyright (C) 2011 Free Software Foundation, Inc. 4Copyright (C) 2011-2012 Free Software Foundation, Inc.
5 5
6This file is part of GNU Emacs. 6This file is part of GNU Emacs.
7 7
diff --git a/src/emacsgtkfixed.h b/src/emacsgtkfixed.h
index c70e9a3efe3..90fb37e521b 100644
--- a/src/emacsgtkfixed.h
+++ b/src/emacsgtkfixed.h
@@ -1,7 +1,7 @@
1/* A Gtk Widget that inherits GtkFixed, but can be shrunk. 1/* A Gtk Widget that inherits GtkFixed, but can be shrunk.
2This file is only use when compiling with Gtk+ 3. 2This file is only use when compiling with Gtk+ 3.
3 3
4Copyright (C) 2011 Free Software Foundation, Inc. 4Copyright (C) 2011-2012 Free Software Foundation, Inc.
5 5
6This file is part of GNU Emacs. 6This file is part of GNU Emacs.
7 7
diff --git a/src/epaths.in b/src/epaths.in
index 54131f0e179..9ce1cefd211 100644
--- a/src/epaths.in
+++ b/src/epaths.in
@@ -1,6 +1,6 @@
1/* Hey Emacs, this is -*- C -*- code! */ 1/* Hey Emacs, this is -*- C -*- code! */
2/* 2/*
3Copyright (C) 1993, 1995, 1997, 1999, 2001-2011 3Copyright (C) 1993, 1995, 1997, 1999, 2001-2012
4 Free Software Foundation, Inc. 4 Free Software Foundation, Inc.
5 5
6This file is part of GNU Emacs. 6This file is part of GNU Emacs.
diff --git a/src/eval.c b/src/eval.c
index b604df8f35b..2730fc9f3d7 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -1,5 +1,5 @@
1/* Evaluator for GNU Emacs Lisp interpreter. 1/* Evaluator for GNU Emacs Lisp interpreter.
2 Copyright (C) 1985-1987, 1993-1995, 1999-2011 Free Software Foundation, Inc. 2 Copyright (C) 1985-1987, 1993-1995, 1999-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
diff --git a/src/fileio.c b/src/fileio.c
index 3139e634c80..5216135f000 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -1,6 +1,6 @@
1/* File IO for GNU Emacs. 1/* File IO for GNU Emacs.
2 2
3Copyright (C) 1985-1988, 1993-2011 Free Software Foundation, Inc. 3Copyright (C) 1985-1988, 1993-2012 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
6 6
@@ -90,6 +90,9 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
90/* Nonzero during writing of auto-save files */ 90/* Nonzero during writing of auto-save files */
91static int auto_saving; 91static int auto_saving;
92 92
93/* Nonzero umask during creation of auto-save directories */
94static int auto_saving_dir_umask;
95
93/* Set by auto_save_1 to mode of original file so Fwrite_region will create 96/* Set by auto_save_1 to mode of original file so Fwrite_region will create
94 a new file with the same mode as the original */ 97 a new file with the same mode as the original */
95static int auto_save_mode_bits; 98static int auto_save_mode_bits;
@@ -2062,7 +2065,7 @@ DEFUN ("make-directory-internal", Fmake_directory_internal,
2062#ifdef WINDOWSNT 2065#ifdef WINDOWSNT
2063 if (mkdir (dir) != 0) 2066 if (mkdir (dir) != 0)
2064#else 2067#else
2065 if (mkdir (dir, 0777) != 0) 2068 if (mkdir (dir, 0777 & ~auto_saving_dir_umask) != 0)
2066#endif 2069#endif
2067 report_file_error ("Creating directory", list1 (directory)); 2070 report_file_error ("Creating directory", list1 (directory));
2068 2071
@@ -2416,15 +2419,27 @@ check_writable (const char *filename)
2416 return (st.st_mode & S_IWRITE || S_ISDIR (st.st_mode)); 2419 return (st.st_mode & S_IWRITE || S_ISDIR (st.st_mode));
2417#else /* not MSDOS */ 2420#else /* not MSDOS */
2418#ifdef HAVE_EUIDACCESS 2421#ifdef HAVE_EUIDACCESS
2419 return (euidaccess (filename, 2) >= 0); 2422 int res = (euidaccess (filename, 2) >= 0);
2420#else 2423#ifdef CYGWIN
2424 /* euidaccess may have returned failure because Cygwin couldn't
2425 determine the file's UID or GID; if so, we return success. */
2426 if (!res)
2427 {
2428 struct stat st;
2429 if (stat (filename, &st) < 0)
2430 return 0;
2431 res = (st.st_uid == -1 || st.st_gid == -1);
2432 }
2433#endif /* CYGWIN */
2434 return res;
2435#else /* not HAVE_EUIDACCESS */
2421 /* Access isn't quite right because it uses the real uid 2436 /* Access isn't quite right because it uses the real uid
2422 and we really want to test with the effective uid. 2437 and we really want to test with the effective uid.
2423 But Unix doesn't give us a right way to do it. 2438 But Unix doesn't give us a right way to do it.
2424 Opening with O_WRONLY could work for an ordinary file, 2439 Opening with O_WRONLY could work for an ordinary file,
2425 but would lose for directories. */ 2440 but would lose for directories. */
2426 return (access (filename, 2) >= 0); 2441 return (access (filename, 2) >= 0);
2427#endif 2442#endif /* not HAVE_EUIDACCESS */
2428#endif /* not MSDOS */ 2443#endif /* not MSDOS */
2429} 2444}
2430 2445
@@ -5200,16 +5215,18 @@ do_auto_save_unwind_1 (Lisp_Object value) /* used as unwind-protect function */
5200static Lisp_Object 5215static Lisp_Object
5201do_auto_save_make_dir (Lisp_Object dir) 5216do_auto_save_make_dir (Lisp_Object dir)
5202{ 5217{
5203 Lisp_Object mode; 5218 Lisp_Object result;
5204 5219
5205 call2 (Qmake_directory, dir, Qt); 5220 auto_saving_dir_umask = 077;
5206 XSETFASTINT (mode, 0700); 5221 result = call2 (Qmake_directory, dir, Qt);
5207 return Fset_file_modes (dir, mode); 5222 auto_saving_dir_umask = 0;
5223 return result;
5208} 5224}
5209 5225
5210static Lisp_Object 5226static Lisp_Object
5211do_auto_save_eh (Lisp_Object ignore) 5227do_auto_save_eh (Lisp_Object ignore)
5212{ 5228{
5229 auto_saving_dir_umask = 0;
5213 return Qnil; 5230 return Qnil;
5214} 5231}
5215 5232
@@ -5277,7 +5294,7 @@ A non-nil CURRENT-ONLY argument means save only current buffer. */)
5277 dir = Ffile_name_directory (listfile); 5294 dir = Ffile_name_directory (listfile);
5278 if (NILP (Ffile_directory_p (dir))) 5295 if (NILP (Ffile_directory_p (dir)))
5279 internal_condition_case_1 (do_auto_save_make_dir, 5296 internal_condition_case_1 (do_auto_save_make_dir,
5280 dir, Fcons (Fcons (Qfile_error, Qnil), Qnil), 5297 dir, Qt,
5281 do_auto_save_eh); 5298 do_auto_save_eh);
5282 UNGCPRO; 5299 UNGCPRO;
5283 } 5300 }
diff --git a/src/filelock.c b/src/filelock.c
index 5ee2c039b81..2613eec4aca 100644
--- a/src/filelock.c
+++ b/src/filelock.c
@@ -1,5 +1,5 @@
1/* Lock files for editing. 1/* Lock files for editing.
2 Copyright (C) 1985-1987, 1993-1994, 1996, 1998-2011 2 Copyright (C) 1985-1987, 1993-1994, 1996, 1998-2012
3 Free Software Foundation, Inc. 3 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
diff --git a/src/firstfile.c b/src/firstfile.c
index 98933b26c7e..84511cfe0ad 100644
--- a/src/firstfile.c
+++ b/src/firstfile.c
@@ -1,5 +1,5 @@
1/* Mark beginning of data space to dump as pure, for GNU Emacs. 1/* Mark beginning of data space to dump as pure, for GNU Emacs.
2 Copyright (C) 1997, 2001-2011 Free Software Foundation, Inc. 2 Copyright (C) 1997, 2001-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
diff --git a/src/floatfns.c b/src/floatfns.c
index f8b775011ae..87fa19acb1f 100644
--- a/src/floatfns.c
+++ b/src/floatfns.c
@@ -1,6 +1,6 @@
1/* Primitive operations on floating point for GNU Emacs Lisp interpreter. 1/* Primitive operations on floating point for GNU Emacs Lisp interpreter.
2 2
3Copyright (C) 1988, 1993-1994, 1999, 2001-2011 3Copyright (C) 1988, 1993-1994, 1999, 2001-2012
4 Free Software Foundation, Inc. 4 Free Software Foundation, Inc.
5 5
6Author: Wolfgang Rupprecht 6Author: Wolfgang Rupprecht
diff --git a/src/fns.c b/src/fns.c
index 121143439e0..b4430292c75 100644
--- a/src/fns.c
+++ b/src/fns.c
@@ -1,5 +1,5 @@
1/* Random utility Lisp functions. 1/* Random utility Lisp functions.
2 Copyright (C) 1985-1987, 1993-1995, 1997-2011 2 Copyright (C) 1985-1987, 1993-1995, 1997-2012
3 Free Software Foundation, Inc. 3 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
@@ -3247,7 +3247,7 @@ DEFUN ("base64-decode-string", Fbase64_decode_string, Sbase64_decode_string,
3247 3247
3248/* Base64-decode the data at FROM of LENGTH bytes into TO. If 3248/* Base64-decode the data at FROM of LENGTH bytes into TO. If
3249 MULTIBYTE is nonzero, the decoded result should be in multibyte 3249 MULTIBYTE is nonzero, the decoded result should be in multibyte
3250 form. If NCHARS_RETRUN is not NULL, store the number of produced 3250 form. If NCHARS_RETURN is not NULL, store the number of produced
3251 characters in *NCHARS_RETURN. */ 3251 characters in *NCHARS_RETURN. */
3252 3252
3253static ptrdiff_t 3253static ptrdiff_t
diff --git a/src/font.c b/src/font.c
index 64ac36d364c..16d09af01b3 100644
--- a/src/font.c
+++ b/src/font.c
@@ -1,6 +1,6 @@
1/* font.c -- "Font" primitives. 1/* font.c -- "Font" primitives.
2 2
3Copyright (C) 2006-2011 Free Software Foundation, Inc. 3Copyright (C) 2006-2012 Free Software Foundation, Inc.
4Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011 4Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011
5 National Institute of Advanced Industrial Science and Technology (AIST) 5 National Institute of Advanced Industrial Science and Technology (AIST)
6 Registration Number H13PRO009 6 Registration Number H13PRO009
diff --git a/src/font.h b/src/font.h
index 72ee15c5e00..89f6b29ca9d 100644
--- a/src/font.h
+++ b/src/font.h
@@ -1,5 +1,5 @@
1/* font.h -- Interface definition for font handling. 1/* font.h -- Interface definition for font handling.
2 Copyright (C) 2006-2011 Free Software Foundation, Inc. 2 Copyright (C) 2006-2012 Free Software Foundation, Inc.
3 Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011 3 Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011
4 National Institute of Advanced Industrial Science and Technology (AIST) 4 National Institute of Advanced Industrial Science and Technology (AIST)
5 Registration Number H13PRO009 5 Registration Number H13PRO009
@@ -506,7 +506,7 @@ struct font_driver
506 Lisp_Object type; 506 Lisp_Object type;
507 507
508 /* 1 iff the font's foundry, family, and adstyle names are case 508 /* 1 iff the font's foundry, family, and adstyle names are case
509 sensitve. */ 509 sensitive. */
510 int case_sensitive; 510 int case_sensitive;
511 511
512 /* Return a cache of font-entities on frame F. The cache must be a 512 /* Return a cache of font-entities on frame F. The cache must be a
@@ -621,7 +621,7 @@ struct font_driver
621 /* Optional. 621 /* Optional.
622 Get coordinates of the INDEXth anchor point of the glyph whose 622 Get coordinates of the INDEXth anchor point of the glyph whose
623 code is CODE. Store the coordinates in *X and *Y. Return 0 if 623 code is CODE. Store the coordinates in *X and *Y. Return 0 if
624 the operations was successfull. Otherwise return -1. */ 624 the operations was successful. Otherwise return -1. */
625 int (*anchor_point) (struct font *font, unsigned code, int index, 625 int (*anchor_point) (struct font *font, unsigned code, int index,
626 int *x, int *y); 626 int *x, int *y);
627 627
diff --git a/src/fontset.c b/src/fontset.c
index 7d2cbcafa70..7057167cfd4 100644
--- a/src/fontset.c
+++ b/src/fontset.c
@@ -1,6 +1,6 @@
1/* Fontset handler. 1/* Fontset handler.
2 2
3Copyright (C) 2001-2011 Free Software Foundation, Inc. 3Copyright (C) 2001-2012 Free Software Foundation, Inc.
4Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 4Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
5 2005, 2006, 2007, 2008, 2009, 2010, 2011 5 2005, 2006, 2007, 2008, 2009, 2010, 2011
6 National Institute of Advanced Industrial Science and Technology (AIST) 6 National Institute of Advanced Industrial Science and Technology (AIST)
diff --git a/src/fontset.h b/src/fontset.h
index 8831f4ce0b7..6d6ad5dbfc6 100644
--- a/src/fontset.h
+++ b/src/fontset.h
@@ -1,5 +1,5 @@
1/* Header for fontset handler. 1/* Header for fontset handler.
2 Copyright (C) 1998, 2001-2011 Free Software Foundation, Inc. 2 Copyright (C) 1998, 2001-2012 Free Software Foundation, Inc.
3 Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 3 Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
4 2005, 2006, 2007, 2008, 2009, 2010, 2011 4 2005, 2006, 2007, 2008, 2009, 2010, 2011
5 National Institute of Advanced Industrial Science and Technology (AIST) 5 National Institute of Advanced Industrial Science and Technology (AIST)
diff --git a/src/frame.c b/src/frame.c
index 00653af74d6..8b285437288 100644
--- a/src/frame.c
+++ b/src/frame.c
@@ -1,6 +1,6 @@
1/* Generic frame functions. 1/* Generic frame functions.
2 2
3Copyright (C) 1993-1995, 1997, 1999-2011 Free Software Foundation, Inc. 3Copyright (C) 1993-1995, 1997, 1999-2012 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
6 6
diff --git a/src/frame.h b/src/frame.h
index 598d9adc491..e058a101462 100644
--- a/src/frame.h
+++ b/src/frame.h
@@ -1,5 +1,5 @@
1/* Define frame-object for GNU Emacs. 1/* Define frame-object for GNU Emacs.
2 Copyright (C) 1993-1994, 1999-2011 Free Software Foundation, Inc. 2 Copyright (C) 1993-1994, 1999-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
diff --git a/src/fringe.c b/src/fringe.c
index edc254fa3f2..4bc2f8806f3 100644
--- a/src/fringe.c
+++ b/src/fringe.c
@@ -1,5 +1,5 @@
1/* Fringe handling (split from xdisp.c). 1/* Fringe handling (split from xdisp.c).
2 Copyright (C) 1985-1988, 1993-1995, 1997-2011 Free Software Foundation, Inc. 2 Copyright (C) 1985-1988, 1993-1995, 1997-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
diff --git a/src/ftfont.c b/src/ftfont.c
index 31f3372af5c..3c0b09b7f74 100644
--- a/src/ftfont.c
+++ b/src/ftfont.c
@@ -1,5 +1,5 @@
1/* ftfont.c -- FreeType font driver. 1/* ftfont.c -- FreeType font driver.
2 Copyright (C) 2006-2011 Free Software Foundation, Inc. 2 Copyright (C) 2006-2012 Free Software Foundation, Inc.
3 Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011 3 Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011
4 National Institute of Advanced Industrial Science and Technology (AIST) 4 National Institute of Advanced Industrial Science and Technology (AIST)
5 Registration Number H13PRO009 5 Registration Number H13PRO009
diff --git a/src/ftxfont.c b/src/ftxfont.c
index e04e802a3db..9fe4d41dcc5 100644
--- a/src/ftxfont.c
+++ b/src/ftxfont.c
@@ -1,5 +1,5 @@
1/* ftxfont.c -- FreeType font driver on X (without using XFT). 1/* ftxfont.c -- FreeType font driver on X (without using XFT).
2 Copyright (C) 2006-2011 Free Software Foundation, Inc. 2 Copyright (C) 2006-2012 Free Software Foundation, Inc.
3 Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011 3 Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011
4 National Institute of Advanced Industrial Science and Technology (AIST) 4 National Institute of Advanced Industrial Science and Technology (AIST)
5 Registration Number H13PRO009 5 Registration Number H13PRO009
diff --git a/src/getpagesize.h b/src/getpagesize.h
index c0c4e504f0a..545082b2e78 100644
--- a/src/getpagesize.h
+++ b/src/getpagesize.h
@@ -1,5 +1,5 @@
1/* Emulate getpagesize on systems that lack it. 1/* Emulate getpagesize on systems that lack it.
2 Copyright (C) 1986, 1992, 1995, 2001-2011 Free Software Foundation, Inc. 2 Copyright (C) 1986, 1992, 1995, 2001-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
diff --git a/src/gnutls.c b/src/gnutls.c
index 9dda184d251..99992e06cdc 100644
--- a/src/gnutls.c
+++ b/src/gnutls.c
@@ -1,5 +1,5 @@
1/* GnuTLS glue for GNU Emacs. 1/* GnuTLS glue for GNU Emacs.
2 Copyright (C) 2010-2011 Free Software Foundation, Inc. 2 Copyright (C) 2010-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
@@ -125,6 +125,7 @@ DEF_GNUTLS_FN (ssize_t, gnutls_record_send,
125 (gnutls_session_t, const void *, size_t)); 125 (gnutls_session_t, const void *, size_t));
126DEF_GNUTLS_FN (const char *, gnutls_strerror, (int)); 126DEF_GNUTLS_FN (const char *, gnutls_strerror, (int));
127DEF_GNUTLS_FN (void, gnutls_transport_set_errno, (gnutls_session_t, int)); 127DEF_GNUTLS_FN (void, gnutls_transport_set_errno, (gnutls_session_t, int));
128DEF_GNUTLS_FN (const char *, gnutls_check_version, (const char *));
128DEF_GNUTLS_FN (void, gnutls_transport_set_lowat, (gnutls_session_t, int)); 129DEF_GNUTLS_FN (void, gnutls_transport_set_lowat, (gnutls_session_t, int));
129DEF_GNUTLS_FN (void, gnutls_transport_set_ptr2, 130DEF_GNUTLS_FN (void, gnutls_transport_set_ptr2,
130 (gnutls_session_t, gnutls_transport_ptr_t, 131 (gnutls_session_t, gnutls_transport_ptr_t,
@@ -184,7 +185,11 @@ init_gnutls_functions (Lisp_Object libraries)
184 LOAD_GNUTLS_FN (library, gnutls_record_send); 185 LOAD_GNUTLS_FN (library, gnutls_record_send);
185 LOAD_GNUTLS_FN (library, gnutls_strerror); 186 LOAD_GNUTLS_FN (library, gnutls_strerror);
186 LOAD_GNUTLS_FN (library, gnutls_transport_set_errno); 187 LOAD_GNUTLS_FN (library, gnutls_transport_set_errno);
187 LOAD_GNUTLS_FN (library, gnutls_transport_set_lowat); 188 LOAD_GNUTLS_FN (library, gnutls_check_version);
189 /* We don't need to call gnutls_transport_set_lowat in GnuTLS 2.11.1
190 and later, and the function was removed entirely in 3.0.0. */
191 if (!fn_gnutls_check_version ("2.11.1"))
192 LOAD_GNUTLS_FN (library, gnutls_transport_set_lowat);
188 LOAD_GNUTLS_FN (library, gnutls_transport_set_ptr2); 193 LOAD_GNUTLS_FN (library, gnutls_transport_set_ptr2);
189 LOAD_GNUTLS_FN (library, gnutls_transport_set_pull_function); 194 LOAD_GNUTLS_FN (library, gnutls_transport_set_pull_function);
190 LOAD_GNUTLS_FN (library, gnutls_transport_set_push_function); 195 LOAD_GNUTLS_FN (library, gnutls_transport_set_push_function);
@@ -282,7 +287,12 @@ emacs_gnutls_handshake (struct Lisp_Process *proc)
282 (Note: this is probably not strictly necessary as the lowat 287 (Note: this is probably not strictly necessary as the lowat
283 value is only used when no custom pull/push functions are 288 value is only used when no custom pull/push functions are
284 set.) */ 289 set.) */
285 fn_gnutls_transport_set_lowat (state, 0); 290 /* According to GnuTLS NEWS file, lowat level has been set to
291 zero by default in version 2.11.1, and the function
292 gnutls_transport_set_lowat was removed from the library in
293 version 2.99.0. */
294 if (!fn_gnutls_check_version ("2.11.1"))
295 fn_gnutls_transport_set_lowat (state, 0);
286#else 296#else
287 /* This is how GnuTLS takes sockets: as file descriptors passed 297 /* This is how GnuTLS takes sockets: as file descriptors passed
288 in. For an Emacs process socket, infd and outfd are the 298 in. For an Emacs process socket, infd and outfd are the
diff --git a/src/gnutls.h b/src/gnutls.h
index ddb47137e6e..b6afba25355 100644
--- a/src/gnutls.h
+++ b/src/gnutls.h
@@ -1,5 +1,5 @@
1/* GnuTLS glue for GNU Emacs. 1/* GnuTLS glue for GNU Emacs.
2 Copyright (C) 2010-2011 Free Software Foundation, Inc. 2 Copyright (C) 2010-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
diff --git a/src/gtkutil.c b/src/gtkutil.c
index 43cdb38c640..d5e890d7207 100644
--- a/src/gtkutil.c
+++ b/src/gtkutil.c
@@ -1,6 +1,6 @@
1/* Functions for creating and updating GTK widgets. 1/* Functions for creating and updating GTK widgets.
2 2
3Copyright (C) 2003-2011 Free Software Foundation, Inc. 3Copyright (C) 2003-2012 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
6 6
@@ -3052,7 +3052,7 @@ xg_update_submenu (GtkWidget *submenu,
3052 } 3052 }
3053 } 3053 }
3054 3054
3055 /* Remove widgets from first structual change. */ 3055 /* Remove widgets from first structural change. */
3056 if (iter) 3056 if (iter)
3057 { 3057 {
3058 /* If we are adding new menu items below, we must remove from 3058 /* If we are adding new menu items below, we must remove from
diff --git a/src/gtkutil.h b/src/gtkutil.h
index 7cc2d21f9c4..2c6ca066719 100644
--- a/src/gtkutil.h
+++ b/src/gtkutil.h
@@ -1,6 +1,6 @@
1/* Definitions and headers for GTK widgets. 1/* Definitions and headers for GTK widgets.
2 2
3Copyright (C) 2003-2011 Free Software Foundation, Inc. 3Copyright (C) 2003-2012 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
6 6
diff --git a/src/image.c b/src/image.c
index 736c1b3472f..92cd75f99f4 100644
--- a/src/image.c
+++ b/src/image.c
@@ -1,5 +1,5 @@
1/* Functions for image support on window system. 1/* Functions for image support on window system.
2 Copyright (C) 1989, 1992-2011 Free Software Foundation, Inc. 2 Copyright (C) 1989, 1992-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
@@ -7565,6 +7565,22 @@ extern WandExport void PixelGetMagickColor (const PixelWand *,
7565 MagickPixelPacket *); 7565 MagickPixelPacket *);
7566#endif 7566#endif
7567 7567
7568/* Log ImageMagick error message.
7569 Useful when a ImageMagick function returns the status `MagickFalse'. */
7570
7571static void
7572imagemagick_error (MagickWand *wand)
7573{
7574 char *description;
7575 ExceptionType severity;
7576
7577 description = MagickGetException (wand, &severity);
7578 image_error ("ImageMagick error: %s",
7579 make_string (description, strlen (description)),
7580 Qnil);
7581 description = (char *) MagickRelinquishMemory (description);
7582}
7583
7568/* Helper function for imagemagick_load, which does the actual loading 7584/* Helper function for imagemagick_load, which does the actual loading
7569 given contents and size, apart from frame and image structures, 7585 given contents and size, apart from frame and image structures,
7570 passed from imagemagick_load. Uses librimagemagick to do most of 7586 passed from imagemagick_load. Uses librimagemagick to do most of
@@ -7619,6 +7635,7 @@ imagemagick_load_image (struct frame *f, struct image *img,
7619 image = image_spec_value (img->spec, QCindex, NULL); 7635 image = image_spec_value (img->spec, QCindex, NULL);
7620 ino = INTEGERP (image) ? XFASTINT (image) : 0; 7636 ino = INTEGERP (image) ? XFASTINT (image) : 0;
7621 ping_wand = NewMagickWand (); 7637 ping_wand = NewMagickWand ();
7638 /* MagickSetResolution (ping_wand, 2, 2); (Bug#10112) */
7622 7639
7623 if (filename != NULL) 7640 if (filename != NULL)
7624 { 7641 {
@@ -7629,7 +7646,12 @@ imagemagick_load_image (struct frame *f, struct image *img,
7629 status = MagickPingImageBlob (ping_wand, contents, size); 7646 status = MagickPingImageBlob (ping_wand, contents, size);
7630 } 7647 }
7631 7648
7632 MagickSetResolution (ping_wand, 2, 2); 7649 if (status == MagickFalse)
7650 {
7651 imagemagick_error (ping_wand);
7652 DestroyMagickWand (ping_wand);
7653 return 0;
7654 }
7633 7655
7634 if (! (0 <= ino && ino < MagickGetNumberImages (ping_wand))) 7656 if (! (0 <= ino && ino < MagickGetNumberImages (ping_wand)))
7635 { 7657 {
@@ -7670,7 +7692,10 @@ imagemagick_load_image (struct frame *f, struct image *img,
7670 { 7692 {
7671 image_wand = NewMagickWand (); 7693 image_wand = NewMagickWand ();
7672 if (MagickReadImageBlob (image_wand, contents, size) == MagickFalse) 7694 if (MagickReadImageBlob (image_wand, contents, size) == MagickFalse)
7673 goto imagemagick_error; 7695 {
7696 imagemagick_error (image_wand);
7697 goto imagemagick_error;
7698 }
7674 } 7699 }
7675 7700
7676 /* If width and/or height is set in the display spec assume we want 7701 /* If width and/or height is set in the display spec assume we want
@@ -7698,6 +7723,7 @@ imagemagick_load_image (struct frame *f, struct image *img,
7698 if (status == MagickFalse) 7723 if (status == MagickFalse)
7699 { 7724 {
7700 image_error ("Imagemagick scale failed", Qnil, Qnil); 7725 image_error ("Imagemagick scale failed", Qnil, Qnil);
7726 imagemagick_error (image_wand);
7701 goto imagemagick_error; 7727 goto imagemagick_error;
7702 } 7728 }
7703 } 7729 }
@@ -7752,6 +7778,7 @@ imagemagick_load_image (struct frame *f, struct image *img,
7752 if (status == MagickFalse) 7778 if (status == MagickFalse)
7753 { 7779 {
7754 image_error ("Imagemagick image rotate failed", Qnil, Qnil); 7780 image_error ("Imagemagick image rotate failed", Qnil, Qnil);
7781 imagemagick_error (image_wand);
7755 goto imagemagick_error; 7782 goto imagemagick_error;
7756 } 7783 }
7757 } 7784 }
@@ -7976,7 +8003,7 @@ recognize as images, such as C. See `imagemagick-types-inhibit'. */)
7976 Qimagemagicktype = intern (imtypes[i]); 8003 Qimagemagicktype = intern (imtypes[i]);
7977 typelist = Fcons (Qimagemagicktype, typelist); 8004 typelist = Fcons (Qimagemagicktype, typelist);
7978 } 8005 }
7979 return typelist; 8006 return Fnreverse (typelist);
7980} 8007}
7981 8008
7982#endif /* defined (HAVE_IMAGEMAGICK) */ 8009#endif /* defined (HAVE_IMAGEMAGICK) */
diff --git a/src/indent.c b/src/indent.c
index 7e2edc8713b..b1c86c3ab13 100644
--- a/src/indent.c
+++ b/src/indent.c
@@ -1,5 +1,5 @@
1/* Indentation functions. 1/* Indentation functions.
2 Copyright (C) 1985-1988, 1993-1995, 1998, 2000-2011 2 Copyright (C) 1985-1988, 1993-1995, 1998, 2000-2012
3 Free Software Foundation, Inc. 3 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
diff --git a/src/indent.h b/src/indent.h
index fe5f60b0df5..e198137a756 100644
--- a/src/indent.h
+++ b/src/indent.h
@@ -1,5 +1,5 @@
1/* Definitions for interface to indent.c 1/* Definitions for interface to indent.c
2 Copyright (C) 1985-1986, 2001-2011 Free Software Foundation, Inc. 2 Copyright (C) 1985-1986, 2001-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
diff --git a/src/insdel.c b/src/insdel.c
index 10d37c42592..748e2d54109 100644
--- a/src/insdel.c
+++ b/src/insdel.c
@@ -1,5 +1,5 @@
1/* Buffer insertion/deletion and gap motion for GNU Emacs. 1/* Buffer insertion/deletion and gap motion for GNU Emacs.
2 Copyright (C) 1985-1986, 1993-1995, 1997-2011 2 Copyright (C) 1985-1986, 1993-1995, 1997-2012
3 Free Software Foundation, Inc. 3 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
diff --git a/src/intervals.c b/src/intervals.c
index ecb37495a04..e6c1b4d60d2 100644
--- a/src/intervals.c
+++ b/src/intervals.c
@@ -1,5 +1,5 @@
1/* Code for doing intervals. 1/* Code for doing intervals.
2 Copyright (C) 1993-1995, 1997-1998, 2001-2011 Free Software Foundation, Inc. 2 Copyright (C) 1993-1995, 1997-1998, 2001-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
diff --git a/src/intervals.h b/src/intervals.h
index be0cc43d032..6a2a8c9d83d 100644
--- a/src/intervals.h
+++ b/src/intervals.h
@@ -1,5 +1,5 @@
1/* Definitions and global variables for intervals. 1/* Definitions and global variables for intervals.
2 Copyright (C) 1993-1994, 2000-2011 Free Software Foundation, Inc. 2 Copyright (C) 1993-1994, 2000-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
diff --git a/src/keyboard.c b/src/keyboard.c
index aa8a9908f3b..177034f91ca 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -1,6 +1,6 @@
1/* Keyboard and mouse input; editor command loop. 1/* Keyboard and mouse input; editor command loop.
2 2
3Copyright (C) 1985-1989, 1993-1997, 1999-2011 Free Software Foundation, Inc. 3Copyright (C) 1985-1989, 1993-1997, 1999-2012 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
6 6
diff --git a/src/keyboard.h b/src/keyboard.h
index 9f2be5b531b..202972ffbd8 100644
--- a/src/keyboard.h
+++ b/src/keyboard.h
@@ -1,5 +1,5 @@
1/* Declarations useful when processing input. 1/* Declarations useful when processing input.
2 Copyright (C) 1985-1987, 1993, 2001-2011 Free Software Foundation, Inc. 2 Copyright (C) 1985-1987, 1993, 2001-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
diff --git a/src/keymap.c b/src/keymap.c
index 2a0f162a0e0..cc4419a4d2f 100644
--- a/src/keymap.c
+++ b/src/keymap.c
@@ -1,5 +1,5 @@
1/* Manipulation of keymaps 1/* Manipulation of keymaps
2 Copyright (C) 1985-1988, 1993-1995, 1998-2011 Free Software Foundation, Inc. 2 Copyright (C) 1985-1988, 1993-1995, 1998-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
diff --git a/src/keymap.h b/src/keymap.h
index a989f124b14..234ffce471d 100644
--- a/src/keymap.h
+++ b/src/keymap.h
@@ -1,5 +1,5 @@
1/* Functions to manipulate keymaps. 1/* Functions to manipulate keymaps.
2 Copyright (C) 2001-2011 Free Software Foundation, Inc. 2 Copyright (C) 2001-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
diff --git a/src/lastfile.c b/src/lastfile.c
index ab07e748930..f8a64797362 100644
--- a/src/lastfile.c
+++ b/src/lastfile.c
@@ -1,5 +1,5 @@
1/* Mark end of data space to dump as pure, for GNU Emacs. 1/* Mark end of data space to dump as pure, for GNU Emacs.
2 Copyright (C) 1985, 2001-2011 Free Software Foundation, Inc. 2 Copyright (C) 1985, 2001-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
diff --git a/src/lisp.h b/src/lisp.h
index ecc2fd16267..cc82edb2f5f 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -1,5 +1,5 @@
1/* Fundamental definitions for GNU Emacs Lisp interpreter. 1/* Fundamental definitions for GNU Emacs Lisp interpreter.
2 Copyright (C) 1985-1987, 1993-1995, 1997-2011 2 Copyright (C) 1985-1987, 1993-1995, 1997-2012
3 Free Software Foundation, Inc. 3 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
diff --git a/src/lisp.mk b/src/lisp.mk
index 68748b27f28..c082630f717 100644
--- a/src/lisp.mk
+++ b/src/lisp.mk
@@ -1,6 +1,6 @@
1### lisp.mk --- src/Makefile fragment for GNU Emacs 1### lisp.mk --- src/Makefile fragment for GNU Emacs
2 2
3## Copyright (C) 1985, 1987-1988, 1993-1995, 1999-2011 3## Copyright (C) 1985, 1987-1988, 1993-1995, 1999-2012
4## Free Software Foundation, Inc. 4## Free Software Foundation, Inc.
5 5
6## This file is part of GNU Emacs. 6## This file is part of GNU Emacs.
diff --git a/src/lread.c b/src/lread.c
index d38fb515bff..2a7b7a8585d 100644
--- a/src/lread.c
+++ b/src/lread.c
@@ -1,6 +1,6 @@
1/* Lisp parsing and input streams. 1/* Lisp parsing and input streams.
2 2
3Copyright (C) 1985-1989, 1993-1995, 1997-2011 Free Software Foundation, Inc. 3Copyright (C) 1985-1989, 1993-1995, 1997-2012 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
6 6
@@ -3119,7 +3119,7 @@ read1 (register Lisp_Object readcharfun, int *pch, int first_in_list)
3119 if (uninterned_symbol && ! NILP (Vpurify_flag)) 3119 if (uninterned_symbol && ! NILP (Vpurify_flag))
3120 name = make_pure_string (read_buffer, nchars, nbytes, multibyte); 3120 name = make_pure_string (read_buffer, nchars, nbytes, multibyte);
3121 else 3121 else
3122 name = make_specified_string (read_buffer, nchars, nbytes,multibyte); 3122 name = make_specified_string (read_buffer, nchars, nbytes, multibyte);
3123 result = (uninterned_symbol ? Fmake_symbol (name) 3123 result = (uninterned_symbol ? Fmake_symbol (name)
3124 : Fintern (name, Qnil)); 3124 : Fintern (name, Qnil));
3125 3125
diff --git a/src/m/alpha.h b/src/m/alpha.h
index 713598fa8b6..2a97a3d5b0c 100644
--- a/src/m/alpha.h
+++ b/src/m/alpha.h
@@ -1,6 +1,6 @@
1/* Machine description file for the alpha chip. 1/* Machine description file for the alpha chip.
2 2
3Copyright (C) 1994, 1997, 1999, 2001-2011 Free Software Foundation, Inc. 3Copyright (C) 1994, 1997, 1999, 2001-2012 Free Software Foundation, Inc.
4 4
5Author: Rainer Schoepf 5Author: Rainer Schoepf
6(according to authors.el) 6(according to authors.el)
diff --git a/src/m/amdx86-64.h b/src/m/amdx86-64.h
index 50fcf8e7872..f0482c733f9 100644
--- a/src/m/amdx86-64.h
+++ b/src/m/amdx86-64.h
@@ -1,6 +1,6 @@
1/* machine description file for AMD x86-64. 1/* machine description file for AMD x86-64.
2 2
3Copyright (C) 2002-2011 Free Software Foundation, Inc. 3Copyright (C) 2002-2012 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
6 6
diff --git a/src/m/ia64.h b/src/m/ia64.h
index 7a8866a9503..2ddc2fdfb17 100644
--- a/src/m/ia64.h
+++ b/src/m/ia64.h
@@ -1,6 +1,6 @@
1/* machine description file for the IA-64 architecture. 1/* machine description file for the IA-64 architecture.
2 2
3Copyright (C) 2000-2011 Free Software Foundation, Inc. 3Copyright (C) 2000-2012 Free Software Foundation, Inc.
4 4
5 Contributed by David Mosberger <davidm@hpl.hp.com> 5 Contributed by David Mosberger <davidm@hpl.hp.com>
6 6
diff --git a/src/m/ibmrs6000.h b/src/m/ibmrs6000.h
index ca2188bc068..9798ad2d3d7 100644
--- a/src/m/ibmrs6000.h
+++ b/src/m/ibmrs6000.h
@@ -1,6 +1,6 @@
1/* R2 AIX machine/system dependent defines 1/* R2 AIX machine/system dependent defines
2 2
3Copyright (C) 1988, 2001-2011 Free Software Foundation, Inc. 3Copyright (C) 1988, 2001-2012 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
6 6
diff --git a/src/m/ibms390x.h b/src/m/ibms390x.h
index 5ea7974b052..aa652a8206a 100644
--- a/src/m/ibms390x.h
+++ b/src/m/ibms390x.h
@@ -1,6 +1,6 @@
1/* Machine description file for IBM S390 in 64-bit mode 1/* Machine description file for IBM S390 in 64-bit mode
2 2
3Copyright (C) 2002-2011 Free Software Foundation, Inc. 3Copyright (C) 2002-2012 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
6 6
diff --git a/src/m/intel386.h b/src/m/intel386.h
index 114b7fef963..78a43e92c21 100644
--- a/src/m/intel386.h
+++ b/src/m/intel386.h
@@ -1,6 +1,6 @@
1/* Machine description file for intel 386. 1/* Machine description file for intel 386.
2 2
3Copyright (C) 1987, 2001-2011 Free Software Foundation, Inc. 3Copyright (C) 1987, 2001-2012 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
6 6
diff --git a/src/m/m68k.h b/src/m/m68k.h
index 16e0b9f0bef..120a2bad293 100644
--- a/src/m/m68k.h
+++ b/src/m/m68k.h
@@ -1,6 +1,6 @@
1/* Machine description file for generic Motorola 68k. 1/* Machine description file for generic Motorola 68k.
2 2
3Copyright (C) 1985, 1995, 2001-2011 Free Software Foundation, Inc. 3Copyright (C) 1985, 1995, 2001-2012 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
6 6
diff --git a/src/m/macppc.h b/src/m/macppc.h
index aef781e2c39..0303ead25d6 100644
--- a/src/m/macppc.h
+++ b/src/m/macppc.h
@@ -1,6 +1,6 @@
1/* machine description file For the powerpc Macintosh. 1/* machine description file For the powerpc Macintosh.
2 2
3Copyright (C) 1994, 2001-2011 Free Software Foundation, Inc. 3Copyright (C) 1994, 2001-2012 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
6 6
diff --git a/src/m/sparc.h b/src/m/sparc.h
index 99668043f30..27b6070ba87 100644
--- a/src/m/sparc.h
+++ b/src/m/sparc.h
@@ -1,6 +1,6 @@
1/* machine description file for Sun 4 SPARC. 1/* machine description file for Sun 4 SPARC.
2 2
3Copyright (C) 1987, 2001-2011 Free Software Foundation, Inc. 3Copyright (C) 1987, 2001-2012 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
6 6
diff --git a/src/m/template.h b/src/m/template.h
index 38649e8ac6d..5f1a46c86e1 100644
--- a/src/m/template.h
+++ b/src/m/template.h
@@ -1,6 +1,6 @@
1/* machine description file template. 1/* machine description file template.
2 2
3Copyright (C) 1985-1986, 2001-2011 Free Software Foundation, Inc. 3Copyright (C) 1985-1986, 2001-2012 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
6 6
diff --git a/src/m/vax.h b/src/m/vax.h
index a375600cead..e4bed4090b9 100644
--- a/src/m/vax.h
+++ b/src/m/vax.h
@@ -1,6 +1,6 @@
1/* machine description file for vax. 1/* machine description file for vax.
2 2
3Copyright (C) 1985-1986, 2001-2011 Free Software Foundation, Inc. 3Copyright (C) 1985-1986, 2001-2012 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
6 6
diff --git a/src/macros.c b/src/macros.c
index 4860308367d..3f4f8624479 100644
--- a/src/macros.c
+++ b/src/macros.c
@@ -1,6 +1,6 @@
1/* Keyboard macros. 1/* Keyboard macros.
2 2
3Copyright (C) 1985-1986, 1993, 2000-2011 Free Software Foundation, Inc. 3Copyright (C) 1985-1986, 1993, 2000-2012 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
6 6
diff --git a/src/macros.h b/src/macros.h
index 7a5d532fbb7..d66784a0246 100644
--- a/src/macros.h
+++ b/src/macros.h
@@ -1,5 +1,5 @@
1/* Definitions for keyboard macro interpretation in GNU Emacs. 1/* Definitions for keyboard macro interpretation in GNU Emacs.
2 Copyright (C) 1985, 2001-2011 Free Software Foundation, Inc. 2 Copyright (C) 1985, 2001-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
diff --git a/src/makefile.w32-in b/src/makefile.w32-in
index 36e4511d845..d7ca325e223 100644
--- a/src/makefile.w32-in
+++ b/src/makefile.w32-in
@@ -1,5 +1,5 @@
1# -*- Makefile -*- for GNU Emacs on the Microsoft W32 API. 1# -*- Makefile -*- for GNU Emacs on the Microsoft W32 API.
2# Copyright (C) 2000-2011 Free Software Foundation, Inc. 2# Copyright (C) 2000-2012 Free Software Foundation, Inc.
3 3
4# This file is part of GNU Emacs. 4# This file is part of GNU Emacs.
5 5
diff --git a/src/marker.c b/src/marker.c
index 2b78282e693..37953494459 100644
--- a/src/marker.c
+++ b/src/marker.c
@@ -1,5 +1,5 @@
1/* Markers: examining, setting and deleting. 1/* Markers: examining, setting and deleting.
2 Copyright (C) 1985, 1997-1998, 2001-2011 Free Software Foundation, Inc. 2 Copyright (C) 1985, 1997-1998, 2001-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
diff --git a/src/mem-limits.h b/src/mem-limits.h
index 86b2f44846d..472e591b38d 100644
--- a/src/mem-limits.h
+++ b/src/mem-limits.h
@@ -1,5 +1,5 @@
1/* Includes for memory limit warnings. 1/* Includes for memory limit warnings.
2 Copyright (C) 1990, 1993-1996, 2001-2011 Free Software Foundation, Inc. 2 Copyright (C) 1990, 1993-1996, 2001-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
diff --git a/src/menu.c b/src/menu.c
index 90423be5973..9ccfffd768c 100644
--- a/src/menu.c
+++ b/src/menu.c
@@ -1,6 +1,6 @@
1/* Platform-independent code for terminal communications. 1/* Platform-independent code for terminal communications.
2 2
3Copyright (C) 1986, 1988, 1993-1994, 1996, 1999-2011 3Copyright (C) 1986, 1988, 1993-1994, 1996, 1999-2012
4 Free Software Foundation, Inc. 4 Free Software Foundation, Inc.
5 5
6This file is part of GNU Emacs. 6This file is part of GNU Emacs.
diff --git a/src/menu.h b/src/menu.h
index 451401b42d5..cb22a5255d6 100644
--- a/src/menu.h
+++ b/src/menu.h
@@ -1,5 +1,5 @@
1/* Functions to manipulate menus. 1/* Functions to manipulate menus.
2 Copyright (C) 2008-2011 Free Software Foundation, Inc. 2 Copyright (C) 2008-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
diff --git a/src/minibuf.c b/src/minibuf.c
index 9a4df333788..cf860847d59 100644
--- a/src/minibuf.c
+++ b/src/minibuf.c
@@ -1,6 +1,6 @@
1/* Minibuffer input and completion. 1/* Minibuffer input and completion.
2 2
3Copyright (C) 1985-1986, 1993-2011 Free Software Foundation, Inc. 3Copyright (C) 1985-1986, 1993-2012 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
6 6
diff --git a/src/msdos.c b/src/msdos.c
index 64e9d72c784..885cedd3df0 100644
--- a/src/msdos.c
+++ b/src/msdos.c
@@ -1,6 +1,6 @@
1/* MS-DOS specific C utilities. -*- coding: raw-text -*- 1/* MS-DOS specific C utilities. -*- coding: raw-text -*-
2 2
3Copyright (C) 1993-1997, 1999-2011 Free Software Foundation, Inc. 3Copyright (C) 1993-1997, 1999-2012 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
6 6
diff --git a/src/msdos.h b/src/msdos.h
index 3048b5f7e35..a73c1f2901f 100644
--- a/src/msdos.h
+++ b/src/msdos.h
@@ -1,5 +1,5 @@
1/* MS-DOS specific C utilities, interface. 1/* MS-DOS specific C utilities, interface.
2 Copyright (C) 1993, 2001-2011 Free Software Foundation, Inc. 2 Copyright (C) 1993, 2001-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
diff --git a/src/ns.mk b/src/ns.mk
index c364dae7086..d3b5afeb99e 100644
--- a/src/ns.mk
+++ b/src/ns.mk
@@ -1,6 +1,6 @@
1### autodeps.mk --- src/Makefile fragment for GNU Emacs 1### autodeps.mk --- src/Makefile fragment for GNU Emacs
2 2
3## Copyright (C) 2008-2011 Free Software Foundation, Inc. 3## Copyright (C) 2008-2012 Free Software Foundation, Inc.
4 4
5## This file is part of GNU Emacs. 5## This file is part of GNU Emacs.
6 6
diff --git a/src/nsfns.m b/src/nsfns.m
index ccefec1e34f..5cea73c39ca 100644
--- a/src/nsfns.m
+++ b/src/nsfns.m
@@ -1,6 +1,6 @@
1/* Functions for the NeXT/Open/GNUstep and MacOSX window system. 1/* Functions for the NeXT/Open/GNUstep and MacOSX window system.
2 2
3Copyright (C) 1989, 1992-1994, 2005-2006, 2008-2011 3Copyright (C) 1989, 1992-1994, 2005-2006, 2008-2012
4 Free Software Foundation, Inc. 4 Free Software Foundation, Inc.
5 5
6This file is part of GNU Emacs. 6This file is part of GNU Emacs.
@@ -394,9 +394,8 @@ x_set_background_color (struct frame *f, Lisp_Object arg, Lisp_Object oldval)
394 if (face) 394 if (face)
395 { 395 {
396 col = ns_lookup_indexed_color (NS_FACE_BACKGROUND (face), f); 396 col = ns_lookup_indexed_color (NS_FACE_BACKGROUND (face), f);
397 face->background 397 face->background = ns_index_color
398 = (EMACS_UINT) [[col colorWithAlphaComponent: alpha] retain]; 398 ([col colorWithAlphaComponent: alpha], f);
399 [col release];
400 399
401 update_face_from_frame_parameter (f, Qbackground_color, arg); 400 update_face_from_frame_parameter (f, Qbackground_color, arg);
402 } 401 }
@@ -770,7 +769,7 @@ ns_implicitly_set_icon_type (struct frame *f)
770{ 769{
771 Lisp_Object tem; 770 Lisp_Object tem;
772 EmacsView *view = FRAME_NS_VIEW (f); 771 EmacsView *view = FRAME_NS_VIEW (f);
773 id image =nil; 772 id image = nil;
774 Lisp_Object chain, elt; 773 Lisp_Object chain, elt;
775 NSAutoreleasePool *pool; 774 NSAutoreleasePool *pool;
776 BOOL setMini = YES; 775 BOOL setMini = YES;
@@ -797,7 +796,7 @@ ns_implicitly_set_icon_type (struct frame *f)
797 } 796 }
798 797
799 for (chain = Vns_icon_type_alist; 798 for (chain = Vns_icon_type_alist;
800 (image = nil) && CONSP (chain); 799 image == nil && CONSP (chain);
801 chain = XCDR (chain)) 800 chain = XCDR (chain))
802 { 801 {
803 elt = XCAR (chain); 802 elt = XCAR (chain);
@@ -1287,7 +1286,7 @@ This function is an internal primitive--use `make-frame' instead. */)
1287 "foreground", "Foreground", RES_TYPE_STRING); 1286 "foreground", "Foreground", RES_TYPE_STRING);
1288 x_default_parameter (f, parms, Qbackground_color, build_string ("White"), 1287 x_default_parameter (f, parms, Qbackground_color, build_string ("White"),
1289 "background", "Background", RES_TYPE_STRING); 1288 "background", "Background", RES_TYPE_STRING);
1290 /* FIXME: not suppported yet in Nextstep */ 1289 /* FIXME: not supported yet in Nextstep */
1291 x_default_parameter (f, parms, Qline_spacing, Qnil, 1290 x_default_parameter (f, parms, Qline_spacing, Qnil,
1292 "lineSpacing", "LineSpacing", RES_TYPE_NUMBER); 1291 "lineSpacing", "LineSpacing", RES_TYPE_NUMBER);
1293 x_default_parameter (f, parms, Qleft_fringe, Qnil, 1292 x_default_parameter (f, parms, Qleft_fringe, Qnil,
diff --git a/src/nsfont.m b/src/nsfont.m
index 44c427ce0cc..556102b6f44 100644
--- a/src/nsfont.m
+++ b/src/nsfont.m
@@ -1,6 +1,6 @@
1/* Font back-end driver for the NeXT/Open/GNUstep and MacOSX window system. 1/* Font back-end driver for the NeXT/Open/GNUstep and MacOSX window system.
2 See font.h 2 See font.h
3 Copyright (C) 2006-2011 Free Software Foundation, Inc. 3 Copyright (C) 2006-2012 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
6 6
@@ -126,8 +126,8 @@ ns_attribute_fvalue (NSFontDescriptor *fdesc, NSString *trait)
126/* Converts FONT_WEIGHT, FONT_SLANT, FONT_WIDTH, plus family and script/lang 126/* Converts FONT_WEIGHT, FONT_SLANT, FONT_WIDTH, plus family and script/lang
127 to NSFont descriptor. Information under extra only needed for matching. */ 127 to NSFont descriptor. Information under extra only needed for matching. */
128#define STYLE_REF 100 128#define STYLE_REF 100
129static NSFontDescriptor 129static NSFontDescriptor *
130*ns_spec_to_descriptor(Lisp_Object font_spec) 130ns_spec_to_descriptor (Lisp_Object font_spec)
131{ 131{
132 NSFontDescriptor *fdesc; 132 NSFontDescriptor *fdesc;
133 NSMutableDictionary *fdAttrs = [NSMutableDictionary new]; 133 NSMutableDictionary *fdAttrs = [NSMutableDictionary new];
@@ -152,8 +152,13 @@ static NSFontDescriptor
152 [fdAttrs setObject: tdict forKey: NSFontTraitsAttribute]; 152 [fdAttrs setObject: tdict forKey: NSFontTraitsAttribute];
153 153
154 fdesc = [NSFontDescriptor fontDescriptorWithFontAttributes: fdAttrs]; 154 fdesc = [NSFontDescriptor fontDescriptorWithFontAttributes: fdAttrs];
155 if (family != nil) 155 if (family != nil)
156 {
156 fdesc = [fdesc fontDescriptorWithFamily: family]; 157 fdesc = [fdesc fontDescriptorWithFamily: family];
158 }
159
160 [fdAttrs release];
161 [tdict release];
157 return fdesc; 162 return fdesc;
158} 163}
159 164
@@ -469,6 +474,7 @@ static NSSet
469 if ([families count] > 0 || pct < 0.05) 474 if ([families count] > 0 || pct < 0.05)
470 break; 475 break;
471 } 476 }
477 [charset release];
472 } 478 }
473#ifdef NS_IMPL_COCOA 479#ifdef NS_IMPL_COCOA
474 if ([families count] == 0) 480 if ([families count] == 0)
@@ -536,12 +542,14 @@ ns_findfonts (Lisp_Object font_spec, BOOL isMatch)
536 family = [fdesc objectForKey: NSFontFamilyAttribute]; 542 family = [fdesc objectForKey: NSFontFamilyAttribute];
537 if (family != nil && !foundItal && XINT (Flength (list)) > 0) 543 if (family != nil && !foundItal && XINT (Flength (list)) > 0)
538 { 544 {
539 NSFontDescriptor *sDesc = [[[NSFontDescriptor new] 545 NSFontDescriptor *s1 = [NSFontDescriptor new];
540 fontDescriptorWithSymbolicTraits: NSFontItalicTrait] 546 NSFontDescriptor *sDesc
541 fontDescriptorWithFamily: family]; 547 = [[s1 fontDescriptorWithSymbolicTraits: NSFontItalicTrait]
548 fontDescriptorWithFamily: family];
542 list = Fcons (ns_descriptor_to_entity (sDesc, 549 list = Fcons (ns_descriptor_to_entity (sDesc,
543 AREF (font_spec, FONT_EXTRA_INDEX), 550 AREF (font_spec, FONT_EXTRA_INDEX),
544 "synthItal"), list); 551 "synthItal"), list);
552 [s1 release];
545 } 553 }
546 554
547 /* Return something if was a match and nothing found. */ 555 /* Return something if was a match and nothing found. */
@@ -1293,7 +1301,7 @@ ns_uni_to_glyphs (struct nsfont_info *font_info, unsigned char block)
1293 abort (); 1301 abort ();
1294 1302
1295 /* create a string containing all Unicode characters in this block */ 1303 /* create a string containing all Unicode characters in this block */
1296 for (idx = block<<8, i =0; i<0x100; idx++, i++) 1304 for (idx = block<<8, i = 0; i < 0x100; idx++, i++)
1297 if (idx < 0xD800 || idx > 0xDFFF) 1305 if (idx < 0xD800 || idx > 0xDFFF)
1298 unichars[i] = idx; 1306 unichars[i] = idx;
1299 else 1307 else
@@ -1309,7 +1317,7 @@ ns_uni_to_glyphs (struct nsfont_info *font_info, unsigned char block)
1309 NSGlyphGenerator *glyphGenerator = [NSGlyphGenerator sharedGlyphGenerator]; 1317 NSGlyphGenerator *glyphGenerator = [NSGlyphGenerator sharedGlyphGenerator];
1310 /*NSCharacterSet *coveredChars = [nsfont coveredCharacterSet]; */ 1318 /*NSCharacterSet *coveredChars = [nsfont coveredCharacterSet]; */
1311 unsigned int numGlyphs = [font_info->nsfont numberOfGlyphs]; 1319 unsigned int numGlyphs = [font_info->nsfont numberOfGlyphs];
1312 NSUInteger gInd =0, cInd =0; 1320 NSUInteger gInd = 0, cInd = 0;
1313 1321
1314 [glyphStorage setString: allChars font: font_info->nsfont]; 1322 [glyphStorage setString: allChars font: font_info->nsfont];
1315 [glyphGenerator generateGlyphsForGlyphStorage: glyphStorage 1323 [glyphGenerator generateGlyphsForGlyphStorage: glyphStorage
@@ -1317,7 +1325,7 @@ ns_uni_to_glyphs (struct nsfont_info *font_info, unsigned char block)
1317 glyphIndex: &gInd characterIndex: &cInd]; 1325 glyphIndex: &gInd characterIndex: &cInd];
1318#endif 1326#endif
1319 glyphs = font_info->glyphs[block]; 1327 glyphs = font_info->glyphs[block];
1320 for (i =0; i<0x100; i++, glyphs++) 1328 for (i = 0; i < 0x100; i++, glyphs++)
1321 { 1329 {
1322#ifdef NS_IMPL_GNUSTEP 1330#ifdef NS_IMPL_GNUSTEP
1323 g = unichars[i]; 1331 g = unichars[i];
@@ -1425,6 +1433,8 @@ ns_glyph_metrics (struct nsfont_info *font_info, unsigned char block)
1425- (void) setString: (NSString *)str font: (NSFont *)font 1433- (void) setString: (NSString *)str font: (NSFont *)font
1426{ 1434{
1427 [dict setObject: font forKey: NSFontAttributeName]; 1435 [dict setObject: font forKey: NSFontAttributeName];
1436 if (attrStr != nil)
1437 [attrStr release];
1428 attrStr = [[NSAttributedString alloc] initWithString: str attributes: dict]; 1438 attrStr = [[NSAttributedString alloc] initWithString: str attributes: dict];
1429 maxChar = [str length]; 1439 maxChar = [str length];
1430 maxGlyph = 0; 1440 maxGlyph = 0;
diff --git a/src/nsgui.h b/src/nsgui.h
index 99c64cd4cde..0c9a8a01e69 100644
--- a/src/nsgui.h
+++ b/src/nsgui.h
@@ -1,5 +1,5 @@
1/* Definitions and headers for communication on the NeXT/Open/GNUstep API. 1/* Definitions and headers for communication on the NeXT/Open/GNUstep API.
2 Copyright (C) 1995, 2005, 2008-2011 Free Software Foundation, Inc. 2 Copyright (C) 1995, 2005, 2008-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
diff --git a/src/nsimage.m b/src/nsimage.m
index 2cb0c3bff76..82a176975ff 100644
--- a/src/nsimage.m
+++ b/src/nsimage.m
@@ -1,5 +1,5 @@
1/* Image support for the NeXT/Open/GNUstep and MacOSX window system. 1/* Image support for the NeXT/Open/GNUstep and MacOSX window system.
2 Copyright (C) 1989, 1992-1994, 2005-2006, 2008-2011 2 Copyright (C) 1989, 1992-1994, 2005-2006, 2008-2012
3 Free Software Foundation, Inc. 3 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
diff --git a/src/nsmenu.m b/src/nsmenu.m
index 644576ae559..4bfe0cc003a 100644
--- a/src/nsmenu.m
+++ b/src/nsmenu.m
@@ -1,5 +1,5 @@
1/* NeXT/Open/GNUstep and MacOSX Cocoa menu and toolbar module. 1/* NeXT/Open/GNUstep and MacOSX Cocoa menu and toolbar module.
2 Copyright (C) 2007-2011 Free Software Foundation, Inc. 2 Copyright (C) 2007-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
@@ -74,6 +74,10 @@ EmacsMenu *mainMenu, *svcsMenu, *dockMenu;
74static int popup_activated_flag; 74static int popup_activated_flag;
75static NSModalSession popupSession; 75static NSModalSession popupSession;
76 76
77/* Nonzero means we are tracking and updating menus. */
78static int trackingMenu;
79
80
77/* NOTE: toolbar implementation is at end, 81/* NOTE: toolbar implementation is at end,
78 following complete menu implementation. */ 82 following complete menu implementation. */
79 83
@@ -400,6 +404,7 @@ ns_update_menubar (struct frame *f, int deep_p, EmacsMenu *submenu)
400 items = FRAME_MENU_BAR_ITEMS (f); 404 items = FRAME_MENU_BAR_ITEMS (f);
401 if (NILP (items)) 405 if (NILP (items))
402 { 406 {
407 free_menubar_widget_value_tree (first_wv);
403 [pool release]; 408 [pool release];
404 UNBLOCK_INPUT; 409 UNBLOCK_INPUT;
405 return; 410 return;
@@ -427,6 +432,7 @@ ns_update_menubar (struct frame *f, int deep_p, EmacsMenu *submenu)
427 432
428 if (i == n) 433 if (i == n)
429 { 434 {
435 free_menubar_widget_value_tree (first_wv);
430 [pool release]; 436 [pool release];
431 UNBLOCK_INPUT; 437 UNBLOCK_INPUT;
432 return; 438 return;
@@ -543,21 +549,44 @@ set_frame_menubar (struct frame *f, int first_time, int deep_p)
543 frame = f; 549 frame = f;
544} 550}
545 551
552#ifdef NS_IMPL_COCOA
553#if MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_5
554extern NSString *NSMenuDidBeginTrackingNotification;
555#endif
556#endif
557
558#ifdef NS_IMPL_COCOA
559-(void)trackingNotification:(NSNotification *)notification
560{
561 /* Update menu in menuNeedsUpdate only while tracking menus. */
562 trackingMenu = ([notification name] == NSMenuDidBeginTrackingNotification
563 ? 1 : 0);
564}
565#endif
546 566
547/* delegate method called when a submenu is being opened: run a 'deep' call 567/* delegate method called when a submenu is being opened: run a 'deep' call
548 to set_frame_menubar */ 568 to set_frame_menubar */
549- (void)menuNeedsUpdate: (NSMenu *)menu 569- (void)menuNeedsUpdate: (NSMenu *)menu
550{ 570{
551 NSEvent *event;
552 if (!FRAME_LIVE_P (frame)) 571 if (!FRAME_LIVE_P (frame))
553 return; 572 return;
554 event = [[FRAME_NS_VIEW (frame) window] currentEvent]; 573
555 /* HACK: Cocoa/Carbon will request update on every keystroke 574 /* Cocoa/Carbon will request update on every keystroke
556 via IsMenuKeyEvent -> CheckMenusForKeyEvent. These are not needed 575 via IsMenuKeyEvent -> CheckMenusForKeyEvent. These are not needed
557 since key equivalents are handled through emacs. 576 since key equivalents are handled through emacs.
558 On Leopard, even keystroke events generate SystemDefined events, but 577 On Leopard, even keystroke events generate SystemDefined event.
559 their subtype is 8. */ 578 Third-party applications that enhance mouse / trackpad
560 if ([event type] != NSSystemDefined || [event subtype] == 8 579 interaction, or also VNC/Remote Desktop will send events
580 of type AppDefined rather than SysDefined.
581 Menus will fail to show up if they haven't been initialized.
582 AppDefined events may lack timing data.
583
584 Thus, we rely on the didBeginTrackingNotification notification
585 as above to indicate the need for updates.
586 From 10.6 on, we could also use -[NSMenu propertiesToUpdate]: In the
587 key press case, NSMenuPropertyItemImage (e.g.) won't be set.
588 */
589 if (trackingMenu == 0
561 /* Also, don't try this if from an event picked up asynchronously, 590 /* Also, don't try this if from an event picked up asynchronously,
562 as lots of lisp evaluation happens in ns_update_menubar. */ 591 as lots of lisp evaluation happens in ns_update_menubar. */
563 || handling_signal != 0) 592 || handling_signal != 0)
@@ -1795,6 +1824,11 @@ DEFUN ("menu-or-popup-active-p", Fmenu_or_popup_active_p, Smenu_or_popup_active_
1795void 1824void
1796syms_of_nsmenu (void) 1825syms_of_nsmenu (void)
1797{ 1826{
1827#ifndef NS_IMPL_COCOA
1828 /* Don't know how to keep track of this in Next/Open/Gnustep. Always
1829 update menus there. */
1830 trackingMenu = 1;
1831#endif
1798 defsubr (&Sx_popup_dialog); 1832 defsubr (&Sx_popup_dialog);
1799 defsubr (&Sns_reset_menu); 1833 defsubr (&Sns_reset_menu);
1800 defsubr (&Smenu_or_popup_active_p); 1834 defsubr (&Smenu_or_popup_active_p);
diff --git a/src/nsselect.m b/src/nsselect.m
index 9f6f35968f5..5741236c987 100644
--- a/src/nsselect.m
+++ b/src/nsselect.m
@@ -1,5 +1,5 @@
1/* NeXT/Open/GNUstep / MacOSX Cocoa selection processing for emacs. 1/* NeXT/Open/GNUstep / MacOSX Cocoa selection processing for emacs.
2 Copyright (C) 1993-1994, 2005-2006, 2008-2011 2 Copyright (C) 1993-1994, 2005-2006, 2008-2012
3 Free Software Foundation, Inc. 3 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
@@ -35,8 +35,6 @@ GNUstep port and post-20 update by Adrian Robert (arobert@cogsci.ucsd.edu)
35#include "termhooks.h" 35#include "termhooks.h"
36#include "keyboard.h" 36#include "keyboard.h"
37 37
38#define CUT_BUFFER_SUPPORT
39
40Lisp_Object QCLIPBOARD, QSECONDARY, QTEXT, QFILE_NAME; 38Lisp_Object QCLIPBOARD, QSECONDARY, QTEXT, QFILE_NAME;
41 39
42static Lisp_Object Vselection_alist; 40static Lisp_Object Vselection_alist;
@@ -60,13 +58,18 @@ static NSString *
60symbol_to_nsstring (Lisp_Object sym) 58symbol_to_nsstring (Lisp_Object sym)
61{ 59{
62 CHECK_SYMBOL (sym); 60 CHECK_SYMBOL (sym);
63 if (EQ (sym, QCLIPBOARD)) return NSGeneralPboard; 61 if (EQ (sym, QCLIPBOARD)) return NSGeneralPboard;
64 if (EQ (sym, QPRIMARY)) return NXPrimaryPboard; 62 if (EQ (sym, QPRIMARY)) return NXPrimaryPboard;
65 if (EQ (sym, QSECONDARY)) return NXSecondaryPboard; 63 if (EQ (sym, QSECONDARY)) return NXSecondaryPboard;
66 if (EQ (sym, QTEXT)) return NSStringPboardType; 64 if (EQ (sym, QTEXT)) return NSStringPboardType;
67 return [NSString stringWithUTF8String: SDATA (XSYMBOL (sym)->xname)]; 65 return [NSString stringWithUTF8String: SDATA (XSYMBOL (sym)->xname)];
68} 66}
69 67
68static NSPasteboard *
69ns_symbol_to_pb (Lisp_Object symbol)
70{
71 return [NSPasteboard pasteboardWithName: symbol_to_nsstring (symbol)];
72}
70 73
71static Lisp_Object 74static Lisp_Object
72ns_string_to_symbol (NSString *t) 75ns_string_to_symbol (NSString *t)
@@ -230,70 +233,11 @@ static Lisp_Object
230ns_get_foreign_selection (Lisp_Object symbol, Lisp_Object target) 233ns_get_foreign_selection (Lisp_Object symbol, Lisp_Object target)
231{ 234{
232 id pb; 235 id pb;
233 pb =[NSPasteboard pasteboardWithName: symbol_to_nsstring (symbol)]; 236 pb = ns_symbol_to_pb (symbol);
234 return ns_string_from_pasteboard (pb); 237 return pb != nil ? ns_string_from_pasteboard (pb) : Qnil;
235}
236
237
238static void
239ns_handle_selection_request (struct input_event *event)
240{
241 // FIXME: BIG UGLY HACK!!!
242 id pb = (id)*(EMACS_INT*)&(event->x);
243 NSString *type = (NSString *)*(EMACS_INT*)&(event->y);
244 Lisp_Object selection_name, selection_data, target_symbol, data;
245 Lisp_Object successful_p, rest;
246
247 selection_name = ns_string_to_symbol ([(NSPasteboard *)pb name]);
248 target_symbol = ns_string_to_symbol (type);
249 selection_data = assq_no_quit (selection_name, Vselection_alist);
250 successful_p = Qnil;
251
252 if (!NILP (selection_data))
253 {
254 data = ns_get_local_selection (selection_name, target_symbol);
255 if (!NILP (data))
256 {
257 if (STRINGP (data))
258 ns_string_to_pasteboard_internal (pb, data, type);
259 successful_p = Qt;
260 }
261 }
262
263 if (!EQ (Vns_sent_selection_hooks, Qunbound))
264 {
265 for (rest = Vns_sent_selection_hooks; CONSP (rest); rest = Fcdr (rest))
266 call3 (Fcar (rest), selection_name, target_symbol, successful_p);
267 }
268} 238}
269 239
270 240
271static void
272ns_handle_selection_clear (struct input_event *event)
273{
274 id pb = (id)*(EMACS_INT*)&(event->x);
275 Lisp_Object selection_name, selection_data, rest;
276
277 selection_name = ns_string_to_symbol ([(NSPasteboard *)pb name]);
278 selection_data = assq_no_quit (selection_name, Vselection_alist);
279 if (NILP (selection_data)) return;
280
281 if (EQ (selection_data, Fcar (Vselection_alist)))
282 Vselection_alist = Fcdr (Vselection_alist);
283 else
284 {
285 for (rest = Vselection_alist; !NILP (rest); rest = Fcdr (rest))
286 if (EQ (selection_data, Fcar (Fcdr (rest))))
287 Fsetcdr (rest, Fcdr (Fcdr (rest)));
288 }
289
290 if (!EQ (Vns_lost_selection_hooks, Qunbound))
291 {
292 for (rest = Vns_lost_selection_hooks;CONSP (rest); rest = Fcdr (rest))
293 call1 (Fcar (rest), selection_name);
294 }
295}
296
297 241
298 242
299/* ========================================================================== 243/* ==========================================================================
@@ -401,29 +345,44 @@ anything that the functions on `selection-converter-alist' know about. */)
401{ 345{
402 id pb; 346 id pb;
403 Lisp_Object old_value, new_value; 347 Lisp_Object old_value, new_value;
348 NSString *type;
349 Lisp_Object successful_p = Qnil, rest;
350 Lisp_Object target_symbol, data;
351
404 352
405 check_ns (); 353 check_ns ();
406 CHECK_SYMBOL (selection_name); 354 CHECK_SYMBOL (selection_name);
407 if (NILP (selection_value)) 355 if (NILP (selection_value))
408 error ("selection-value may not be nil."); 356 error ("selection-value may not be nil.");
409 pb =[NSPasteboard pasteboardWithName: symbol_to_nsstring (selection_name)]; 357 pb = ns_symbol_to_pb (selection_name);
358 if (pb == nil) return Qnil;
359
410 ns_declare_pasteboard (pb); 360 ns_declare_pasteboard (pb);
411 old_value = assq_no_quit (selection_name, Vselection_alist); 361 old_value = assq_no_quit (selection_name, Vselection_alist);
412 new_value = Fcons (selection_name, Fcons (selection_value, Qnil)); 362 new_value = Fcons (selection_name, Fcons (selection_value, Qnil));
363
413 if (NILP (old_value)) 364 if (NILP (old_value))
414 Vselection_alist = Fcons (new_value, Vselection_alist); 365 Vselection_alist = Fcons (new_value, Vselection_alist);
415 else 366 else
416 Fsetcdr (old_value, Fcdr (new_value)); 367 Fsetcdr (old_value, Fcdr (new_value));
417 /* XXX An evil hack, but a necessary one I fear XXX */ 368
418 { 369 /* We only support copy of text. */
419 struct input_event ev; 370 type = NSStringPboardType;
420 ev.kind = SELECTION_REQUEST_EVENT; 371 target_symbol = ns_string_to_symbol (type);
421 ev.modifiers = 0; 372 data = ns_get_local_selection (selection_name, target_symbol);
422 ev.code = 0; 373 if (!NILP (data))
423 *(EMACS_INT*)(&(ev.x)) = (EMACS_INT)pb; // FIXME: BIG UGLY HACK!! 374 {
424 *(EMACS_INT*)(&(ev.y)) = (EMACS_INT)NSStringPboardType; 375 if (STRINGP (data))
425 ns_handle_selection_request (&ev); 376 ns_string_to_pasteboard_internal (pb, data, type);
426 } 377 successful_p = Qt;
378 }
379
380 if (!EQ (Vns_sent_selection_hooks, Qunbound))
381 {
382 for (rest = Vns_sent_selection_hooks; CONSP (rest); rest = Fcdr (rest))
383 call3 (Fcar (rest), selection_name, target_symbol, successful_p);
384 }
385
427 return selection_value; 386 return selection_value;
428} 387}
429 388
@@ -438,8 +397,8 @@ DEFUN ("x-disown-selection-internal", Fx_disown_selection_internal,
438 CHECK_SYMBOL (selection_name); 397 CHECK_SYMBOL (selection_name);
439 if (NILP (assq_no_quit (selection_name, Vselection_alist))) return Qnil; 398 if (NILP (assq_no_quit (selection_name, Vselection_alist))) return Qnil;
440 399
441 pb =[NSPasteboard pasteboardWithName: symbol_to_nsstring (selection_name)]; 400 pb = ns_symbol_to_pb (selection_name);
442 ns_undeclare_pasteboard (pb); 401 if (pb != nil) ns_undeclare_pasteboard (pb);
443 return Qt; 402 return Qt;
444} 403}
445 404
@@ -460,8 +419,10 @@ and t is the same as `SECONDARY'.) */)
460 CHECK_SYMBOL (selection); 419 CHECK_SYMBOL (selection);
461 if (EQ (selection, Qnil)) selection = QPRIMARY; 420 if (EQ (selection, Qnil)) selection = QPRIMARY;
462 if (EQ (selection, Qt)) selection = QSECONDARY; 421 if (EQ (selection, Qt)) selection = QSECONDARY;
463 pb =[NSPasteboard pasteboardWithName: symbol_to_nsstring (selection)]; 422 pb = ns_symbol_to_pb (selection);
464 types =[pb types]; 423 if (pb == nil) return Qnil;
424
425 types = [pb types];
465 return ([types count] == 0) ? Qnil : Qt; 426 return ([types count] == 0) ? Qnil : Qt;
466} 427}
467 428
@@ -511,45 +472,31 @@ TYPE is the type of data desired, typically `STRING'. */)
511} 472}
512 473
513 474
514#ifdef CUT_BUFFER_SUPPORT 475DEFUN ("ns-get-selection-internal", Fns_get_selection_internal,
515DEFUN ("ns-get-cut-buffer-internal", Fns_get_cut_buffer_internal, 476 Sns_get_selection_internal, 1, 1, 0,
516 Sns_get_cut_buffer_internal, 1, 1, 0, 477 doc: /* Returns the value of SELECTION as a string.
517 doc: /* Returns the value of the named cut buffer. */) 478SELECTION is a symbol, typically `PRIMARY', `SECONDARY', or `CLIPBOARD'. */)
518 (Lisp_Object buffer) 479 (Lisp_Object selection)
519{ 480{
520 id pb; 481 id pb;
521 check_ns (); 482 check_ns ();
522 pb =[NSPasteboard pasteboardWithName: symbol_to_nsstring (buffer)]; 483 pb = ns_symbol_to_pb (selection);
523 return ns_string_from_pasteboard (pb); 484 return pb != nil ? ns_string_from_pasteboard (pb) : Qnil;
524} 485}
525 486
526 487
527DEFUN ("ns-rotate-cut-buffers-internal", Fns_rotate_cut_buffers_internal, 488DEFUN ("ns-store-selection-internal", Fns_store_selection_internal,
528 Sns_rotate_cut_buffers_internal, 1, 1, 0, 489 Sns_store_selection_internal, 2, 2, 0,
529 doc: /* Rotate the values of the cut buffers by N steps. 490 doc: /* Sets the string value of SELECTION.
530Positive N means move values forward, negative means 491SELECTION is a symbol, typically `PRIMARY', `SECONDARY', or `CLIPBOARD'. */)
531backward. CURRENTLY NOT IMPLEMENTED UNDER NEXTSTEP. */ ) 492 (Lisp_Object selection, Lisp_Object string)
532 (Lisp_Object n)
533{
534 /* XXX This function is unimplemented under NeXTstep XXX */
535 Fsignal (Qquit, Fcons (build_string (
536 "Warning: ns-rotate-cut-buffers-internal not implemented\n"), Qnil));
537 return Qnil;
538}
539
540
541DEFUN ("ns-store-cut-buffer-internal", Fns_store_cut_buffer_internal,
542 Sns_store_cut_buffer_internal, 2, 2, 0,
543 doc: /* Sets the value of the named cut buffer (typically CUT_BUFFER0). */)
544 (Lisp_Object buffer, Lisp_Object string)
545{ 493{
546 id pb; 494 id pb;
547 check_ns (); 495 check_ns ();
548 pb =[NSPasteboard pasteboardWithName: symbol_to_nsstring (buffer)]; 496 pb = ns_symbol_to_pb (selection);
549 ns_string_to_pasteboard (pb, string); 497 if (pb != nil) ns_string_to_pasteboard (pb, string);
550 return Qnil; 498 return Qnil;
551} 499}
552#endif
553 500
554 501
555void 502void
@@ -572,11 +519,8 @@ syms_of_nsselect (void)
572 defsubr (&Sx_own_selection_internal); 519 defsubr (&Sx_own_selection_internal);
573 defsubr (&Sx_selection_exists_p); 520 defsubr (&Sx_selection_exists_p);
574 defsubr (&Sx_selection_owner_p); 521 defsubr (&Sx_selection_owner_p);
575#ifdef CUT_BUFFER_SUPPORT 522 defsubr (&Sns_get_selection_internal);
576 defsubr (&Sns_get_cut_buffer_internal); 523 defsubr (&Sns_store_selection_internal);
577 defsubr (&Sns_rotate_cut_buffers_internal);
578 defsubr (&Sns_store_cut_buffer_internal);
579#endif
580 524
581 Vselection_alist = Qnil; 525 Vselection_alist = Qnil;
582 staticpro (&Vselection_alist); 526 staticpro (&Vselection_alist);
diff --git a/src/nsterm.h b/src/nsterm.h
index 14918cca90d..bc535b47d97 100644
--- a/src/nsterm.h
+++ b/src/nsterm.h
@@ -1,5 +1,5 @@
1/* Definitions and headers for communication with NeXT/Open/GNUstep API. 1/* Definitions and headers for communication with NeXT/Open/GNUstep API.
2 Copyright (C) 1989, 1993, 2005, 2008-2011 Free Software Foundation, Inc. 2 Copyright (C) 1989, 1993, 2005, 2008-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
diff --git a/src/nsterm.m b/src/nsterm.m
index 1d645943065..70d3cc0e8b8 100644
--- a/src/nsterm.m
+++ b/src/nsterm.m
@@ -1,5 +1,5 @@
1/* NeXT/Open/GNUstep / MacOSX communication module. 1/* NeXT/Open/GNUstep / MacOSX communication module.
2 Copyright (C) 1989, 1993-1994, 2005-2006, 2008-2011 2 Copyright (C) 1989, 1993-1994, 2005-2006, 2008-2012
3 Free Software Foundation, Inc. 3 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
@@ -1158,6 +1158,9 @@ x_free_frame_resources (struct frame *f)
1158 1158
1159 xfree (f->output_data.ns); 1159 xfree (f->output_data.ns);
1160 1160
1161 if (f->output_data.ns->miniimage != nil)
1162 [f->output_data.ns->miniimage release];
1163
1161 [[view window] close]; 1164 [[view window] close];
1162 [view release]; 1165 [view release];
1163 1166
@@ -1351,7 +1354,7 @@ ns_index_color (NSColor *color, struct frame *f)
1351{ 1354{
1352 struct ns_color_table *color_table = FRAME_NS_DISPLAY_INFO (f)->color_table; 1355 struct ns_color_table *color_table = FRAME_NS_DISPLAY_INFO (f)->color_table;
1353 ptrdiff_t idx; 1356 ptrdiff_t idx;
1354 NSNumber *index; 1357 ptrdiff_t i;
1355 1358
1356 if (!color_table->colors) 1359 if (!color_table->colors)
1357 { 1360 {
@@ -1364,21 +1367,13 @@ ns_index_color (NSColor *color, struct frame *f)
1364 } 1367 }
1365 1368
1366 /* do we already have this color ? */ 1369 /* do we already have this color ? */
1367 { 1370 for (i = 1; i < color_table->avail; i++)
1368 ptrdiff_t i; 1371 if (color_table->colors[i] && [color_table->colors[i] isEqual: color])
1369 for (i = 1; i < color_table->avail; i++) 1372 return i;
1370 {
1371 if (color_table->colors[i] && [color_table->colors[i] isEqual: color])
1372 {
1373 [color_table->colors[i] retain];
1374 return i;
1375 }
1376 }
1377 }
1378 1373
1379 if ([color_table->empty_indices count] > 0) 1374 if ([color_table->empty_indices count] > 0)
1380 { 1375 {
1381 index = [color_table->empty_indices anyObject]; 1376 NSNumber *index = [color_table->empty_indices anyObject];
1382 [color_table->empty_indices removeObject: index]; 1377 [color_table->empty_indices removeObject: index];
1383 idx = [index unsignedLongValue]; 1378 idx = [index unsignedLongValue];
1384 } 1379 }
@@ -1411,20 +1406,20 @@ ns_free_indexed_color (unsigned long idx, struct frame *f)
1411 color_table = FRAME_NS_DISPLAY_INFO (f)->color_table; 1406 color_table = FRAME_NS_DISPLAY_INFO (f)->color_table;
1412 1407
1413 if (idx <= 0 || idx >= color_table->size) { 1408 if (idx <= 0 || idx >= color_table->size) {
1414 message1("ns_free_indexed_color: Color index out of range.\n"); 1409 message1 ("ns_free_indexed_color: Color index out of range.\n");
1415 return; 1410 return;
1416 } 1411 }
1417 1412
1418 index = [NSNumber numberWithUnsignedInt: idx]; 1413 index = [NSNumber numberWithUnsignedInt: idx];
1419 if ([color_table->empty_indices containsObject: index]) { 1414 if ([color_table->empty_indices containsObject: index]) {
1420 message1("ns_free_indexed_color: attempt to free already freed color.\n"); 1415 message1 ("ns_free_indexed_color: attempt to free already freed color.\n");
1421 return; 1416 return;
1422 } 1417 }
1423 1418
1424 color = color_table->colors[idx]; 1419 color = color_table->colors[idx];
1425 [color release]; 1420 [color release];
1426 color_table->colors[idx] = nil; 1421 color_table->colors[idx] = nil;
1427 [color_table->empty_indices addObject: [NSNumber numberWithUnsignedInt: idx]]; 1422 [color_table->empty_indices addObject: index];
1428/*fprintf(stderr, "color_table: FREED %d\n",idx);*/ 1423/*fprintf(stderr, "color_table: FREED %d\n",idx);*/
1429} 1424}
1430 1425
@@ -4203,6 +4198,15 @@ ns_term_init (Lisp_Object display_name)
4203 [NSApp setServicesMenu: svcsMenu]; 4198 [NSApp setServicesMenu: svcsMenu];
4204 /* Needed at least on Cocoa, to get dock menu to show windows */ 4199 /* Needed at least on Cocoa, to get dock menu to show windows */
4205 [NSApp setWindowsMenu: [[NSMenu alloc] init]]; 4200 [NSApp setWindowsMenu: [[NSMenu alloc] init]];
4201
4202 [[NSNotificationCenter defaultCenter]
4203 addObserver: mainMenu
4204 selector: @selector (trackingNotification:)
4205 name: NSMenuDidBeginTrackingNotification object: mainMenu];
4206 [[NSNotificationCenter defaultCenter]
4207 addObserver: mainMenu
4208 selector: @selector (trackingNotification:)
4209 name: NSMenuDidEndTrackingNotification object: mainMenu];
4206 } 4210 }
4207#endif /* MAC OS X menu setup */ 4211#endif /* MAC OS X menu setup */
4208 4212
diff --git a/src/print.c b/src/print.c
index b8b7ab371f6..443869b6fd0 100644
--- a/src/print.c
+++ b/src/print.c
@@ -1,6 +1,6 @@
1/* Lisp object printing and output streams. 1/* Lisp object printing and output streams.
2 2
3Copyright (C) 1985-1986, 1988, 1993-1995, 1997-2011 3Copyright (C) 1985-1986, 1988, 1993-1995, 1997-2012
4 Free Software Foundation, Inc. 4 Free Software Foundation, Inc.
5 5
6This file is part of GNU Emacs. 6This file is part of GNU Emacs.
@@ -609,7 +609,7 @@ A printed representation of an object is text which describes that object. */)
609 printcharfun = Vprin1_to_string_buffer; 609 printcharfun = Vprin1_to_string_buffer;
610 PRINTPREPARE; 610 PRINTPREPARE;
611 print (object, printcharfun, NILP (noescape)); 611 print (object, printcharfun, NILP (noescape));
612 /* Make Vprin1_to_string_buffer be the default buffer after PRINTFINSH */ 612 /* Make Vprin1_to_string_buffer be the default buffer after PRINTFINISH */
613 PRINTFINISH; 613 PRINTFINISH;
614 } 614 }
615 615
diff --git a/src/process.c b/src/process.c
index 206af7059fb..b4fca389d0d 100644
--- a/src/process.c
+++ b/src/process.c
@@ -1,6 +1,6 @@
1/* Asynchronous subprocess control for GNU Emacs. 1/* Asynchronous subprocess control for GNU Emacs.
2 2
3Copyright (C) 1985-1988, 1993-1996, 1998-1999, 2001-2011 3Copyright (C) 1985-1988, 1993-1996, 1998-1999, 2001-2012
4 Free Software Foundation, Inc. 4 Free Software Foundation, Inc.
5 5
6This file is part of GNU Emacs. 6This file is part of GNU Emacs.
@@ -3488,7 +3488,7 @@ usage: (make-network-process &rest ARGS) */)
3488 || (NILP (buffer) && NILP (BVAR (&buffer_defaults, enable_multibyte_characters)))) 3488 || (NILP (buffer) && NILP (BVAR (&buffer_defaults, enable_multibyte_characters))))
3489 /* We dare not decode end-of-line format by setting VAL to 3489 /* We dare not decode end-of-line format by setting VAL to
3490 Qraw_text, because the existing Emacs Lisp libraries 3490 Qraw_text, because the existing Emacs Lisp libraries
3491 assume that they receive bare code including a sequene of 3491 assume that they receive bare code including a sequence of
3492 CR LF. */ 3492 CR LF. */
3493 val = Qnil; 3493 val = Qnil;
3494 else 3494 else
diff --git a/src/process.h b/src/process.h
index aff9e970f63..9efde261386 100644
--- a/src/process.h
+++ b/src/process.h
@@ -1,5 +1,5 @@
1/* Definitions for asynchronous process control in GNU Emacs. 1/* Definitions for asynchronous process control in GNU Emacs.
2 Copyright (C) 1985, 1994, 2001-2011 Free Software Foundation, Inc. 2 Copyright (C) 1985, 1994, 2001-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
diff --git a/src/puresize.h b/src/puresize.h
index 889d836af78..bca36b2a562 100644
--- a/src/puresize.h
+++ b/src/puresize.h
@@ -1,5 +1,5 @@
1/* How much read-only Lisp storage a dumped Emacs needs. 1/* How much read-only Lisp storage a dumped Emacs needs.
2 Copyright (C) 1993, 2001-2011 Free Software Foundation, Inc. 2 Copyright (C) 1993, 2001-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
diff --git a/src/ralloc.c b/src/ralloc.c
index 62189ad8fc7..13587b9ffd4 100644
--- a/src/ralloc.c
+++ b/src/ralloc.c
@@ -1,5 +1,5 @@
1/* Block-relocating memory allocator. 1/* Block-relocating memory allocator.
2 Copyright (C) 1993, 1995, 2000-2011 Free Software Foundation, Inc. 2 Copyright (C) 1993, 1995, 2000-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
diff --git a/src/regex.c b/src/regex.c
index 0ba05a95fdb..0f9150193ec 100644
--- a/src/regex.c
+++ b/src/regex.c
@@ -2,7 +2,7 @@
2 0.12. (Implements POSIX draft P1003.2/D11.2, except for some of the 2 0.12. (Implements POSIX draft P1003.2/D11.2, except for some of the
3 internationalization features.) 3 internationalization features.)
4 4
5 Copyright (C) 1993-2011 Free Software Foundation, Inc. 5 Copyright (C) 1993-2012 Free Software Foundation, Inc.
6 6
7 This program is free software; you can redistribute it and/or modify 7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by 8 it under the terms of the GNU General Public License as published by
diff --git a/src/regex.h b/src/regex.h
index 32ccfb7ddef..643d0b7b5ab 100644
--- a/src/regex.h
+++ b/src/regex.h
@@ -1,7 +1,7 @@
1/* Definitions for data structures and routines for the regular 1/* Definitions for data structures and routines for the regular
2 expression library, version 0.12. 2 expression library, version 0.12.
3 3
4 Copyright (C) 1985, 1989-1993, 1995, 2000-2011 4 Copyright (C) 1985, 1989-1993, 1995, 2000-2012
5 Free Software Foundation, Inc. 5 Free Software Foundation, Inc.
6 6
7 This program is free software; you can redistribute it and/or modify 7 This program is free software; you can redistribute it and/or modify
diff --git a/src/region-cache.c b/src/region-cache.c
index 054374eb688..9f4e5921877 100644
--- a/src/region-cache.c
+++ b/src/region-cache.c
@@ -1,6 +1,6 @@
1/* Caching facts about regions of the buffer, for optimization. 1/* Caching facts about regions of the buffer, for optimization.
2 2
3Copyright (C) 1985-1989, 1993, 1995, 2001-2011 3Copyright (C) 1985-1989, 1993, 1995, 2001-2012
4 Free Software Foundation, Inc. 4 Free Software Foundation, Inc.
5 5
6This file is part of GNU Emacs. 6This file is part of GNU Emacs.
diff --git a/src/region-cache.h b/src/region-cache.h
index 6758f8bcd08..7aebdbec262 100644
--- a/src/region-cache.h
+++ b/src/region-cache.h
@@ -1,6 +1,6 @@
1/* Header file: Caching facts about regions of the buffer, for optimization. 1/* Header file: Caching facts about regions of the buffer, for optimization.
2 2
3Copyright (C) 1985-1986, 1993, 1995, 2001-2011 3Copyright (C) 1985-1986, 1993, 1995, 2001-2012
4 Free Software Foundation, Inc. 4 Free Software Foundation, Inc.
5 5
6This file is part of GNU Emacs. 6This file is part of GNU Emacs.
diff --git a/src/s/aix4-2.h b/src/s/aix4-2.h
index b44bd0308a3..37b041396f9 100644
--- a/src/s/aix4-2.h
+++ b/src/s/aix4-2.h
@@ -1,5 +1,5 @@
1/* 1/*
2Copyright (C) 1999, 2001-2011 Free Software Foundation, Inc. 2Copyright (C) 1999, 2001-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
diff --git a/src/s/bsd-common.h b/src/s/bsd-common.h
index 0cca005b423..c2dbdb9a109 100644
--- a/src/s/bsd-common.h
+++ b/src/s/bsd-common.h
@@ -1,6 +1,6 @@
1/* Definitions file for GNU Emacs running on bsd 4.3 1/* Definitions file for GNU Emacs running on bsd 4.3
2 2
3Copyright (C) 1985-1986, 2001-2011 Free Software Foundation, Inc. 3Copyright (C) 1985-1986, 2001-2012 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
6 6
diff --git a/src/s/cygwin.h b/src/s/cygwin.h
index 8f5a0ab1fc7..9a371829eaa 100644
--- a/src/s/cygwin.h
+++ b/src/s/cygwin.h
@@ -1,6 +1,6 @@
1/* System description header file for Cygwin. 1/* System description header file for Cygwin.
2 2
3Copyright (C) 1985-1986, 1992, 1999, 2002-2011 Free Software Foundation, Inc. 3Copyright (C) 1985-1986, 1992, 1999, 2002-2012 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
6 6
diff --git a/src/s/darwin.h b/src/s/darwin.h
index dd0d0c34021..9ac9e91fd9d 100644
--- a/src/s/darwin.h
+++ b/src/s/darwin.h
@@ -1,6 +1,6 @@
1/* System description header file for Darwin (Mac OS X). 1/* System description header file for Darwin (Mac OS X).
2 2
3Copyright (C) 2001-2011 Free Software Foundation, Inc. 3Copyright (C) 2001-2012 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
6 6
diff --git a/src/s/freebsd.h b/src/s/freebsd.h
index 24b34e02f69..c74605fe366 100644
--- a/src/s/freebsd.h
+++ b/src/s/freebsd.h
@@ -1,6 +1,6 @@
1/* System description header for FreeBSD systems. 1/* System description header for FreeBSD systems.
2 2
3Copyright (C) 1994-2011 Free Software Foundation, Inc. 3Copyright (C) 1994-2012 Free Software Foundation, Inc.
4 4
5Author: Shawn M. Carey 5Author: Shawn M. Carey
6(according to authors.el) 6(according to authors.el)
diff --git a/src/s/gnu-linux.h b/src/s/gnu-linux.h
index 3d78bf695bc..b54bd985e6b 100644
--- a/src/s/gnu-linux.h
+++ b/src/s/gnu-linux.h
@@ -1,6 +1,6 @@
1/* This file is the configuration file for Linux-based GNU systems 1/* This file is the configuration file for Linux-based GNU systems
2 2
3Copyright (C) 1985-1986, 1992, 1994, 1996, 1999, 2001-2011 3Copyright (C) 1985-1986, 1992, 1994, 1996, 1999, 2001-2012
4 Free Software Foundation, Inc. 4 Free Software Foundation, Inc.
5 5
6This file was put together by Michael K. Johnson and Rik Faith. 6This file was put together by Michael K. Johnson and Rik Faith.
@@ -155,7 +155,7 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
155 extern void *__libc_ia64_register_backing_store_base; \ 155 extern void *__libc_ia64_register_backing_store_base; \
156 __builtin_ia64_flushrs (); \ 156 __builtin_ia64_flushrs (); \
157 mark_memory (__libc_ia64_register_backing_store_base, \ 157 mark_memory (__libc_ia64_register_backing_store_base, \
158 __builtin_ia64_bsp (), 0); \ 158 __builtin_ia64_bsp ()); \
159 } while (0) 159 } while (0)
160#endif 160#endif
161#endif 161#endif
diff --git a/src/s/gnu.h b/src/s/gnu.h
index b40f7b0a95b..be831a833a5 100644
--- a/src/s/gnu.h
+++ b/src/s/gnu.h
@@ -1,6 +1,6 @@
1/* Definitions file for GNU Emacs running on the GNU Hurd. 1/* Definitions file for GNU Emacs running on the GNU Hurd.
2 2
3Copyright (C) 1994-1996, 2001-2011 Free Software Foundation, Inc. 3Copyright (C) 1994-1996, 2001-2012 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
6 6
diff --git a/src/s/hpux10-20.h b/src/s/hpux10-20.h
index be457498add..becb5d3464e 100644
--- a/src/s/hpux10-20.h
+++ b/src/s/hpux10-20.h
@@ -1,6 +1,6 @@
1/* System description file for hpux version 10.20. 1/* System description file for hpux version 10.20.
2 2
3Copyright (C) 1999, 2001-2011 Free Software Foundation, Inc. 3Copyright (C) 1999, 2001-2012 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
6 6
diff --git a/src/s/irix6-5.h b/src/s/irix6-5.h
index 26eb7dcde77..32374498fe7 100644
--- a/src/s/irix6-5.h
+++ b/src/s/irix6-5.h
@@ -1,6 +1,6 @@
1/* Definitions file for GNU Emacs running on Silicon Graphics Irix system 6.5. 1/* Definitions file for GNU Emacs running on Silicon Graphics Irix system 6.5.
2 2
3Copyright (C) 1999-2011 Free Software Foundation, Inc. 3Copyright (C) 1999-2012 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
6 6
diff --git a/src/s/ms-w32.h b/src/s/ms-w32.h
index cc19765aba6..d533ae34ac3 100644
--- a/src/s/ms-w32.h
+++ b/src/s/ms-w32.h
@@ -1,6 +1,6 @@
1/* System description file for Windows NT. 1/* System description file for Windows NT.
2 2
3Copyright (C) 1993-1995, 2001-2011 Free Software Foundation, Inc. 3Copyright (C) 1993-1995, 2001-2012 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
6 6
diff --git a/src/s/msdos.h b/src/s/msdos.h
index 9ee13d12867..cde24147c57 100644
--- a/src/s/msdos.h
+++ b/src/s/msdos.h
@@ -1,6 +1,6 @@
1/* System description file for MS-DOS 1/* System description file for MS-DOS
2 2
3Copyright (C) 1993, 1996-1997, 2001-2011 Free Software Foundation, Inc. 3Copyright (C) 1993, 1996-1997, 2001-2012 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
6 6
diff --git a/src/s/netbsd.h b/src/s/netbsd.h
index 52cda717a2d..f25023fb615 100644
--- a/src/s/netbsd.h
+++ b/src/s/netbsd.h
@@ -1,6 +1,6 @@
1/* s/ file for netbsd system. 1/* s/ file for netbsd system.
2 2
3Copyright (C) 2001-2011 Free Software Foundation, Inc. 3Copyright (C) 2001-2012 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
6 6
diff --git a/src/s/sol2-6.h b/src/s/sol2-6.h
index 3d9bd6ddafc..a9fefcb1992 100644
--- a/src/s/sol2-6.h
+++ b/src/s/sol2-6.h
@@ -1,6 +1,6 @@
1/* Definitions file for GNU Emacs running on Solaris 2.6. 1/* Definitions file for GNU Emacs running on Solaris 2.6.
2 2
3Copyright (C) 1999-2011 Free Software Foundation, Inc. 3Copyright (C) 1999-2012 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
6 6
diff --git a/src/s/template.h b/src/s/template.h
index 4e0400e99e3..527694bd4bb 100644
--- a/src/s/template.h
+++ b/src/s/template.h
@@ -2,7 +2,7 @@
2 This file describes the parameters that system description files 2 This file describes the parameters that system description files
3 should define or not. 3 should define or not.
4 4
5Copyright (C) 1985-1986, 1992, 1999, 2001-2011 Free Software Foundation, Inc. 5Copyright (C) 1985-1986, 1992, 1999, 2001-2012 Free Software Foundation, Inc.
6 6
7This file is part of GNU Emacs. 7This file is part of GNU Emacs.
8 8
diff --git a/src/s/unixware.h b/src/s/unixware.h
index 8fe28625dd4..22c396a060e 100644
--- a/src/s/unixware.h
+++ b/src/s/unixware.h
@@ -1,6 +1,6 @@
1/* s/ file for Unixware. 1/* s/ file for Unixware.
2 2
3Copyright (C) 1999-2011 Free Software Foundation, Inc. 3Copyright (C) 1999-2012 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
6 6
diff --git a/src/s/usg5-4-common.h b/src/s/usg5-4-common.h
index e6d992d8f9c..fabdd66f3bb 100644
--- a/src/s/usg5-4-common.h
+++ b/src/s/usg5-4-common.h
@@ -1,6 +1,6 @@
1/* Definitions file for GNU Emacs running on AT&T's System V Release 4 1/* Definitions file for GNU Emacs running on AT&T's System V Release 4
2 2
3Copyright (C) 1987, 1990, 1999-2011 Free Software Foundation, Inc. 3Copyright (C) 1987, 1990, 1999-2012 Free Software Foundation, Inc.
4 4
5Written by James Van Artsdalen of Dell Computer Corp. james@bigtex.cactus.org. 5Written by James Van Artsdalen of Dell Computer Corp. james@bigtex.cactus.org.
6Subsequently improved for Dell 2.2 by Eric S. Raymond <esr@snark.thyrsus.com>. 6Subsequently improved for Dell 2.2 by Eric S. Raymond <esr@snark.thyrsus.com>.
diff --git a/src/scroll.c b/src/scroll.c
index 4e0801f092f..abc5c17400a 100644
--- a/src/scroll.c
+++ b/src/scroll.c
@@ -1,6 +1,6 @@
1/* Calculate what line insertion or deletion to do, and do it 1/* Calculate what line insertion or deletion to do, and do it
2 2
3Copyright (C) 1985-1986, 1990, 1993-1994, 2001-2011 3Copyright (C) 1985-1986, 1990, 1993-1994, 2001-2012
4 Free Software Foundation, Inc. 4 Free Software Foundation, Inc.
5 5
6This file is part of GNU Emacs. 6This file is part of GNU Emacs.
diff --git a/src/search.c b/src/search.c
index 160d08e3c8c..0d451bd11c3 100644
--- a/src/search.c
+++ b/src/search.c
@@ -1,5 +1,5 @@
1/* String search routines for GNU Emacs. 1/* String search routines for GNU Emacs.
2 Copyright (C) 1985-1987, 1993-1994, 1997-1999, 2001-2011 2 Copyright (C) 1985-1987, 1993-1994, 1997-1999, 2001-2012
3 Free Software Foundation, Inc. 3 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
@@ -725,8 +725,8 @@ scan_buffer (register int target, ptrdiff_t start, ptrdiff_t end,
725 the region from start to cursor is free of them. */ 725 the region from start to cursor is free of them. */
726 if (target == '\n' && newline_cache) 726 if (target == '\n' && newline_cache)
727 know_region_cache (current_buffer, newline_cache, 727 know_region_cache (current_buffer, newline_cache,
728 start_byte + scan_start - base, 728 BYTE_TO_CHAR (start_byte + scan_start - base),
729 start_byte + cursor - base); 729 BYTE_TO_CHAR (start_byte + cursor - base));
730 730
731 /* Did we find the target character? */ 731 /* Did we find the target character? */
732 if (cursor < ceiling_addr) 732 if (cursor < ceiling_addr)
@@ -791,8 +791,8 @@ scan_buffer (register int target, ptrdiff_t start, ptrdiff_t end,
791 the region from after the cursor to start is free of them. */ 791 the region from after the cursor to start is free of them. */
792 if (target == '\n' && newline_cache) 792 if (target == '\n' && newline_cache)
793 know_region_cache (current_buffer, newline_cache, 793 know_region_cache (current_buffer, newline_cache,
794 start_byte + cursor - base, 794 BYTE_TO_CHAR (start_byte + cursor - base),
795 start_byte + scan_start - base); 795 BYTE_TO_CHAR (start_byte + scan_start - base));
796 796
797 /* Did we find the target character? */ 797 /* Did we find the target character? */
798 if (cursor >= ceiling_addr) 798 if (cursor >= ceiling_addr)
@@ -1303,7 +1303,7 @@ search_buffer (Lisp_Object string, ptrdiff_t pos, ptrdiff_t pos_byte,
1303 checking if we can use boyer-moore search. If TRT is 1303 checking if we can use boyer-moore search. If TRT is
1304 non-nil, we can use boyer-moore search only if TRT can be 1304 non-nil, we can use boyer-moore search only if TRT can be
1305 represented by the byte array of 256 elements. For that, 1305 represented by the byte array of 256 elements. For that,
1306 all non-ASCII case-equivalents of all case-senstive 1306 all non-ASCII case-equivalents of all case-sensitive
1307 characters in STRING must belong to the same charset and 1307 characters in STRING must belong to the same charset and
1308 row. */ 1308 row. */
1309 1309
diff --git a/src/sheap.c b/src/sheap.c
index 31414fbe5c6..3ae14b5daec 100644
--- a/src/sheap.c
+++ b/src/sheap.c
@@ -1,7 +1,7 @@
1/* simulate `sbrk' with an array in .bss, for `unexec' support for Cygwin; 1/* simulate `sbrk' with an array in .bss, for `unexec' support for Cygwin;
2 complete rewrite of xemacs Cygwin `unexec' code 2 complete rewrite of xemacs Cygwin `unexec' code
3 3
4 Copyright (C) 2004-2011 Free Software Foundation, Inc. 4 Copyright (C) 2004-2012 Free Software Foundation, Inc.
5 5
6This file is part of GNU Emacs. 6This file is part of GNU Emacs.
7 7
diff --git a/src/sound.c b/src/sound.c
index af9dc98c3d3..bd34628767b 100644
--- a/src/sound.c
+++ b/src/sound.c
@@ -1,5 +1,5 @@
1/* sound.c -- sound support. 1/* sound.c -- sound support.
2 Copyright (C) 1998-1999, 2001-2011 Free Software Foundation, Inc. 2 Copyright (C) 1998-1999, 2001-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
diff --git a/src/syntax.c b/src/syntax.c
index 7108016f99c..a802360582b 100644
--- a/src/syntax.c
+++ b/src/syntax.c
@@ -1,5 +1,5 @@
1/* GNU Emacs routines to deal with syntax tables; also word and list parsing. 1/* GNU Emacs routines to deal with syntax tables; also word and list parsing.
2 Copyright (C) 1985, 1987, 1993-1995, 1997-1999, 2001-2011 2 Copyright (C) 1985, 1987, 1993-1995, 1997-1999, 2001-2012
3 Free Software Foundation, Inc. 3 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
diff --git a/src/syntax.h b/src/syntax.h
index 1ea37ac5d5f..3f5e6a63e25 100644
--- a/src/syntax.h
+++ b/src/syntax.h
@@ -1,6 +1,6 @@
1/* Declarations having to do with GNU Emacs syntax tables. 1/* Declarations having to do with GNU Emacs syntax tables.
2 2
3Copyright (C) 1985, 1993-1994, 1997-1998, 2001-2011 3Copyright (C) 1985, 1993-1994, 1997-1998, 2001-2012
4 Free Software Foundation, Inc. 4 Free Software Foundation, Inc.
5 5
6This file is part of GNU Emacs. 6This file is part of GNU Emacs.
diff --git a/src/sysdep.c b/src/sysdep.c
index bd8a1020441..426c6832347 100644
--- a/src/sysdep.c
+++ b/src/sysdep.c
@@ -1,5 +1,5 @@
1/* Interfaces to system-dependent kernel and library entries. 1/* Interfaces to system-dependent kernel and library entries.
2 Copyright (C) 1985-1988, 1993-1995, 1999-2011 2 Copyright (C) 1985-1988, 1993-1995, 1999-2012
3 Free Software Foundation, Inc. 3 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
diff --git a/src/sysselect.h b/src/sysselect.h
index 20eade8d07a..f9b9fc00b35 100644
--- a/src/sysselect.h
+++ b/src/sysselect.h
@@ -1,5 +1,5 @@
1/* sysselect.h - System-dependent definitions for the select function. 1/* sysselect.h - System-dependent definitions for the select function.
2 Copyright (C) 1995, 2001-2011 Free Software Foundation, Inc. 2 Copyright (C) 1995, 2001-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
diff --git a/src/syssignal.h b/src/syssignal.h
index 315400d8498..86135d71215 100644
--- a/src/syssignal.h
+++ b/src/syssignal.h
@@ -1,5 +1,5 @@
1/* syssignal.h - System-dependent definitions for signals. 1/* syssignal.h - System-dependent definitions for signals.
2 Copyright (C) 1993, 1999, 2001-2011 Free Software Foundation, Inc. 2 Copyright (C) 1993, 1999, 2001-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
diff --git a/src/systime.h b/src/systime.h
index b90372dbe20..9e7a1173a20 100644
--- a/src/systime.h
+++ b/src/systime.h
@@ -1,5 +1,5 @@
1/* systime.h - System-dependent definitions for time manipulations. 1/* systime.h - System-dependent definitions for time manipulations.
2 Copyright (C) 1993-1994, 2002-2011 Free Software Foundation, Inc. 2 Copyright (C) 1993-1994, 2002-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
diff --git a/src/systty.h b/src/systty.h
index 647cfa23cee..a258635ac09 100644
--- a/src/systty.h
+++ b/src/systty.h
@@ -1,5 +1,5 @@
1/* systty.h - System-dependent definitions for terminals. 1/* systty.h - System-dependent definitions for terminals.
2 Copyright (C) 1993-1994, 2001-2011 Free Software Foundation, Inc. 2 Copyright (C) 1993-1994, 2001-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
diff --git a/src/syswait.h b/src/syswait.h
index 44a824abadb..aea9ea6e588 100644
--- a/src/syswait.h
+++ b/src/syswait.h
@@ -1,5 +1,5 @@
1/* Define wait system call interface for Emacs. 1/* Define wait system call interface for Emacs.
2 Copyright (C) 1993-1995, 2000-2011 Free Software Foundation, Inc. 2 Copyright (C) 1993-1995, 2000-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
diff --git a/src/term.c b/src/term.c
index 036f5797e48..09888bc6dda 100644
--- a/src/term.c
+++ b/src/term.c
@@ -1,5 +1,5 @@
1/* Terminal control module for terminals described by TERMCAP 1/* Terminal control module for terminals described by TERMCAP
2 Copyright (C) 1985-1987, 1993-1995, 1998, 2000-2011 2 Copyright (C) 1985-1987, 1993-1995, 1998, 2000-2012
3 Free Software Foundation, Inc. 3 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
@@ -1809,7 +1809,7 @@ append_glyphless_glyph (struct it *it, int face_id, const char *str)
1809 glyphless_display_method in dispextern.h for the details. 1809 glyphless_display_method in dispextern.h for the details.
1810 1810
1811 FOR_NO_FONT is nonzero if and only if this is for a character that 1811 FOR_NO_FONT is nonzero if and only if this is for a character that
1812 is not supproted by the coding system of the terminal. ACRONYM, if 1812 is not supported by the coding system of the terminal. ACRONYM, if
1813 non-nil, is an acronym string for the character. 1813 non-nil, is an acronym string for the character.
1814 1814
1815 The glyphs actually produced are of type CHAR_GLYPH. */ 1815 The glyphs actually produced are of type CHAR_GLYPH. */
diff --git a/src/termchar.h b/src/termchar.h
index 5ca3cf305c1..d50ee805e03 100644
--- a/src/termchar.h
+++ b/src/termchar.h
@@ -1,5 +1,5 @@
1/* Flags and parameters describing terminal's characteristics. 1/* Flags and parameters describing terminal's characteristics.
2 Copyright (C) 1985-1986, 2001-2011 Free Software Foundation, Inc. 2 Copyright (C) 1985-1986, 2001-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
diff --git a/src/termhooks.h b/src/termhooks.h
index c8e3f4566cd..4cad4825cdd 100644
--- a/src/termhooks.h
+++ b/src/termhooks.h
@@ -1,6 +1,6 @@
1/* Parameters and display hooks for terminal devices. 1/* Parameters and display hooks for terminal devices.
2 2
3Copyright (C) 1985-1986, 1993-1994, 2001-2011 Free Software Foundation, Inc. 3Copyright (C) 1985-1986, 1993-1994, 2001-2012 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
6 6
diff --git a/src/terminal.c b/src/terminal.c
index 67577adf3b4..9579d1dbd66 100644
--- a/src/terminal.c
+++ b/src/terminal.c
@@ -1,5 +1,5 @@
1/* Functions related to terminal devices. 1/* Functions related to terminal devices.
2 Copyright (C) 2005-2011 Free Software Foundation, Inc. 2 Copyright (C) 2005-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
diff --git a/src/terminfo.c b/src/terminfo.c
index c0418984efa..dce7af77bcf 100644
--- a/src/terminfo.c
+++ b/src/terminfo.c
@@ -1,5 +1,5 @@
1/* Interface from Emacs to terminfo. 1/* Interface from Emacs to terminfo.
2 Copyright (C) 1985-1986, 2001-2011 Free Software Foundation, Inc. 2 Copyright (C) 1985-1986, 2001-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
diff --git a/src/termopts.h b/src/termopts.h
index 86b7cf782c4..7bf71aeefe7 100644
--- a/src/termopts.h
+++ b/src/termopts.h
@@ -1,5 +1,5 @@
1/* Flags and parameters describing user options for handling the terminal. 1/* Flags and parameters describing user options for handling the terminal.
2 Copyright (C) 1985-1986, 1990, 2001-2011 Free Software Foundation, Inc. 2 Copyright (C) 1985-1986, 1990, 2001-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
diff --git a/src/textprop.c b/src/textprop.c
index 1a635444b00..f9339c66893 100644
--- a/src/textprop.c
+++ b/src/textprop.c
@@ -1,5 +1,5 @@
1/* Interface code for dealing with text properties. 1/* Interface code for dealing with text properties.
2 Copyright (C) 1993-1995, 1997, 1999-2011 Free Software Foundation, Inc. 2 Copyright (C) 1993-1995, 1997, 1999-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
@@ -2230,7 +2230,7 @@ This also inhibits the use of the `intangible' text property. */);
2230 2230
2231 DEFVAR_LISP ("text-property-default-nonsticky", 2231 DEFVAR_LISP ("text-property-default-nonsticky",
2232 Vtext_property_default_nonsticky, 2232 Vtext_property_default_nonsticky,
2233 doc: /* Alist of properties vs the corresponding non-stickinesses. 2233 doc: /* Alist of properties vs the corresponding non-stickiness.
2234Each element has the form (PROPERTY . NONSTICKINESS). 2234Each element has the form (PROPERTY . NONSTICKINESS).
2235 2235
2236If a character in a buffer has PROPERTY, new text inserted adjacent to 2236If a character in a buffer has PROPERTY, new text inserted adjacent to
diff --git a/src/tparam.h b/src/tparam.h
index dc4cdfaa28c..e845f3e8202 100644
--- a/src/tparam.h
+++ b/src/tparam.h
@@ -1,6 +1,6 @@
1/* Interface definitions for termcap entries. 1/* Interface definitions for termcap entries.
2 2
3Copyright (C) 2011 Free Software Foundation, Inc. 3Copyright (C) 2011-2012 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
6 6
diff --git a/src/undo.c b/src/undo.c
index 7e999fe5120..929955ffcf5 100644
--- a/src/undo.c
+++ b/src/undo.c
@@ -1,5 +1,5 @@
1/* undo handling for GNU Emacs. 1/* undo handling for GNU Emacs.
2 Copyright (C) 1990, 1993-1994, 2000-2011 Free Software Foundation, Inc. 2 Copyright (C) 1990, 1993-1994, 2000-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
diff --git a/src/unexaix.c b/src/unexaix.c
index 22120b0ea03..1bf65b68518 100644
--- a/src/unexaix.c
+++ b/src/unexaix.c
@@ -1,5 +1,5 @@
1/* Dump an executable image. 1/* Dump an executable image.
2 Copyright (C) 1985-1988, 1999, 2001-2011 Free Software Foundation, Inc. 2 Copyright (C) 1985-1988, 1999, 2001-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
diff --git a/src/unexcoff.c b/src/unexcoff.c
index ef86a400239..5b269737839 100644
--- a/src/unexcoff.c
+++ b/src/unexcoff.c
@@ -1,4 +1,4 @@
1/* Copyright (C) 1985-1988, 1992-1994, 2001-2011 Free Software Foundation, Inc. 1/* Copyright (C) 1985-1988, 1992-1994, 2001-2012 Free Software Foundation, Inc.
2 2
3This file is part of GNU Emacs. 3This file is part of GNU Emacs.
4 4
diff --git a/src/unexcw.c b/src/unexcw.c
index 62df82ec3bc..eae534cf4dd 100644
--- a/src/unexcw.c
+++ b/src/unexcw.c
@@ -1,7 +1,7 @@
1/* unexec() support for Cygwin; 1/* unexec() support for Cygwin;
2 complete rewrite of xemacs Cygwin unexec() code 2 complete rewrite of xemacs Cygwin unexec() code
3 3
4 Copyright (C) 2004-2011 Free Software Foundation, Inc. 4 Copyright (C) 2004-2012 Free Software Foundation, Inc.
5 5
6This file is part of GNU Emacs. 6This file is part of GNU Emacs.
7 7
diff --git a/src/unexelf.c b/src/unexelf.c
index 1715c3670ca..ac9c9e75764 100644
--- a/src/unexelf.c
+++ b/src/unexelf.c
@@ -1,4 +1,4 @@
1/* Copyright (C) 1985-1988, 1990, 1992, 1999-2011 1/* Copyright (C) 1985-1988, 1990, 1992, 1999-2012
2 Free Software Foundation, Inc. 2 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
diff --git a/src/unexmacosx.c b/src/unexmacosx.c
index a4c2f241c9f..2e77d3e17bc 100644
--- a/src/unexmacosx.c
+++ b/src/unexmacosx.c
@@ -1,5 +1,5 @@
1/* Dump Emacs in Mach-O format for use on Mac OS X. 1/* Dump Emacs in Mach-O format for use on Mac OS X.
2 Copyright (C) 2001-2011 Free Software Foundation, Inc. 2 Copyright (C) 2001-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
diff --git a/src/unexw32.c b/src/unexw32.c
index e5440c2f500..52b2ec4bf2b 100644
--- a/src/unexw32.c
+++ b/src/unexw32.c
@@ -1,5 +1,5 @@
1/* unexec for GNU Emacs on Windows NT. 1/* unexec for GNU Emacs on Windows NT.
2 Copyright (C) 1994, 2001-2011 Free Software Foundation, Inc. 2 Copyright (C) 1994, 2001-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
diff --git a/src/vm-limit.c b/src/vm-limit.c
index fc847a295dd..94725044048 100644
--- a/src/vm-limit.c
+++ b/src/vm-limit.c
@@ -1,5 +1,5 @@
1/* Functions for memory limit warnings. 1/* Functions for memory limit warnings.
2 Copyright (C) 1990, 1992, 2001-2011 Free Software Foundation, Inc. 2 Copyright (C) 1990, 1992, 2001-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
diff --git a/src/w16select.c b/src/w16select.c
index cae7a6f82dd..185bf252895 100644
--- a/src/w16select.c
+++ b/src/w16select.c
@@ -1,6 +1,6 @@
1/* 16-bit Windows Selection processing for emacs on MS-Windows 1/* 16-bit Windows Selection processing for emacs on MS-Windows
2 2
3Copyright (C) 1996-1997, 2001-2011 Free Software Foundation, Inc. 3Copyright (C) 1996-1997, 2001-2012 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
6 6
@@ -114,7 +114,7 @@ identify_winoldap_version (void)
114 return regs.x.ax; 114 return regs.x.ax;
115} 115}
116 116
117/* Open the clipboard, return non-zero if successfull. */ 117/* Open the clipboard, return non-zero if successful. */
118unsigned 118unsigned
119open_clipboard (void) 119open_clipboard (void)
120{ 120{
@@ -137,7 +137,7 @@ open_clipboard (void)
137 return regs.x.ax; 137 return regs.x.ax;
138} 138}
139 139
140/* Empty clipboard, return non-zero if successfull. */ 140/* Empty clipboard, return non-zero if successful. */
141unsigned 141unsigned
142empty_clipboard (void) 142empty_clipboard (void)
143{ 143{
@@ -207,7 +207,7 @@ free_xfer_buf (void)
207 } 207 }
208} 208}
209 209
210/* Copy data into the clipboard, return zero if successfull. */ 210/* Copy data into the clipboard, return zero if successful. */
211unsigned 211unsigned
212set_clipboard_data (unsigned Format, void *Data, unsigned Size, int Raw) 212set_clipboard_data (unsigned Format, void *Data, unsigned Size, int Raw)
213{ 213{
@@ -405,7 +405,7 @@ get_clipboard_data (unsigned Format, void *Data, unsigned Size, int Raw)
405 return (unsigned) (dp - (unsigned char *)Data - 1); 405 return (unsigned) (dp - (unsigned char *)Data - 1);
406} 406}
407 407
408/* Close clipboard, return non-zero if successfull. */ 408/* Close clipboard, return non-zero if successful. */
409unsigned 409unsigned
410close_clipboard (void) 410close_clipboard (void)
411{ 411{
@@ -730,4 +730,3 @@ After the communication, this variable is set to nil. */);
730} 730}
731 731
732#endif /* MSDOS */ 732#endif /* MSDOS */
733
diff --git a/src/w32.c b/src/w32.c
index b26327462d8..f610a36ecf4 100644
--- a/src/w32.c
+++ b/src/w32.c
@@ -1,5 +1,5 @@
1/* Utility and Unix shadow routines for GNU Emacs on the Microsoft W32 API. 1/* Utility and Unix shadow routines for GNU Emacs on the Microsoft W32 API.
2 Copyright (C) 1994-1995, 2000-2011 Free Software Foundation, Inc. 2 Copyright (C) 1994-1995, 2000-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
@@ -2894,6 +2894,8 @@ sys_rename (const char * oldname, const char * newname)
2894{ 2894{
2895 BOOL result; 2895 BOOL result;
2896 char temp[MAX_PATH]; 2896 char temp[MAX_PATH];
2897 int newname_dev;
2898 int oldname_dev;
2897 2899
2898 /* MoveFile on Windows 95 doesn't correctly change the short file name 2900 /* MoveFile on Windows 95 doesn't correctly change the short file name
2899 alias in a number of circumstances (it is not easy to predict when 2901 alias in a number of circumstances (it is not easy to predict when
@@ -2910,6 +2912,9 @@ sys_rename (const char * oldname, const char * newname)
2910 2912
2911 strcpy (temp, map_w32_filename (oldname, NULL)); 2913 strcpy (temp, map_w32_filename (oldname, NULL));
2912 2914
2915 /* volume_info is set indirectly by map_w32_filename. */
2916 oldname_dev = volume_info.serialnum;
2917
2913 if (os_subtype == OS_WIN95) 2918 if (os_subtype == OS_WIN95)
2914 { 2919 {
2915 char * o; 2920 char * o;
@@ -2953,13 +2958,38 @@ sys_rename (const char * oldname, const char * newname)
2953 all the permutations of shared or subst'd drives, etc.) */ 2958 all the permutations of shared or subst'd drives, etc.) */
2954 2959
2955 newname = map_w32_filename (newname, NULL); 2960 newname = map_w32_filename (newname, NULL);
2961
2962 /* volume_info is set indirectly by map_w32_filename. */
2963 newname_dev = volume_info.serialnum;
2964
2956 result = rename (temp, newname); 2965 result = rename (temp, newname);
2957 2966
2958 if (result < 0 2967 if (result < 0)
2959 && errno == EEXIST 2968 {
2960 && _chmod (newname, 0666) == 0 2969
2961 && _unlink (newname) == 0) 2970 if (errno == EACCES
2962 result = rename (temp, newname); 2971 && newname_dev != oldname_dev)
2972 {
2973 /* The implementation of `rename' on Windows does not return
2974 errno = EXDEV when you are moving a directory to a
2975 different storage device (ex. logical disk). It returns
2976 EACCES instead. So here we handle such situations and
2977 return EXDEV. */
2978 DWORD attributes;
2979
2980 if ((attributes = GetFileAttributes (temp)) != -1
2981 && attributes & FILE_ATTRIBUTE_DIRECTORY)
2982 errno = EXDEV;
2983 }
2984 else if (errno == EEXIST)
2985 {
2986 if (_chmod (newname, 0666) != 0)
2987 return result;
2988 if (_unlink (newname) != 0)
2989 return result;
2990 result = rename (temp, newname);
2991 }
2992 }
2963 2993
2964 return result; 2994 return result;
2965} 2995}
diff --git a/src/w32.h b/src/w32.h
index a3ca1130ce6..2866cb2f34a 100644
--- a/src/w32.h
+++ b/src/w32.h
@@ -2,7 +2,7 @@
2#define EMACS_W32_H 2#define EMACS_W32_H
3 3
4/* Support routines for the NT version of Emacs. 4/* Support routines for the NT version of Emacs.
5 Copyright (C) 1994, 2001-2011 Free Software Foundation, Inc. 5 Copyright (C) 1994, 2001-2012 Free Software Foundation, Inc.
6 6
7This file is part of GNU Emacs. 7This file is part of GNU Emacs.
8 8
diff --git a/src/w32console.c b/src/w32console.c
index 30c71f1c276..e8b0f621b4f 100644
--- a/src/w32console.c
+++ b/src/w32console.c
@@ -1,5 +1,5 @@
1/* Terminal hooks for GNU Emacs on the Microsoft W32 API. 1/* Terminal hooks for GNU Emacs on the Microsoft W32 API.
2 Copyright (C) 1992, 1999, 2001-2011 Free Software Foundation, Inc. 2 Copyright (C) 1992, 1999, 2001-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
diff --git a/src/w32fns.c b/src/w32fns.c
index 20284108185..d7a6eefab67 100644
--- a/src/w32fns.c
+++ b/src/w32fns.c
@@ -1,6 +1,6 @@
1/* Graphical user interface functions for the Microsoft W32 API. 1/* Graphical user interface functions for the Microsoft W32 API.
2 2
3Copyright (C) 1989, 1992-2011 Free Software Foundation, Inc. 3Copyright (C) 1989, 1992-2012 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
6 6
diff --git a/src/w32font.c b/src/w32font.c
index 5cc37c0e74f..dab9f4c61b4 100644
--- a/src/w32font.c
+++ b/src/w32font.c
@@ -1,5 +1,5 @@
1/* Font backend for the Microsoft W32 API. 1/* Font backend for the Microsoft W32 API.
2 Copyright (C) 2007-2011 Free Software Foundation, Inc. 2 Copyright (C) 2007-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
@@ -786,7 +786,7 @@ w32font_free_outline (struct font *font, void *outline);
786 Optional. 786 Optional.
787 Get coordinates of the INDEXth anchor point of the glyph whose 787 Get coordinates of the INDEXth anchor point of the glyph whose
788 code is CODE. Store the coordinates in *X and *Y. Return 0 if 788 code is CODE. Store the coordinates in *X and *Y. Return 0 if
789 the operations was successfull. Otherwise return -1. 789 the operations was successful. Otherwise return -1.
790static int 790static int
791w32font_anchor_point (struct font *font, unsigned code, 791w32font_anchor_point (struct font *font, unsigned code,
792 int index, int *x, int *y); 792 int index, int *x, int *y);
diff --git a/src/w32font.h b/src/w32font.h
index f77866b869f..40edafa146d 100644
--- a/src/w32font.h
+++ b/src/w32font.h
@@ -1,5 +1,5 @@
1/* Shared GDI and Uniscribe Font backend declarations for the W32 API. 1/* Shared GDI and Uniscribe Font backend declarations for the W32 API.
2 Copyright (C) 2007-2011 Free Software Foundation, Inc. 2 Copyright (C) 2007-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
diff --git a/src/w32gui.h b/src/w32gui.h
index 2ba9cb53e22..1e800e3cf3a 100644
--- a/src/w32gui.h
+++ b/src/w32gui.h
@@ -1,5 +1,5 @@
1/* Definitions and headers for communication on the Microsoft W32 API. 1/* Definitions and headers for communication on the Microsoft W32 API.
2 Copyright (C) 1995, 2001-2011 Free Software Foundation, Inc. 2 Copyright (C) 1995, 2001-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
diff --git a/src/w32heap.c b/src/w32heap.c
index 477c11a5160..35ac4cbf31f 100644
--- a/src/w32heap.c
+++ b/src/w32heap.c
@@ -1,5 +1,5 @@
1/* Heap management routines for GNU Emacs on the Microsoft W32 API. 1/* Heap management routines for GNU Emacs on the Microsoft W32 API.
2 Copyright (C) 1994, 2001-2011 Free Software Foundation, Inc. 2 Copyright (C) 1994, 2001-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
diff --git a/src/w32heap.h b/src/w32heap.h
index e75bfcf36ec..b2d51655098 100644
--- a/src/w32heap.h
+++ b/src/w32heap.h
@@ -1,5 +1,5 @@
1/* Heap management routines (including unexec) for GNU Emacs on Windows NT. 1/* Heap management routines (including unexec) for GNU Emacs on Windows NT.
2 Copyright (C) 1994, 2001-2011 Free Software Foundation, Inc. 2 Copyright (C) 1994, 2001-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
diff --git a/src/w32inevt.c b/src/w32inevt.c
index fddde61663f..e7a8bf629d6 100644
--- a/src/w32inevt.c
+++ b/src/w32inevt.c
@@ -1,5 +1,5 @@
1/* Input event support for Emacs on the Microsoft W32 API. 1/* Input event support for Emacs on the Microsoft W32 API.
2 Copyright (C) 1992-1993, 1995, 2001-2011 Free Software Foundation, Inc. 2 Copyright (C) 1992-1993, 1995, 2001-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
diff --git a/src/w32inevt.h b/src/w32inevt.h
index 9ca52508151..d228637abfb 100644
--- a/src/w32inevt.h
+++ b/src/w32inevt.h
@@ -1,5 +1,5 @@
1/* Input routines for GNU Emacs on the Microsoft W32 API. 1/* Input routines for GNU Emacs on the Microsoft W32 API.
2 Copyright (C) 1995, 2001-2011 Free Software Foundation, Inc. 2 Copyright (C) 1995, 2001-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
diff --git a/src/w32menu.c b/src/w32menu.c
index 369b75877e8..4b3aa4f8047 100644
--- a/src/w32menu.c
+++ b/src/w32menu.c
@@ -1,5 +1,5 @@
1/* Menu support for GNU Emacs on the Microsoft W32 API. 1/* Menu support for GNU Emacs on the Microsoft W32 API.
2 Copyright (C) 1986, 1988, 1993-1994, 1996, 1998-1999, 2001-2011 2 Copyright (C) 1986, 1988, 1993-1994, 1996, 1998-1999, 2001-2012
3 Free Software Foundation, Inc. 3 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
diff --git a/src/w32proc.c b/src/w32proc.c
index 254a32503c4..f7982f36913 100644
--- a/src/w32proc.c
+++ b/src/w32proc.c
@@ -1,5 +1,5 @@
1/* Process support for GNU Emacs on the Microsoft W32 API. 1/* Process support for GNU Emacs on the Microsoft W32 API.
2 Copyright (C) 1992, 1995, 1999-2011 Free Software Foundation, Inc. 2 Copyright (C) 1992, 1995, 1999-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
diff --git a/src/w32reg.c b/src/w32reg.c
index 18374431062..ec251cfd837 100644
--- a/src/w32reg.c
+++ b/src/w32reg.c
@@ -1,5 +1,5 @@
1/* Emulate the X Resource Manager through the registry. 1/* Emulate the X Resource Manager through the registry.
2 Copyright (C) 1990, 1993-1994, 2001-2011 Free Software Foundation, Inc. 2 Copyright (C) 1990, 1993-1994, 2001-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
diff --git a/src/w32select.c b/src/w32select.c
index 392cb07a96d..c60376b3a91 100644
--- a/src/w32select.c
+++ b/src/w32select.c
@@ -1,6 +1,6 @@
1/* Selection processing for Emacs on the Microsoft W32 API. 1/* Selection processing for Emacs on the Microsoft W32 API.
2 2
3Copyright (C) 1993-1994, 2001-2011 Free Software Foundation, Inc. 3Copyright (C) 1993-1994, 2001-2012 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
6 6
diff --git a/src/w32term.c b/src/w32term.c
index 6df218326d1..f764ad9d218 100644
--- a/src/w32term.c
+++ b/src/w32term.c
@@ -1,6 +1,6 @@
1/* Implementation of GUI terminal on the Microsoft W32 API. 1/* Implementation of GUI terminal on the Microsoft W32 API.
2 2
3Copyright (C) 1989, 1993-2011 Free Software Foundation, Inc. 3Copyright (C) 1989, 1993-2012 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
6 6
@@ -3286,7 +3286,7 @@ w32_mouse_position (FRAME_PTR *fp, int insist, Lisp_Object *bar_window,
3286 ***********************************************************************/ 3286 ***********************************************************************/
3287 3287
3288/* Handle mouse button event on the tool-bar of frame F, at 3288/* Handle mouse button event on the tool-bar of frame F, at
3289 frame-relative coordinates X/Y. EVENT_TYPE is either ButtionPress 3289 frame-relative coordinates X/Y. EVENT_TYPE is either ButtonPress
3290 or ButtonRelease. */ 3290 or ButtonRelease. */
3291 3291
3292static void 3292static void
@@ -3388,7 +3388,7 @@ w32_set_scroll_bar_thumb (struct scroll_bar *bar,
3388 if (whole) 3388 if (whole)
3389 { 3389 {
3390 /* Position scroll bar at rock bottom if the bottom of the 3390 /* Position scroll bar at rock bottom if the bottom of the
3391 buffer is visible. This avoids shinking the thumb away 3391 buffer is visible. This avoids shrinking the thumb away
3392 to nothing if it is held at the bottom of the buffer. */ 3392 to nothing if it is held at the bottom of the buffer. */
3393 if (position + portion >= whole && !draggingp) 3393 if (position + portion >= whole && !draggingp)
3394 { 3394 {
@@ -3556,7 +3556,7 @@ x_scroll_bar_remove (struct scroll_bar *bar)
3556 /* Destroy the window. */ 3556 /* Destroy the window. */
3557 my_destroy_window (f, SCROLL_BAR_W32_WINDOW (bar)); 3557 my_destroy_window (f, SCROLL_BAR_W32_WINDOW (bar));
3558 3558
3559 /* Disassociate this scroll bar from its window. */ 3559 /* Dissociate this scroll bar from its window. */
3560 XWINDOW (bar->window)->vertical_scroll_bar = Qnil; 3560 XWINDOW (bar->window)->vertical_scroll_bar = Qnil;
3561 3561
3562 UNBLOCK_INPUT; 3562 UNBLOCK_INPUT;
diff --git a/src/w32term.h b/src/w32term.h
index f587ee11af9..4528bbd5c0a 100644
--- a/src/w32term.h
+++ b/src/w32term.h
@@ -1,5 +1,5 @@
1/* Definitions and headers for communication on the Microsoft W32 API. 1/* Definitions and headers for communication on the Microsoft W32 API.
2 Copyright (C) 1995, 2001-2011 Free Software Foundation, Inc. 2 Copyright (C) 1995, 2001-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
diff --git a/src/w32uniscribe.c b/src/w32uniscribe.c
index 63da3b9e962..5e5c8e88b2b 100644
--- a/src/w32uniscribe.c
+++ b/src/w32uniscribe.c
@@ -1,5 +1,5 @@
1/* Font backend for the Microsoft W32 Uniscribe API. 1/* Font backend for the Microsoft W32 Uniscribe API.
2 Copyright (C) 2008-2011 Free Software Foundation, Inc. 2 Copyright (C) 2008-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
diff --git a/src/w32xfns.c b/src/w32xfns.c
index fc2d5904d67..0b0fc26fb6a 100644
--- a/src/w32xfns.c
+++ b/src/w32xfns.c
@@ -1,5 +1,5 @@
1/* Functions taken directly from X sources for use with the Microsoft W32 API. 1/* Functions taken directly from X sources for use with the Microsoft W32 API.
2 Copyright (C) 1989, 1992-1995, 1999, 2001-2011 Free Software Foundation, Inc. 2 Copyright (C) 1989, 1992-1995, 1999, 2001-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
diff --git a/src/widget.c b/src/widget.c
index 96bfd4787e9..0cb1013b971 100644
--- a/src/widget.c
+++ b/src/widget.c
@@ -1,5 +1,5 @@
1/* The emacs frame widget. 1/* The emacs frame widget.
2 Copyright (C) 1992-1993, 2000-2011 Free Software Foundation, Inc. 2 Copyright (C) 1992-1993, 2000-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
diff --git a/src/widget.h b/src/widget.h
index 11041d54ad0..03838a01415 100644
--- a/src/widget.h
+++ b/src/widget.h
@@ -1,5 +1,5 @@
1/* The emacs frame widget public header file. 1/* The emacs frame widget public header file.
2 Copyright (C) 1993, 2001-2011 Free Software Foundation, Inc. 2 Copyright (C) 1993, 2001-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
diff --git a/src/widgetprv.h b/src/widgetprv.h
index 997a70e026c..00e3eeb1ee1 100644
--- a/src/widgetprv.h
+++ b/src/widgetprv.h
@@ -1,5 +1,5 @@
1/* The emacs frame widget private header file. 1/* The emacs frame widget private header file.
2 Copyright (C) 1993, 2001-2011 Free Software Foundation, Inc. 2 Copyright (C) 1993, 2001-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
diff --git a/src/window.c b/src/window.c
index 8337ede50d1..27e4914ad1a 100644
--- a/src/window.c
+++ b/src/window.c
@@ -1,6 +1,6 @@
1/* Window creation, deletion and examination for GNU Emacs. 1/* Window creation, deletion and examination for GNU Emacs.
2 Does not include redisplay. 2 Does not include redisplay.
3 Copyright (C) 1985-1987, 1993-1998, 2000-2011 3 Copyright (C) 1985-1987, 1993-1998, 2000-2012
4 Free Software Foundation, Inc. 4 Free Software Foundation, Inc.
5 5
6This file is part of GNU Emacs. 6This file is part of GNU Emacs.
diff --git a/src/window.h b/src/window.h
index b4e268b1a34..ea127ca95a8 100644
--- a/src/window.h
+++ b/src/window.h
@@ -1,5 +1,5 @@
1/* Window definitions for GNU Emacs. 1/* Window definitions for GNU Emacs.
2 Copyright (C) 1985-1986, 1993, 1995, 1997-2011 2 Copyright (C) 1985-1986, 1993, 1995, 1997-2012
3 Free Software Foundation, Inc. 3 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
diff --git a/src/xdisp.c b/src/xdisp.c
index 4eef9e05231..d3a1dfc4b20 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -1,6 +1,6 @@
1/* Display generation from window structure and buffer text. 1/* Display generation from window structure and buffer text.
2 2
3Copyright (C) 1985-1988, 1993-1995, 1997-2011 Free Software Foundation, Inc. 3Copyright (C) 1985-1988, 1993-1995, 1997-2012 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
6 6
@@ -4093,10 +4093,11 @@ handle_invisible_prop (struct it *it)
4093 while (invis_p); 4093 while (invis_p);
4094 4094
4095 /* The position newpos is now either ZV or on visible text. */ 4095 /* The position newpos is now either ZV or on visible text. */
4096 if (it->bidi_p && newpos < ZV) 4096 if (it->bidi_p)
4097 { 4097 {
4098 ptrdiff_t bpos = CHAR_TO_BYTE (newpos); 4098 ptrdiff_t bpos = CHAR_TO_BYTE (newpos);
4099 int on_newline = FETCH_BYTE (bpos) == '\n'; 4099 int on_newline =
4100 bpos == ZV_BYTE || FETCH_BYTE (bpos) == '\n';
4100 int after_newline = 4101 int after_newline =
4101 newpos <= BEGV || FETCH_BYTE (bpos - 1) == '\n'; 4102 newpos <= BEGV || FETCH_BYTE (bpos - 1) == '\n';
4102 4103
@@ -4114,16 +4115,16 @@ handle_invisible_prop (struct it *it)
4114 4115
4115 SET_TEXT_POS (tpos, newpos, bpos); 4116 SET_TEXT_POS (tpos, newpos, bpos);
4116 reseat_1 (it, tpos, 0); 4117 reseat_1 (it, tpos, 0);
4117 /* If we reseat on a newline, we need to prep the 4118 /* If we reseat on a newline/ZV, we need to prep the
4118 bidi iterator for advancing to the next character 4119 bidi iterator for advancing to the next character
4119 after the newline, keeping the current paragraph 4120 after the newline/EOB, keeping the current paragraph
4120 direction (so that PRODUCE_GLYPHS does TRT wrt 4121 direction (so that PRODUCE_GLYPHS does TRT wrt
4121 prepending/appending glyphs to a glyph row). */ 4122 prepending/appending glyphs to a glyph row). */
4122 if (on_newline) 4123 if (on_newline)
4123 { 4124 {
4124 it->bidi_it.first_elt = 0; 4125 it->bidi_it.first_elt = 0;
4125 it->bidi_it.paragraph_dir = pdir; 4126 it->bidi_it.paragraph_dir = pdir;
4126 it->bidi_it.ch = '\n'; 4127 it->bidi_it.ch = (bpos == ZV_BYTE) ? -1 : '\n';
4127 it->bidi_it.nchars = 1; 4128 it->bidi_it.nchars = 1;
4128 it->bidi_it.ch_len = 1; 4129 it->bidi_it.ch_len = 1;
4129 } 4130 }
@@ -4341,7 +4342,7 @@ handle_display_spec (struct it *it, Lisp_Object spec, Lisp_Object object,
4341 int rv; 4342 int rv;
4342 4343
4343 if (CONSP (spec) 4344 if (CONSP (spec)
4344 /* Simple specerties. */ 4345 /* Simple specifications. */
4345 && !EQ (XCAR (spec), Qimage) 4346 && !EQ (XCAR (spec), Qimage)
4346 && !EQ (XCAR (spec), Qspace) 4347 && !EQ (XCAR (spec), Qspace)
4347 && !EQ (XCAR (spec), Qwhen) 4348 && !EQ (XCAR (spec), Qwhen)
@@ -13651,7 +13652,7 @@ set_cursor_from_row (struct window *w, struct glyph_row *row,
13651 /* Non-zero means we've seen at least one glyph that came from a 13652 /* Non-zero means we've seen at least one glyph that came from a
13652 display string. */ 13653 display string. */
13653 int string_seen = 0; 13654 int string_seen = 0;
13654 /* Largest and smalles buffer positions seen so far during scan of 13655 /* Largest and smallest buffer positions seen so far during scan of
13655 glyph row. */ 13656 glyph row. */
13656 ptrdiff_t bpos_max = pos_before; 13657 ptrdiff_t bpos_max = pos_before;
13657 ptrdiff_t bpos_min = pos_after; 13658 ptrdiff_t bpos_min = pos_after;
@@ -28331,7 +28332,11 @@ all the functions in the list are called, with the frame as argument. */);
28331Each function is called with two arguments, the window and its new 28332Each function is called with two arguments, the window and its new
28332display-start position. Note that these functions are also called by 28333display-start position. Note that these functions are also called by
28333`set-window-buffer'. Also note that the value of `window-end' is not 28334`set-window-buffer'. Also note that the value of `window-end' is not
28334valid when these functions are called. */); 28335valid when these functions are called.
28336
28337Warning: Do not use this feature to alter the way the window
28338is scrolled. It is not designed for that, and such use probably won't
28339work. */);
28335 Vwindow_scroll_functions = Qnil; 28340 Vwindow_scroll_functions = Qnil;
28336 28341
28337 DEFVAR_LISP ("window-text-change-functions", 28342 DEFVAR_LISP ("window-text-change-functions",
diff --git a/src/xfaces.c b/src/xfaces.c
index 5a7b39fcca5..151da1e032b 100644
--- a/src/xfaces.c
+++ b/src/xfaces.c
@@ -1,6 +1,6 @@
1/* xfaces.c -- "Face" primitives. 1/* xfaces.c -- "Face" primitives.
2 2
3Copyright (C) 1993-1994, 1998-2011 Free Software Foundation, Inc. 3Copyright (C) 1993-1994, 1998-2012 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
6 6
diff --git a/src/xfns.c b/src/xfns.c
index 642b3602833..b0cef7221f8 100644
--- a/src/xfns.c
+++ b/src/xfns.c
@@ -1,6 +1,6 @@
1/* Functions for the X window system. 1/* Functions for the X window system.
2 2
3Copyright (C) 1989, 1992-2011 Free Software Foundation, Inc. 3Copyright (C) 1989, 1992-2012 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
6 6
@@ -3519,9 +3519,21 @@ FRAME nil means use the selected frame. */)
3519 3519
3520 BLOCK_INPUT; 3520 BLOCK_INPUT;
3521 x_catch_errors (dpy); 3521 x_catch_errors (dpy);
3522 XSetInputFocus (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f), 3522
3523 RevertToParent, CurrentTime); 3523 if (FRAME_X_EMBEDDED_P (f))
3524 x_ewmh_activate_frame (f); 3524 {
3525 /* For Xembedded frames, normally the embedder forwards key
3526 events. See XEmbed Protocol Specification at
3527 http://freedesktop.org/wiki/Specifications/xembed-spec */
3528 xembed_request_focus (f);
3529 }
3530 else
3531 {
3532 XSetInputFocus (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f),
3533 RevertToParent, CurrentTime);
3534 x_ewmh_activate_frame (f);
3535 }
3536
3525 x_uncatch_errors (); 3537 x_uncatch_errors ();
3526 UNBLOCK_INPUT; 3538 UNBLOCK_INPUT;
3527 3539
diff --git a/src/xfont.c b/src/xfont.c
index 73f1e130be0..bde76c0ba3c 100644
--- a/src/xfont.c
+++ b/src/xfont.c
@@ -1,5 +1,5 @@
1/* xfont.c -- X core font driver. 1/* xfont.c -- X core font driver.
2 Copyright (C) 2006-2011 Free Software Foundation, Inc. 2 Copyright (C) 2006-2012 Free Software Foundation, Inc.
3 Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011 3 Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011
4 National Institute of Advanced Industrial Science and Technology (AIST) 4 National Institute of Advanced Industrial Science and Technology (AIST)
5 Registration Number H13PRO009 5 Registration Number H13PRO009
diff --git a/src/xftfont.c b/src/xftfont.c
index c27a4fcf91a..bc0c56a0fe0 100644
--- a/src/xftfont.c
+++ b/src/xftfont.c
@@ -1,5 +1,5 @@
1/* xftfont.c -- XFT font driver. 1/* xftfont.c -- XFT font driver.
2 Copyright (C) 2006-2011 Free Software Foundation, Inc. 2 Copyright (C) 2006-2012 Free Software Foundation, Inc.
3 Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011 3 Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011
4 National Institute of Advanced Industrial Science and Technology (AIST) 4 National Institute of Advanced Industrial Science and Technology (AIST)
5 Registration Number H13PRO009 5 Registration Number H13PRO009
@@ -654,7 +654,7 @@ xftfont_draw (struct glyph_string *s, int from, int to, int x, int y, int with_b
654 654
655 if (with_background) 655 if (with_background)
656 XftDrawRect (xft_draw, &bg, 656 XftDrawRect (xft_draw, &bg,
657 x, y - face->font->ascent, s->width, face->font->height); 657 x, y - s->font->ascent, s->width, s->font->height);
658 code = alloca (sizeof (FT_UInt) * len); 658 code = alloca (sizeof (FT_UInt) * len);
659 for (i = 0; i < len; i++) 659 for (i = 0; i < len; i++)
660 code[i] = ((XCHAR2B_BYTE1 (s->char2b + from + i) << 8) 660 code[i] = ((XCHAR2B_BYTE1 (s->char2b + from + i) << 8)
diff --git a/src/xgselect.c b/src/xgselect.c
index 339ec475117..80dbfc32aee 100644
--- a/src/xgselect.c
+++ b/src/xgselect.c
@@ -1,6 +1,6 @@
1/* Function for handling the GLib event loop. 1/* Function for handling the GLib event loop.
2 2
3Copyright (C) 2009-2011 Free Software Foundation, Inc. 3Copyright (C) 2009-2012 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
6 6
diff --git a/src/xgselect.h b/src/xgselect.h
index 1d3a8508b9c..15d7cd5fdd3 100644
--- a/src/xgselect.h
+++ b/src/xgselect.h
@@ -1,6 +1,6 @@
1/* Header for xg_select. 1/* Header for xg_select.
2 2
3Copyright (C) 2009-2011 Free Software Foundation, Inc. 3Copyright (C) 2009-2012 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
6 6
diff --git a/src/xmenu.c b/src/xmenu.c
index b766f142e2d..79ead5f598c 100644
--- a/src/xmenu.c
+++ b/src/xmenu.c
@@ -1,6 +1,6 @@
1/* X Communication module for terminals which understand the X protocol. 1/* X Communication module for terminals which understand the X protocol.
2 2
3Copyright (C) 1986, 1988, 1993-1994, 1996, 1999-2011 3Copyright (C) 1986, 1988, 1993-1994, 1996, 1999-2012
4 Free Software Foundation, Inc. 4 Free Software Foundation, Inc.
5 5
6This file is part of GNU Emacs. 6This file is part of GNU Emacs.
@@ -102,6 +102,9 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
102 102
103#ifdef USE_GTK 103#ifdef USE_GTK
104#include "gtkutil.h" 104#include "gtkutil.h"
105#ifdef HAVE_GTK3
106#include "xgselect.h"
107#endif
105#endif 108#endif
106 109
107#include "menu.h" 110#include "menu.h"
@@ -408,7 +411,15 @@ x_menu_wait_for_event (void *data)
408 else 411 else
409 ntp = &next_time; 412 ntp = &next_time;
410 413
414#ifdef HAVE_GTK3
415 /* Gtk3 have arrows on menus when they don't fit. When the pointer is
416 over an arrow, a timeout scrolls it a bit. Use xg_select so that
417 timeout gets triggered. */
418
419 xg_select (n + 1, &read_fds, (SELECT_TYPE *)0, (SELECT_TYPE *)0, ntp);
420#else
411 select (n + 1, &read_fds, (SELECT_TYPE *)0, (SELECT_TYPE *)0, ntp); 421 select (n + 1, &read_fds, (SELECT_TYPE *)0, (SELECT_TYPE *)0, ntp);
422#endif
412 } 423 }
413} 424}
414#endif /* ! MSDOS */ 425#endif /* ! MSDOS */
@@ -1435,6 +1446,13 @@ create_and_show_popup_menu (FRAME_PTR f, widget_value *first_wv, int x, int y,
1435 GtkMenuPositionFunc pos_func = 0; /* Pop up at pointer. */ 1446 GtkMenuPositionFunc pos_func = 0; /* Pop up at pointer. */
1436 struct next_popup_x_y popup_x_y; 1447 struct next_popup_x_y popup_x_y;
1437 ptrdiff_t specpdl_count = SPECPDL_INDEX (); 1448 ptrdiff_t specpdl_count = SPECPDL_INDEX ();
1449 int use_pos_func = ! for_click;
1450
1451#ifdef HAVE_GTK3
1452 /* Always use position function for Gtk3. Otherwise menus may become
1453 too small to show anything. */
1454 use_pos_func = 1;
1455#endif
1438 1456
1439 if (! FRAME_X_P (f)) 1457 if (! FRAME_X_P (f))
1440 abort (); 1458 abort ();
@@ -1446,7 +1464,7 @@ create_and_show_popup_menu (FRAME_PTR f, widget_value *first_wv, int x, int y,
1446 G_CALLBACK (menu_highlight_callback)); 1464 G_CALLBACK (menu_highlight_callback));
1447 xg_crazy_callback_abort = 0; 1465 xg_crazy_callback_abort = 0;
1448 1466
1449 if (! for_click) 1467 if (use_pos_func)
1450 { 1468 {
1451 /* Not invoked by a click. pop up at x/y. */ 1469 /* Not invoked by a click. pop up at x/y. */
1452 pos_func = menu_position_func; 1470 pos_func = menu_position_func;
@@ -1461,7 +1479,8 @@ create_and_show_popup_menu (FRAME_PTR f, widget_value *first_wv, int x, int y,
1461 1479
1462 i = 0; /* gtk_menu_popup needs this to be 0 for a non-button popup. */ 1480 i = 0; /* gtk_menu_popup needs this to be 0 for a non-button popup. */
1463 } 1481 }
1464 else 1482
1483 if (for_click)
1465 { 1484 {
1466 for (i = 0; i < 5; i++) 1485 for (i = 0; i < 5; i++)
1467 if (FRAME_X_DISPLAY_INFO (f)->grabbed & (1 << i)) 1486 if (FRAME_X_DISPLAY_INFO (f)->grabbed & (1 << i))
diff --git a/src/xml.c b/src/xml.c
index 0b39f3e6031..8c88226b505 100644
--- a/src/xml.c
+++ b/src/xml.c
@@ -1,5 +1,5 @@
1/* Interface to libxml2. 1/* Interface to libxml2.
2 Copyright (C) 2010-2011 Free Software Foundation, Inc. 2 Copyright (C) 2010-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
diff --git a/src/xrdb.c b/src/xrdb.c
index 0c916da9ff8..58ca682c757 100644
--- a/src/xrdb.c
+++ b/src/xrdb.c
@@ -1,5 +1,5 @@
1/* Deal with the X Resource Manager. 1/* Deal with the X Resource Manager.
2 Copyright (C) 1990, 1993-1994, 2000-2011 Free Software Foundation, Inc. 2 Copyright (C) 1990, 1993-1994, 2000-2012 Free Software Foundation, Inc.
3 3
4Author: Joseph Arceneaux 4Author: Joseph Arceneaux
5Created: 4/90 5Created: 4/90
diff --git a/src/xselect.c b/src/xselect.c
index 099b1670e4d..f7b65809443 100644
--- a/src/xselect.c
+++ b/src/xselect.c
@@ -1,5 +1,5 @@
1/* X Selection processing for Emacs. 1/* X Selection processing for Emacs.
2 Copyright (C) 1993-1997, 2000-2011 Free Software Foundation, Inc. 2 Copyright (C) 1993-1997, 2000-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
@@ -756,7 +756,7 @@ x_reply_selection_request (struct input_event *event,
756 /* The window we're communicating with may have been deleted 756 /* The window we're communicating with may have been deleted
757 in the meantime (that's a real situation from a bug report). 757 in the meantime (that's a real situation from a bug report).
758 In this case, there may be events in the event queue still 758 In this case, there may be events in the event queue still
759 refering to the deleted window, and we'll get a BadWindow error 759 referring to the deleted window, and we'll get a BadWindow error
760 in XTread_socket when processing the events. I don't have 760 in XTread_socket when processing the events. I don't have
761 an idea how to fix that. gerd, 2001-01-98. */ 761 an idea how to fix that. gerd, 2001-01-98. */
762 /* 2004-09-10: XSync and UNBLOCK so that possible protocol errors are 762 /* 2004-09-10: XSync and UNBLOCK so that possible protocol errors are
diff --git a/src/xsettings.c b/src/xsettings.c
index a8604ac5897..066c6e795e9 100644
--- a/src/xsettings.c
+++ b/src/xsettings.c
@@ -1,6 +1,6 @@
1/* Functions for handling font and other changes dynamically. 1/* Functions for handling font and other changes dynamically.
2 2
3Copyright (C) 2009-2011 Free Software Foundation, Inc. 3Copyright (C) 2009-2012 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
6 6
diff --git a/src/xsettings.h b/src/xsettings.h
index 38448eb88f5..d6b0c0945df 100644
--- a/src/xsettings.h
+++ b/src/xsettings.h
@@ -1,6 +1,6 @@
1/* Functions for handle font changes dynamically. 1/* Functions for handle font changes dynamically.
2 2
3Copyright (C) 2009-2011 Free Software Foundation, Inc. 3Copyright (C) 2009-2012 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
6 6
diff --git a/src/xsmfns.c b/src/xsmfns.c
index 7deac7b14e4..1f6eb84260e 100644
--- a/src/xsmfns.c
+++ b/src/xsmfns.c
@@ -1,7 +1,7 @@
1/* Session management module for systems which understand the X Session 1/* Session management module for systems which understand the X Session
2 management protocol. 2 management protocol.
3 3
4Copyright (C) 2002-2011 Free Software Foundation, Inc. 4Copyright (C) 2002-2012 Free Software Foundation, Inc.
5 5
6This file is part of GNU Emacs. 6This file is part of GNU Emacs.
7 7
diff --git a/src/xterm.c b/src/xterm.c
index 4bc12c06b34..2a2ae105e2e 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -1,6 +1,6 @@
1/* X Communication module for terminals which understand the X protocol. 1/* X Communication module for terminals which understand the X protocol.
2 2
3Copyright (C) 1989, 1993-2011 Free Software Foundation, Inc. 3Copyright (C) 1989, 1993-2012 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
6 6
@@ -5150,7 +5150,7 @@ x_scroll_bar_remove (struct scroll_bar *bar)
5150 XDestroyWindow (FRAME_X_DISPLAY (f), bar->x_window); 5150 XDestroyWindow (FRAME_X_DISPLAY (f), bar->x_window);
5151#endif 5151#endif
5152 5152
5153 /* Disassociate this scroll bar from its window. */ 5153 /* Dissociate this scroll bar from its window. */
5154 XWINDOW (bar->window)->vertical_scroll_bar = Qnil; 5154 XWINDOW (bar->window)->vertical_scroll_bar = Qnil;
5155 5155
5156 UNBLOCK_INPUT; 5156 UNBLOCK_INPUT;
@@ -8981,6 +8981,18 @@ x_lower_frame (struct frame *f)
8981 } 8981 }
8982} 8982}
8983 8983
8984/* Request focus with XEmbed */
8985
8986void
8987xembed_request_focus (FRAME_PTR f)
8988{
8989 /* See XEmbed Protocol Specification at
8990 http://freedesktop.org/wiki/Specifications/xembed-spec */
8991 if (f->async_visible)
8992 xembed_send_message (f, CurrentTime,
8993 XEMBED_REQUEST_FOCUS, 0, 0, 0);
8994}
8995
8984/* Activate frame with Extended Window Manager Hints */ 8996/* Activate frame with Extended Window Manager Hints */
8985 8997
8986void 8998void
diff --git a/src/xterm.h b/src/xterm.h
index 1242bf64d77..b498261a805 100644
--- a/src/xterm.h
+++ b/src/xterm.h
@@ -1,5 +1,5 @@
1/* Definitions and headers for communication with X protocol. 1/* Definitions and headers for communication with X protocol.
2 Copyright (C) 1989, 1993-1994, 1998-2011 Free Software Foundation, Inc. 2 Copyright (C) 1989, 1993-1994, 1998-2012 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
@@ -960,6 +960,7 @@ extern void x_clear_errors (Display *);
960extern void x_set_window_size (struct frame *, int, int, int); 960extern void x_set_window_size (struct frame *, int, int, int);
961extern void x_set_mouse_position (struct frame *, int, int); 961extern void x_set_mouse_position (struct frame *, int, int);
962extern void x_set_mouse_pixel_position (struct frame *, int, int); 962extern void x_set_mouse_pixel_position (struct frame *, int, int);
963extern void xembed_request_focus (struct frame *);
963extern void x_ewmh_activate_frame (struct frame *); 964extern void x_ewmh_activate_frame (struct frame *);
964extern void x_make_frame_visible (struct frame *); 965extern void x_make_frame_visible (struct frame *);
965extern void x_make_frame_invisible (struct frame *); 966extern void x_make_frame_invisible (struct frame *);