diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 51 | ||||
| -rw-r--r-- | src/bidi.c | 13 | ||||
| -rw-r--r-- | src/fileio.c | 4 | ||||
| -rw-r--r-- | src/gnutls.c | 32 | ||||
| -rw-r--r-- | src/lread.c | 8 | ||||
| -rw-r--r-- | src/makefile.w32-in | 3 | ||||
| -rw-r--r-- | src/process.c | 2 | ||||
| -rw-r--r-- | src/xdisp.c | 16 |
8 files changed, 105 insertions, 24 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 680e67e05f7..9e46b7d3318 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | 2011-07-16 Paul Eggert <eggert@cs.ucla.edu> | 1 | 2011-07-17 Paul Eggert <eggert@cs.ucla.edu> |
| 2 | 2 | ||
| 3 | Overflow, signedness and related fixes for images. | 3 | Overflow, signedness and related fixes for images. |
| 4 | 4 | ||
| @@ -43,7 +43,7 @@ | |||
| 43 | (gs_load): Use printmax_t to print the widest integers possible. | 43 | (gs_load): Use printmax_t to print the widest integers possible. |
| 44 | Check for integer overflow when computing image height and width. | 44 | Check for integer overflow when computing image height and width. |
| 45 | 45 | ||
| 46 | 2011-07-14 Paul Eggert <eggert@cs.ucla.edu> | 46 | 2011-07-17 Paul Eggert <eggert@cs.ucla.edu> |
| 47 | 47 | ||
| 48 | Integer signedness and overflow and related fixes. (Bug#9079) | 48 | Integer signedness and overflow and related fixes. (Bug#9079) |
| 49 | 49 | ||
| @@ -60,6 +60,9 @@ | |||
| 60 | Don't set bidi_cache_size until after xrealloc returns, because it | 60 | Don't set bidi_cache_size until after xrealloc returns, because it |
| 61 | might not return. | 61 | might not return. |
| 62 | (bidi_dump_cached_states): Use ptrdiff_t, not int, to avoid overflow. | 62 | (bidi_dump_cached_states): Use ptrdiff_t, not int, to avoid overflow. |
| 63 | (bidi_cache_ensure_space): Also check that the bidi cache size | ||
| 64 | does not exceed that of the largest Lisp string or buffer. See Eli | ||
| 65 | Zaretskii in <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9079#29>. | ||
| 63 | 66 | ||
| 64 | * alloc.c (__malloc_size_t): Remove. | 67 | * alloc.c (__malloc_size_t): Remove. |
| 65 | All uses replaced by size_t. See Andreas Schwab's note | 68 | All uses replaced by size_t. See Andreas Schwab's note |
| @@ -239,6 +242,47 @@ | |||
| 239 | Use EMACS_INT, not EMACS_UINT, for sizes. The code works equally | 242 | Use EMACS_INT, not EMACS_UINT, for sizes. The code works equally |
| 240 | well either way, and we prefer signed to unsigned. | 243 | well either way, and we prefer signed to unsigned. |
| 241 | 244 | ||
| 245 | 2011-07-16 Juanma Barranquero <lekktu@gmail.com> | ||
| 246 | |||
| 247 | * makefile.w32-in (GLOBAL_SOURCES): Add gnutls.c (followup to bug#9059). | ||
| 248 | |||
| 249 | 2011-07-16 Paul Eggert <eggert@cs.ucla.edu> | ||
| 250 | |||
| 251 | * fileio.c (Fcopy_file): Don't diagnose fchown failures. (Bug#9002) | ||
| 252 | |||
| 253 | 2011-07-16 Lars Magne Ingebrigtsen <larsi@gnus.org> | ||
| 254 | |||
| 255 | * gnutls.c (syms_of_gnutls): Define `gnutls-log-level' here, since | ||
| 256 | it's used from the C level. | ||
| 257 | |||
| 258 | * process.c: Use the same condition for POLL_FOR_INPUT in both | ||
| 259 | keyboard.c and process.c (bug#1858). | ||
| 260 | |||
| 261 | 2011-07-09 Lawrence Mitchell <wence@gmx.li> | ||
| 262 | |||
| 263 | * gnutls.c (Qgnutls_bootprop_min_prime_bits): New variable. | ||
| 264 | (Fgnutls_boot): Use it. | ||
| 265 | |||
| 266 | 2011-07-15 Andreas Schwab <schwab@linux-m68k.org> | ||
| 267 | |||
| 268 | * doc.c (Fsubstitute_command_keys): Revert last change. | ||
| 269 | |||
| 270 | 2011-07-15 Lars Magne Ingebrigtsen <larsi@gnus.org> | ||
| 271 | |||
| 272 | * doc.c (Fsubstitute_command_keys): Clarify that \= really only | ||
| 273 | quotes the next character, and doesn't affect other longer | ||
| 274 | sequences (bug#8935). | ||
| 275 | |||
| 276 | * lread.c (syms_of_lread): Clarify that is isn't only | ||
| 277 | `eval-buffer' and `eval-defun' that's affected by | ||
| 278 | `lexical-binding' (bug#8460). | ||
| 279 | |||
| 280 | 2011-07-15 Eli Zaretskii <eliz@gnu.org> | ||
| 281 | |||
| 282 | * xdisp.c (move_it_in_display_line_to): Fix vertical motion with | ||
| 283 | bidi redisplay when a line includes both an image and is | ||
| 284 | truncated. | ||
| 285 | |||
| 242 | 2011-07-14 Paul Eggert <eggert@cs.ucla.edu> | 286 | 2011-07-14 Paul Eggert <eggert@cs.ucla.edu> |
| 243 | 287 | ||
| 244 | Fix minor problems found by static checking. | 288 | Fix minor problems found by static checking. |
| @@ -253,9 +297,6 @@ | |||
| 253 | 297 | ||
| 254 | 2011-07-14 Lars Magne Ingebrigtsen <larsi@gnus.org> | 298 | 2011-07-14 Lars Magne Ingebrigtsen <larsi@gnus.org> |
| 255 | 299 | ||
| 256 | * data.c (Fcdr, Fcar): Revert the last change, since it didn't | ||
| 257 | really clarify much. | ||
| 258 | |||
| 259 | * search.c (Fre_search_backward): Mention `case-fold-search' in | 300 | * search.c (Fre_search_backward): Mention `case-fold-search' in |
| 260 | all the re_search_* functions (bug#8138). | 301 | all the re_search_* functions (bug#8138). |
| 261 | 302 | ||
diff --git a/src/bidi.c b/src/bidi.c index 1999606639b..697ebb92856 100644 --- a/src/bidi.c +++ b/src/bidi.c | |||
| @@ -464,9 +464,16 @@ bidi_cache_ensure_space (ptrdiff_t idx) | |||
| 464 | if (idx >= bidi_cache_size) | 464 | if (idx >= bidi_cache_size) |
| 465 | { | 465 | { |
| 466 | ptrdiff_t new_size; | 466 | ptrdiff_t new_size; |
| 467 | ptrdiff_t max_size = | 467 | |
| 468 | min (PTRDIFF_MAX, SIZE_MAX) / elsz / BIDI_CACHE_CHUNK * BIDI_CACHE_CHUNK; | 468 | /* The bidi cache cannot be larger than the largest Lisp string |
| 469 | if (max_size <= idx) | 469 | or buffer. */ |
| 470 | ptrdiff_t string_or_buffer_bound = | ||
| 471 | max (BUF_BYTES_MAX, STRING_BYTES_BOUND); | ||
| 472 | |||
| 473 | /* Also, it cannot be larger than what C can represent. */ | ||
| 474 | ptrdiff_t c_bound = min (PTRDIFF_MAX, SIZE_MAX) / elsz; | ||
| 475 | |||
| 476 | if (min (string_or_buffer_bound, c_bound) <= idx) | ||
| 470 | memory_full (SIZE_MAX); | 477 | memory_full (SIZE_MAX); |
| 471 | new_size = idx - idx % BIDI_CACHE_CHUNK + BIDI_CACHE_CHUNK; | 478 | new_size = idx - idx % BIDI_CACHE_CHUNK + BIDI_CACHE_CHUNK; |
| 472 | bidi_cache = (struct bidi_it *) xrealloc (bidi_cache, new_size * elsz); | 479 | bidi_cache = (struct bidi_it *) xrealloc (bidi_cache, new_size * elsz); |
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 | |||
| 35 | emacs_gnutls_handle_error (gnutls_session_t, int err); | 35 | emacs_gnutls_handle_error (gnutls_session_t, int err); |
| 36 | 36 | ||
| 37 | static Lisp_Object Qgnutls_dll; | 37 | static Lisp_Object Qgnutls_dll; |
| 38 | static Lisp_Object Qgnutls_log_level; | ||
| 39 | static Lisp_Object Qgnutls_code; | 38 | static Lisp_Object Qgnutls_code; |
| 40 | static Lisp_Object Qgnutls_anon, Qgnutls_x509pki; | 39 | static Lisp_Object Qgnutls_anon, Qgnutls_x509pki; |
| 41 | static Lisp_Object Qgnutls_e_interrupted, Qgnutls_e_again, | 40 | static Lisp_Object Qgnutls_e_interrupted, Qgnutls_e_again, |
| @@ -50,6 +49,7 @@ static Lisp_Object Qgnutls_bootprop_crlfiles; | |||
| 50 | static Lisp_Object Qgnutls_bootprop_callbacks; | 49 | static Lisp_Object Qgnutls_bootprop_callbacks; |
| 51 | static Lisp_Object Qgnutls_bootprop_loglevel; | 50 | static Lisp_Object Qgnutls_bootprop_loglevel; |
| 52 | static Lisp_Object Qgnutls_bootprop_hostname; | 51 | static Lisp_Object Qgnutls_bootprop_hostname; |
| 52 | static Lisp_Object Qgnutls_bootprop_min_prime_bits; | ||
| 53 | static Lisp_Object Qgnutls_bootprop_verify_flags; | 53 | static Lisp_Object Qgnutls_bootprop_verify_flags; |
| 54 | static Lisp_Object Qgnutls_bootprop_verify_hostname_error; | 54 | static Lisp_Object Qgnutls_bootprop_verify_hostname_error; |
| 55 | 55 | ||
| @@ -105,6 +105,8 @@ DEF_GNUTLS_FN (int, gnutls_certificate_verify_peers2, | |||
| 105 | DEF_GNUTLS_FN (int, gnutls_credentials_set, | 105 | DEF_GNUTLS_FN (int, gnutls_credentials_set, |
| 106 | (gnutls_session_t, gnutls_credentials_type_t, void *)); | 106 | (gnutls_session_t, gnutls_credentials_type_t, void *)); |
| 107 | DEF_GNUTLS_FN (void, gnutls_deinit, (gnutls_session_t)); | 107 | DEF_GNUTLS_FN (void, gnutls_deinit, (gnutls_session_t)); |
| 108 | DEF_GNUTLS_FN (void, gnutls_dh_set_prime_bits, | ||
| 109 | (gnutls_session_t, unsigned int)); | ||
| 108 | DEF_GNUTLS_FN (int, gnutls_error_is_fatal, (int)); | 110 | DEF_GNUTLS_FN (int, gnutls_error_is_fatal, (int)); |
| 109 | DEF_GNUTLS_FN (int, gnutls_global_init, (void)); | 111 | DEF_GNUTLS_FN (int, gnutls_global_init, (void)); |
| 110 | DEF_GNUTLS_FN (void, gnutls_global_set_log_function, (gnutls_log_func)); | 112 | DEF_GNUTLS_FN (void, gnutls_global_set_log_function, (gnutls_log_func)); |
| @@ -143,7 +145,6 @@ static int | |||
| 143 | init_gnutls_functions (Lisp_Object libraries) | 145 | init_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) | |||
| 394 | static int | 397 | static int |
| 395 | emacs_gnutls_handle_error (gnutls_session_t session, int err) | 398 | emacs_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 |
| 647 | error. Otherwise it will be just a warning. | 649 | error. Otherwise it will be just a warning. |
| 648 | 650 | ||
| 651 | :min-prime-bits is the minimum accepted number of bits the client will | ||
| 652 | accept in Diffie-Hellman key exchange. | ||
| 653 | |||
| 649 | The debug level will be set for this process AND globally for GnuTLS. | 654 | The debug level will be set for this process AND globally for GnuTLS. |
| 650 | So if you set it higher or lower at any point, it affects global | 655 | So if you set it higher or lower at any point, it affects global |
| 651 | debugging. | 656 | debugging. |
| @@ -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. |
| 4494 | This only applies to code evaluated by `eval-buffer' and `eval-region'. | 4494 | This applies to code evaluated by `eval-buffer' and `eval-region' and |
| 4495 | This variable is automatically set from the file variables of an interpreted | 4495 | other commands that call these functions, like `eval-defun' and |
| 4496 | Lisp file read using `load'. */); | 4496 | the like. |
| 4497 | This variable is automatically set from the file variables of an | ||
| 4498 | interpreted 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 | ||
| 225 | SOME_MACHINE_OBJECTS = dosfns.o msdos.o \ | 226 | SOME_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 |
| 227 | obj = $(GLOBAL_SOURCES:.c=.o) | 228 | obj = $(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 50f6f79c941..4ea183ccc56 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 | } |