aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPaul Eggert2011-07-16 17:37:57 -0700
committerPaul Eggert2011-07-16 17:37:57 -0700
commit4f8a4547454e24304b4182fbf4ae4b34a7bdc92b (patch)
treed03d6d6cdd4b10a62633ed5f9da42d60dac016d0 /src
parentf0eb61e99dce9005dc94c909046f6130b3d4a97c (diff)
parent64a465b2d97d00f27ed74513047ced07b798b9fd (diff)
downloademacs-4f8a4547454e24304b4182fbf4ae4b34a7bdc92b.tar.gz
emacs-4f8a4547454e24304b4182fbf4ae4b34a7bdc92b.zip
Merge from trunk.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog46
-rw-r--r--src/fileio.c4
-rw-r--r--src/gnutls.c32
-rw-r--r--src/lread.c8
-rw-r--r--src/makefile.w32-in3
-rw-r--r--src/process.c2
-rw-r--r--src/xdisp.c16
7 files changed, 91 insertions, 20 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 493b3277f52..b3d9eca469e 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,4 +1,4 @@
12011-07-14 Paul Eggert <eggert@cs.ucla.edu> 12011-07-17 Paul Eggert <eggert@cs.ucla.edu>
2 2
3 Integer signedness and overflow and related fixes. (Bug#9079) 3 Integer signedness and overflow and related fixes. (Bug#9079)
4 4
@@ -197,6 +197,47 @@
197 Use EMACS_INT, not EMACS_UINT, for sizes. The code works equally 197 Use EMACS_INT, not EMACS_UINT, for sizes. The code works equally
198 well either way, and we prefer signed to unsigned. 198 well either way, and we prefer signed to unsigned.
199 199
2002011-07-16 Juanma Barranquero <lekktu@gmail.com>
201
202 * makefile.w32-in (GLOBAL_SOURCES): Add gnutls.c (followup to bug#9059).
203
2042011-07-16 Paul Eggert <eggert@cs.ucla.edu>
205
206 * fileio.c (Fcopy_file): Don't diagnose fchown failures. (Bug#9002)
207
2082011-07-16 Lars Magne Ingebrigtsen <larsi@gnus.org>
209
210 * gnutls.c (syms_of_gnutls): Define `gnutls-log-level' here, since
211 it's used from the C level.
212
213 * process.c: Use the same condition for POLL_FOR_INPUT in both
214 keyboard.c and process.c (bug#1858).
215
2162011-07-09 Lawrence Mitchell <wence@gmx.li>
217
218 * gnutls.c (Qgnutls_bootprop_min_prime_bits): New variable.
219 (Fgnutls_boot): Use it.
220
2212011-07-15 Andreas Schwab <schwab@linux-m68k.org>
222
223 * doc.c (Fsubstitute_command_keys): Revert last change.
224
2252011-07-15 Lars Magne Ingebrigtsen <larsi@gnus.org>
226
227 * doc.c (Fsubstitute_command_keys): Clarify that \= really only
228 quotes the next character, and doesn't affect other longer
229 sequences (bug#8935).
230
231 * lread.c (syms_of_lread): Clarify that is isn't only
232 `eval-buffer' and `eval-defun' that's affected by
233 `lexical-binding' (bug#8460).
234
2352011-07-15 Eli Zaretskii <eliz@gnu.org>
236
237 * xdisp.c (move_it_in_display_line_to): Fix vertical motion with
238 bidi redisplay when a line includes both an image and is
239 truncated.
240
2002011-07-14 Paul Eggert <eggert@cs.ucla.edu> 2412011-07-14 Paul Eggert <eggert@cs.ucla.edu>
201 242
202 Fix minor problems found by static checking. 243 Fix minor problems found by static checking.
@@ -211,9 +252,6 @@
211 252
2122011-07-14 Lars Magne Ingebrigtsen <larsi@gnus.org> 2532011-07-14 Lars Magne Ingebrigtsen <larsi@gnus.org>
213 254
214 * data.c (Fcdr, Fcar): Revert the last change, since it didn't
215 really clarify much.
216
217 * search.c (Fre_search_backward): Mention `case-fold-search' in 255 * search.c (Fre_search_backward): Mention `case-fold-search' in
218 all the re_search_* functions (bug#8138). 256 all the re_search_* functions (bug#8138).
219 257
diff --git a/src/fileio.c b/src/fileio.c
index d4fb0383119..c67bea79bd3 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -1959,8 +1959,8 @@ on the system, we copy the SELinux context of FILE to NEWNAME. */)
1959 owner and group. */ 1959 owner and group. */
1960 if (input_file_statable_p) 1960 if (input_file_statable_p)
1961 { 1961 {
1962 if (!NILP (preserve_uid_gid) && fchown (ofd, st.st_uid, st.st_gid) != 0) 1962 if (!NILP (preserve_uid_gid))
1963 report_file_error ("Doing chown", Fcons (newname, Qnil)); 1963 fchown (ofd, st.st_uid, st.st_gid);
1964 if (fchmod (ofd, st.st_mode & 07777) != 0) 1964 if (fchmod (ofd, st.st_mode & 07777) != 0)
1965 report_file_error ("Doing chmod", Fcons (newname, Qnil)); 1965 report_file_error ("Doing chmod", Fcons (newname, Qnil));
1966 } 1966 }
diff --git a/src/gnutls.c b/src/gnutls.c
index 3761951b866..52e80a69ae5 100644
--- a/src/gnutls.c
+++ b/src/gnutls.c
@@ -35,7 +35,6 @@ static int
35emacs_gnutls_handle_error (gnutls_session_t, int err); 35emacs_gnutls_handle_error (gnutls_session_t, int err);
36 36
37static Lisp_Object Qgnutls_dll; 37static Lisp_Object Qgnutls_dll;
38static Lisp_Object Qgnutls_log_level;
39static Lisp_Object Qgnutls_code; 38static Lisp_Object Qgnutls_code;
40static Lisp_Object Qgnutls_anon, Qgnutls_x509pki; 39static Lisp_Object Qgnutls_anon, Qgnutls_x509pki;
41static Lisp_Object Qgnutls_e_interrupted, Qgnutls_e_again, 40static Lisp_Object Qgnutls_e_interrupted, Qgnutls_e_again,
@@ -50,6 +49,7 @@ static Lisp_Object Qgnutls_bootprop_crlfiles;
50static Lisp_Object Qgnutls_bootprop_callbacks; 49static Lisp_Object Qgnutls_bootprop_callbacks;
51static Lisp_Object Qgnutls_bootprop_loglevel; 50static Lisp_Object Qgnutls_bootprop_loglevel;
52static Lisp_Object Qgnutls_bootprop_hostname; 51static Lisp_Object Qgnutls_bootprop_hostname;
52static Lisp_Object Qgnutls_bootprop_min_prime_bits;
53static Lisp_Object Qgnutls_bootprop_verify_flags; 53static Lisp_Object Qgnutls_bootprop_verify_flags;
54static Lisp_Object Qgnutls_bootprop_verify_hostname_error; 54static Lisp_Object Qgnutls_bootprop_verify_hostname_error;
55 55
@@ -105,6 +105,8 @@ DEF_GNUTLS_FN (int, gnutls_certificate_verify_peers2,
105DEF_GNUTLS_FN (int, gnutls_credentials_set, 105DEF_GNUTLS_FN (int, gnutls_credentials_set,
106 (gnutls_session_t, gnutls_credentials_type_t, void *)); 106 (gnutls_session_t, gnutls_credentials_type_t, void *));
107DEF_GNUTLS_FN (void, gnutls_deinit, (gnutls_session_t)); 107DEF_GNUTLS_FN (void, gnutls_deinit, (gnutls_session_t));
108DEF_GNUTLS_FN (void, gnutls_dh_set_prime_bits,
109 (gnutls_session_t, unsigned int));
108DEF_GNUTLS_FN (int, gnutls_error_is_fatal, (int)); 110DEF_GNUTLS_FN (int, gnutls_error_is_fatal, (int));
109DEF_GNUTLS_FN (int, gnutls_global_init, (void)); 111DEF_GNUTLS_FN (int, gnutls_global_init, (void));
110DEF_GNUTLS_FN (void, gnutls_global_set_log_function, (gnutls_log_func)); 112DEF_GNUTLS_FN (void, gnutls_global_set_log_function, (gnutls_log_func));
@@ -143,7 +145,6 @@ static int
143init_gnutls_functions (Lisp_Object libraries) 145init_gnutls_functions (Lisp_Object libraries)
144{ 146{
145 HMODULE library; 147 HMODULE library;
146 Lisp_Object gnutls_log_level = Fsymbol_value (Qgnutls_log_level);
147 int max_log_level = 1; 148 int max_log_level = 1;
148 149
149 if (!(library = w32_delayed_load (libraries, Qgnutls_dll))) 150 if (!(library = w32_delayed_load (libraries, Qgnutls_dll)))
@@ -169,6 +170,7 @@ init_gnutls_functions (Lisp_Object libraries)
169 LOAD_GNUTLS_FN (library, gnutls_certificate_verify_peers2); 170 LOAD_GNUTLS_FN (library, gnutls_certificate_verify_peers2);
170 LOAD_GNUTLS_FN (library, gnutls_credentials_set); 171 LOAD_GNUTLS_FN (library, gnutls_credentials_set);
171 LOAD_GNUTLS_FN (library, gnutls_deinit); 172 LOAD_GNUTLS_FN (library, gnutls_deinit);
173 LOAD_GNUTLS_FN (library, gnutls_dh_set_prime_bits);
172 LOAD_GNUTLS_FN (library, gnutls_error_is_fatal); 174 LOAD_GNUTLS_FN (library, gnutls_error_is_fatal);
173 LOAD_GNUTLS_FN (library, gnutls_global_init); 175 LOAD_GNUTLS_FN (library, gnutls_global_init);
174 LOAD_GNUTLS_FN (library, gnutls_global_set_log_function); 176 LOAD_GNUTLS_FN (library, gnutls_global_set_log_function);
@@ -191,8 +193,8 @@ init_gnutls_functions (Lisp_Object libraries)
191 LOAD_GNUTLS_FN (library, gnutls_x509_crt_import); 193 LOAD_GNUTLS_FN (library, gnutls_x509_crt_import);
192 LOAD_GNUTLS_FN (library, gnutls_x509_crt_init); 194 LOAD_GNUTLS_FN (library, gnutls_x509_crt_init);
193 195
194 if (NUMBERP (gnutls_log_level)) 196 if (NUMBERP (Vgnutls_log_level))
195 max_log_level = XINT (gnutls_log_level); 197 max_log_level = XINT (Vgnutls_log_level);
196 198
197 GNUTLS_LOG2 (1, max_log_level, "GnuTLS library loaded:", 199 GNUTLS_LOG2 (1, max_log_level, "GnuTLS library loaded:",
198 SDATA (Fget (Qgnutls_dll, QCloaded_from))); 200 SDATA (Fget (Qgnutls_dll, QCloaded_from)));
@@ -218,6 +220,7 @@ init_gnutls_functions (Lisp_Object libraries)
218#define fn_gnutls_certificate_verify_peers2 gnutls_certificate_verify_peers2 220#define fn_gnutls_certificate_verify_peers2 gnutls_certificate_verify_peers2
219#define fn_gnutls_credentials_set gnutls_credentials_set 221#define fn_gnutls_credentials_set gnutls_credentials_set
220#define fn_gnutls_deinit gnutls_deinit 222#define fn_gnutls_deinit gnutls_deinit
223#define fn_gnutls_dh_set_prime_bits gnutls_dh_set_prime_bits
221#define fn_gnutls_error_is_fatal gnutls_error_is_fatal 224#define fn_gnutls_error_is_fatal gnutls_error_is_fatal
222#define fn_gnutls_global_init gnutls_global_init 225#define fn_gnutls_global_init gnutls_global_init
223#define fn_gnutls_global_set_log_function gnutls_global_set_log_function 226#define fn_gnutls_global_set_log_function gnutls_global_set_log_function
@@ -394,7 +397,6 @@ emacs_gnutls_read (struct Lisp_Process *proc, char *buf, EMACS_INT nbyte)
394static int 397static int
395emacs_gnutls_handle_error (gnutls_session_t session, int err) 398emacs_gnutls_handle_error (gnutls_session_t session, int err)
396{ 399{
397 Lisp_Object gnutls_log_level = Fsymbol_value (Qgnutls_log_level);
398 int max_log_level = 0; 400 int max_log_level = 0;
399 401
400 int ret; 402 int ret;
@@ -404,8 +406,8 @@ emacs_gnutls_handle_error (gnutls_session_t session, int err)
404 if (err >= 0) 406 if (err >= 0)
405 return 0; 407 return 0;
406 408
407 if (NUMBERP (gnutls_log_level)) 409 if (NUMBERP (Vgnutls_log_level))
408 max_log_level = XINT (gnutls_log_level); 410 max_log_level = XINT (Vgnutls_log_level);
409 411
410 /* TODO: use gnutls-error-fatalp and gnutls-error-string. */ 412 /* TODO: use gnutls-error-fatalp and gnutls-error-string. */
411 413
@@ -646,6 +648,9 @@ gnutls_certificate_set_verify_flags.
646:verify-hostname-error, if non-nil, makes a hostname mismatch an 648:verify-hostname-error, if non-nil, makes a hostname mismatch an
647error. Otherwise it will be just a warning. 649error. Otherwise it will be just a warning.
648 650
651:min-prime-bits is the minimum accepted number of bits the client will
652accept in Diffie-Hellman key exchange.
653
649The debug level will be set for this process AND globally for GnuTLS. 654The debug level will be set for this process AND globally for GnuTLS.
650So if you set it higher or lower at any point, it affects global 655So if you set it higher or lower at any point, it affects global
651debugging. 656debugging.
@@ -698,6 +703,7 @@ one trustfile (usually a CA bundle). */)
698 Lisp_Object verify_flags; 703 Lisp_Object verify_flags;
699 /* Lisp_Object verify_error; */ 704 /* Lisp_Object verify_error; */
700 Lisp_Object verify_hostname_error; 705 Lisp_Object verify_hostname_error;
706 Lisp_Object prime_bits;
701 707
702 CHECK_PROCESS (proc); 708 CHECK_PROCESS (proc);
703 CHECK_SYMBOL (type); 709 CHECK_SYMBOL (type);
@@ -719,6 +725,7 @@ one trustfile (usually a CA bundle). */)
719 verify_flags = Fplist_get (proplist, Qgnutls_bootprop_verify_flags); 725 verify_flags = Fplist_get (proplist, Qgnutls_bootprop_verify_flags);
720 /* verify_error = Fplist_get (proplist, Qgnutls_bootprop_verify_error); */ 726 /* verify_error = Fplist_get (proplist, Qgnutls_bootprop_verify_error); */
721 verify_hostname_error = Fplist_get (proplist, Qgnutls_bootprop_verify_hostname_error); 727 verify_hostname_error = Fplist_get (proplist, Qgnutls_bootprop_verify_hostname_error);
728 prime_bits = Fplist_get (proplist, Qgnutls_bootprop_min_prime_bits);
722 729
723 if (!STRINGP (hostname)) 730 if (!STRINGP (hostname))
724 error ("gnutls-boot: invalid :hostname parameter"); 731 error ("gnutls-boot: invalid :hostname parameter");
@@ -936,6 +943,11 @@ one trustfile (usually a CA bundle). */)
936 943
937 GNUTLS_INITSTAGE (proc) = GNUTLS_STAGE_PRIORITY; 944 GNUTLS_INITSTAGE (proc) = GNUTLS_STAGE_PRIORITY;
938 945
946 if (!EQ (prime_bits, Qnil))
947 {
948 fn_gnutls_dh_set_prime_bits (state, XUINT (prime_bits));
949 }
950
939 if (EQ (type, Qgnutls_x509pki)) 951 if (EQ (type, Qgnutls_x509pki))
940 { 952 {
941 ret = fn_gnutls_credentials_set (state, GNUTLS_CRD_CERTIFICATE, x509_cred); 953 ret = fn_gnutls_credentials_set (state, GNUTLS_CRD_CERTIFICATE, x509_cred);
@@ -1103,7 +1115,6 @@ syms_of_gnutls (void)
1103 gnutls_global_initialized = 0; 1115 gnutls_global_initialized = 0;
1104 1116
1105 DEFSYM (Qgnutls_dll, "gnutls"); 1117 DEFSYM (Qgnutls_dll, "gnutls");
1106 DEFSYM (Qgnutls_log_level, "gnutls-log-level");
1107 DEFSYM (Qgnutls_code, "gnutls-code"); 1118 DEFSYM (Qgnutls_code, "gnutls-code");
1108 DEFSYM (Qgnutls_anon, "gnutls-anon"); 1119 DEFSYM (Qgnutls_anon, "gnutls-anon");
1109 DEFSYM (Qgnutls_x509pki, "gnutls-x509pki"); 1120 DEFSYM (Qgnutls_x509pki, "gnutls-x509pki");
@@ -1114,6 +1125,7 @@ syms_of_gnutls (void)
1114 DEFSYM (Qgnutls_bootprop_crlfiles, ":crlfiles"); 1125 DEFSYM (Qgnutls_bootprop_crlfiles, ":crlfiles");
1115 DEFSYM (Qgnutls_bootprop_callbacks, ":callbacks"); 1126 DEFSYM (Qgnutls_bootprop_callbacks, ":callbacks");
1116 DEFSYM (Qgnutls_bootprop_callbacks_verify, "verify"); 1127 DEFSYM (Qgnutls_bootprop_callbacks_verify, "verify");
1128 DEFSYM (Qgnutls_bootprop_min_prime_bits, ":min-prime-bits");
1117 DEFSYM (Qgnutls_bootprop_loglevel, ":loglevel"); 1129 DEFSYM (Qgnutls_bootprop_loglevel, ":loglevel");
1118 DEFSYM (Qgnutls_bootprop_verify_flags, ":verify-flags"); 1130 DEFSYM (Qgnutls_bootprop_verify_flags, ":verify-flags");
1119 DEFSYM (Qgnutls_bootprop_verify_hostname_error, ":verify-hostname-error"); 1131 DEFSYM (Qgnutls_bootprop_verify_hostname_error, ":verify-hostname-error");
@@ -1142,6 +1154,10 @@ syms_of_gnutls (void)
1142 defsubr (&Sgnutls_deinit); 1154 defsubr (&Sgnutls_deinit);
1143 defsubr (&Sgnutls_bye); 1155 defsubr (&Sgnutls_bye);
1144 defsubr (&Sgnutls_available_p); 1156 defsubr (&Sgnutls_available_p);
1157
1158 DEFVAR_INT ("gnutls-log-level", Vgnutls_log_level,
1159 doc: /* Logging level used by the GnuTLS functions. */);
1160 Vgnutls_log_level = make_number (0);
1145} 1161}
1146 1162
1147#endif /* HAVE_GNUTLS */ 1163#endif /* HAVE_GNUTLS */
diff --git a/src/lread.c b/src/lread.c
index bef1cc8e591..c80ac430671 100644
--- a/src/lread.c
+++ b/src/lread.c
@@ -4491,9 +4491,11 @@ to load. See also `load-dangerous-libraries'. */);
4491 staticpro (&Qlexical_binding); 4491 staticpro (&Qlexical_binding);
4492 DEFVAR_LISP ("lexical-binding", Vlexical_binding, 4492 DEFVAR_LISP ("lexical-binding", Vlexical_binding,
4493 doc: /* If non-nil, use lexical binding when evaluating code. 4493 doc: /* If non-nil, use lexical binding when evaluating code.
4494This only applies to code evaluated by `eval-buffer' and `eval-region'. 4494This applies to code evaluated by `eval-buffer' and `eval-region' and
4495This variable is automatically set from the file variables of an interpreted 4495other commands that call these functions, like `eval-defun' and
4496 Lisp file read using `load'. */); 4496the like.
4497This variable is automatically set from the file variables of an
4498interpreted Lisp file read using `load'. */);
4497 Fmake_variable_buffer_local (Qlexical_binding); 4499 Fmake_variable_buffer_local (Qlexical_binding);
4498 4500
4499 DEFVAR_LISP ("eval-buffer-list", Veval_buffer_list, 4501 DEFVAR_LISP ("eval-buffer-list", Veval_buffer_list,
diff --git a/src/makefile.w32-in b/src/makefile.w32-in
index 88b53554925..fd29dec9096 100644
--- a/src/makefile.w32-in
+++ b/src/makefile.w32-in
@@ -221,7 +221,8 @@ GLOBAL_SOURCES = dosfns.c msdos.c \
221 syntax.c bytecode.c \ 221 syntax.c bytecode.c \
222 process.c callproc.c unexw32.c \ 222 process.c callproc.c unexw32.c \
223 region-cache.c sound.c atimer.c \ 223 region-cache.c sound.c atimer.c \
224 doprnt.c intervals.c textprop.c composite.c 224 doprnt.c intervals.c textprop.c composite.c \
225 gnutls.c
225SOME_MACHINE_OBJECTS = dosfns.o msdos.o \ 226SOME_MACHINE_OBJECTS = dosfns.o msdos.o \
226 xterm.o xfns.o xmenu.o xselect.o xrdb.o xsmfns.o dbusbind.o 227 xterm.o xfns.o xmenu.o xselect.o xrdb.o xsmfns.o dbusbind.o
227obj = $(GLOBAL_SOURCES:.c=.o) 228obj = $(GLOBAL_SOURCES:.c=.o)
diff --git a/src/process.c b/src/process.c
index 1a884357b86..236c27e5c3a 100644
--- a/src/process.c
+++ b/src/process.c
@@ -245,7 +245,7 @@ static void create_pty (Lisp_Object);
245 245
246/* If we support a window system, turn on the code to poll periodically 246/* If we support a window system, turn on the code to poll periodically
247 to detect C-g. It isn't actually used when doing interrupt input. */ 247 to detect C-g. It isn't actually used when doing interrupt input. */
248#ifdef HAVE_WINDOW_SYSTEM 248#if defined(HAVE_WINDOW_SYSTEM) && !defined(USE_ASYNC_EVENTS)
249#define POLL_FOR_INPUT 249#define POLL_FOR_INPUT
250#endif 250#endif
251 251
diff --git a/src/xdisp.c b/src/xdisp.c
index 5285d945975..0352867941e 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -7928,7 +7928,14 @@ move_it_in_display_line_to (struct it *it,
7928 || IT_OVERFLOW_NEWLINE_INTO_FRINGE (it)) 7928 || IT_OVERFLOW_NEWLINE_INTO_FRINGE (it))
7929 { 7929 {
7930 if (!get_next_display_element (it) 7930 if (!get_next_display_element (it)
7931 || BUFFER_POS_REACHED_P ()) 7931 || BUFFER_POS_REACHED_P ()
7932 /* If we are past TO_CHARPOS, but never saw any
7933 character positions smaller than TO_CHARPOS,
7934 return MOVE_POS_MATCH_OR_ZV, like the
7935 unidirectional display did. */
7936 || ((op & MOVE_TO_POS) != 0
7937 && !saw_smaller_pos
7938 && IT_CHARPOS (*it) > to_charpos))
7932 { 7939 {
7933 result = MOVE_POS_MATCH_OR_ZV; 7940 result = MOVE_POS_MATCH_OR_ZV;
7934 break; 7941 break;
@@ -7939,6 +7946,13 @@ move_it_in_display_line_to (struct it *it,
7939 break; 7946 break;
7940 } 7947 }
7941 } 7948 }
7949 else if ((op & MOVE_TO_POS) != 0
7950 && !saw_smaller_pos
7951 && IT_CHARPOS (*it) > to_charpos)
7952 {
7953 result = MOVE_POS_MATCH_OR_ZV;
7954 break;
7955 }
7942 result = MOVE_LINE_TRUNCATED; 7956 result = MOVE_LINE_TRUNCATED;
7943 break; 7957 break;
7944 } 7958 }