diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 42 | ||||
| -rw-r--r-- | src/buffer.c | 5 | ||||
| -rw-r--r-- | src/fileio.c | 8 | ||||
| -rw-r--r-- | src/frame.c | 30 | ||||
| -rw-r--r-- | src/keyboard.c | 40 | ||||
| -rw-r--r-- | src/print.c | 10 | ||||
| -rw-r--r-- | src/search.c | 3 | ||||
| -rw-r--r-- | src/w32fns.c | 4 | ||||
| -rw-r--r-- | src/window.c | 16 |
9 files changed, 139 insertions, 19 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index b3a9386da86..9765ec9403c 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,45 @@ | |||
| 1 | 2004-07-17 Juanma Barranquero <lektu@terra.es> | ||
| 2 | |||
| 3 | * keyboard.c (not_single_kboard_state): Do nothing unless | ||
| 4 | MULTI_KBOARD is defined. | ||
| 5 | |||
| 6 | 2004-07-17 Richard M. Stallman <rms@gnu.org> | ||
| 7 | |||
| 8 | * window.c (coordinates_in_window): Inside the window but outside | ||
| 9 | its box to the L or R, return ON_VERTICAL_BORDER. | ||
| 10 | (window_list_1): Rotate the list to start with WINDOW. | ||
| 11 | |||
| 12 | * print.c (print_preprocess): Test for print_depth at limit | ||
| 13 | before entering in being_printed. | ||
| 14 | |||
| 15 | * keyboard.c (not_single_kboard_state): New function. | ||
| 16 | (stuff_buffered_input): Now no-op only if no SIGTSTP. | ||
| 17 | |||
| 18 | * frame.c (Fdelete_frame): If we're in single_bboard_state on | ||
| 19 | this kboard, and we delete its last frame, go to any_kboard_state. | ||
| 20 | |||
| 21 | * buffer.c (syms_of_buffer) <transient-mark-mode>: Doc fix. | ||
| 22 | |||
| 23 | 2004-07-15 KOBAYASHI Yasuhiro <kobayays@otsukakj.co.jp> (tiny change) | ||
| 24 | |||
| 25 | * w32fns.c (Fx_file_dialog): Encode strings in system coding | ||
| 26 | system before passing them to OS functions for display. | ||
| 27 | |||
| 28 | 2004-07-15 David Kastrup <dak@gnu.org> | ||
| 29 | |||
| 30 | * search.c (syms_of_search): Staticpro `saved_last_thing_searched'. | ||
| 31 | Apparently fixes an abort condition. | ||
| 32 | |||
| 33 | 2004-07-14 Luc Teirlinck <teirllm@auburn.edu> | ||
| 34 | |||
| 35 | * fileio.c (Fvisited_file_modtime): Return a list of two integers, | ||
| 36 | instead of a cons. | ||
| 37 | |||
| 38 | 2004-07-14 K,Ba(Broly L,Bu(Brentey <lorentey@elte.hu> | ||
| 39 | |||
| 40 | * keyboard.c (echo_dash): Do nothing if there already is a dash | ||
| 41 | at the end of the echo string. | ||
| 42 | |||
| 1 | 2004-07-12 Kim F. Storm <storm@cua.dk> | 43 | 2004-07-12 Kim F. Storm <storm@cua.dk> |
| 2 | 44 | ||
| 3 | * alloc.c (mark_object): Only look at Lisp_Misc_Save_Value | 45 | * alloc.c (mark_object): Only look at Lisp_Misc_Save_Value |
diff --git a/src/buffer.c b/src/buffer.c index c5783ade2a0..f55ae7983f4 100644 --- a/src/buffer.c +++ b/src/buffer.c | |||
| @@ -5861,7 +5861,10 @@ all windows or just the selected window. | |||
| 5861 | 5861 | ||
| 5862 | If the value is `lambda', that enables Transient Mark mode temporarily | 5862 | If the value is `lambda', that enables Transient Mark mode temporarily |
| 5863 | until the next buffer modification. If a command sets the value to `only', | 5863 | until the next buffer modification. If a command sets the value to `only', |
| 5864 | that enables Transient Mark mode for the following command only. */); | 5864 | that enables Transient Mark mode for the following command only. |
| 5865 | During that following command, the value of `transient-mark-mode' | ||
| 5866 | is `identity'. If it is still `identity' at the end of that command, | ||
| 5867 | it changes to nil. */); | ||
| 5865 | Vtransient_mark_mode = Qnil; | 5868 | Vtransient_mark_mode = Qnil; |
| 5866 | 5869 | ||
| 5867 | DEFVAR_LISP ("inhibit-read-only", &Vinhibit_read_only, | 5870 | DEFVAR_LISP ("inhibit-read-only", &Vinhibit_read_only, |
diff --git a/src/fileio.c b/src/fileio.c index 2a4d5fb230e..f81566a7656 100644 --- a/src/fileio.c +++ b/src/fileio.c | |||
| @@ -5630,13 +5630,17 @@ Next attempt to save will certainly not complain of a discrepancy. */) | |||
| 5630 | DEFUN ("visited-file-modtime", Fvisited_file_modtime, | 5630 | DEFUN ("visited-file-modtime", Fvisited_file_modtime, |
| 5631 | Svisited_file_modtime, 0, 0, 0, | 5631 | Svisited_file_modtime, 0, 0, 0, |
| 5632 | doc: /* Return the current buffer's recorded visited file modification time. | 5632 | doc: /* Return the current buffer's recorded visited file modification time. |
| 5633 | The value is a list of the form (HIGH . LOW), like the time values | 5633 | The value is a list of the form (HIGH LOW), like the time values |
| 5634 | that `file-attributes' returns. If the current buffer has no recorded | 5634 | that `file-attributes' returns. If the current buffer has no recorded |
| 5635 | file modification time, this function returns 0. | 5635 | file modification time, this function returns 0. |
| 5636 | See Info node `(elisp)Modification Time' for more details. */) | 5636 | See Info node `(elisp)Modification Time' for more details. */) |
| 5637 | () | 5637 | () |
| 5638 | { | 5638 | { |
| 5639 | return long_to_cons ((unsigned long) current_buffer->modtime); | 5639 | Lisp_Object tcons; |
| 5640 | tcons = long_to_cons ((unsigned long) current_buffer->modtime); | ||
| 5641 | if (CONSP (tcons)) | ||
| 5642 | return list2 (XCAR (tcons), XCDR (tcons)); | ||
| 5643 | return tcons; | ||
| 5640 | } | 5644 | } |
| 5641 | 5645 | ||
| 5642 | DEFUN ("set-visited-file-modtime", Fset_visited_file_modtime, | 5646 | DEFUN ("set-visited-file-modtime", Fset_visited_file_modtime, |
diff --git a/src/frame.c b/src/frame.c index 41ee5a64bd5..9a0563c6f76 100644 --- a/src/frame.c +++ b/src/frame.c | |||
| @@ -1553,6 +1553,36 @@ The functions are run with one arg, the frame to be deleted. */) | |||
| 1553 | } | 1553 | } |
| 1554 | } | 1554 | } |
| 1555 | 1555 | ||
| 1556 | /* If there's no other frame on the same kboard, get out of | ||
| 1557 | single-kboard state if we're in it for this kboard. */ | ||
| 1558 | { | ||
| 1559 | Lisp_Object frames; | ||
| 1560 | /* Some frame we found on the same kboard, or nil if there are none. */ | ||
| 1561 | Lisp_Object frame_on_same_kboard; | ||
| 1562 | |||
| 1563 | frame_on_same_kboard = Qnil; | ||
| 1564 | |||
| 1565 | for (frames = Vframe_list; | ||
| 1566 | CONSP (frames); | ||
| 1567 | frames = XCDR (frames)) | ||
| 1568 | { | ||
| 1569 | Lisp_Object this; | ||
| 1570 | struct frame *f1; | ||
| 1571 | |||
| 1572 | this = XCAR (frames); | ||
| 1573 | if (!FRAMEP (this)) | ||
| 1574 | abort (); | ||
| 1575 | f1 = XFRAME (this); | ||
| 1576 | |||
| 1577 | if (FRAME_KBOARD (f) == FRAME_KBOARD (f1)) | ||
| 1578 | frame_on_same_kboard = this; | ||
| 1579 | } | ||
| 1580 | |||
| 1581 | if (NILP (frame_on_same_kboard)) | ||
| 1582 | not_single_kboard_state (FRAME_KBOARD (f)); | ||
| 1583 | } | ||
| 1584 | |||
| 1585 | |||
| 1556 | /* If we've deleted this keyboard's default_minibuffer_frame, try to | 1586 | /* If we've deleted this keyboard's default_minibuffer_frame, try to |
| 1557 | find another one. Prefer minibuffer-only frames, but also notice | 1587 | find another one. Prefer minibuffer-only frames, but also notice |
| 1558 | frames with other windows. */ | 1588 | frames with other windows. */ |
diff --git a/src/keyboard.c b/src/keyboard.c index 3fc685d58c7..40a545180fe 100644 --- a/src/keyboard.c +++ b/src/keyboard.c | |||
| @@ -791,6 +791,21 @@ echo_dash () | |||
| 791 | == SCHARS (current_kboard->echo_string)) | 791 | == SCHARS (current_kboard->echo_string)) |
| 792 | return; | 792 | return; |
| 793 | 793 | ||
| 794 | /* Do nothing if we have already put a dash at the end. */ | ||
| 795 | if (SCHARS (current_kboard->echo_string) > 1) | ||
| 796 | { | ||
| 797 | Lisp_Object last_char, prev_char, idx; | ||
| 798 | |||
| 799 | idx = make_number (SCHARS (current_kboard->echo_string) - 2); | ||
| 800 | prev_char = Faref (current_kboard->echo_string, idx); | ||
| 801 | |||
| 802 | idx = make_number (SCHARS (current_kboard->echo_string) - 1); | ||
| 803 | last_char = Faref (current_kboard->echo_string, idx); | ||
| 804 | |||
| 805 | if (XINT (last_char) == '-' && XINT (prev_char) != ' ') | ||
| 806 | return; | ||
| 807 | } | ||
| 808 | |||
| 794 | /* Put a dash at the end of the buffer temporarily, | 809 | /* Put a dash at the end of the buffer temporarily, |
| 795 | but make it go away when the next character is added. */ | 810 | but make it go away when the next character is added. */ |
| 796 | current_kboard->echo_string = concat2 (current_kboard->echo_string, | 811 | current_kboard->echo_string = concat2 (current_kboard->echo_string, |
| @@ -1063,6 +1078,19 @@ single_kboard_state () | |||
| 1063 | #endif | 1078 | #endif |
| 1064 | } | 1079 | } |
| 1065 | 1080 | ||
| 1081 | /* If we're in single_kboard state for kboard KBOARD, | ||
| 1082 | get out of it. */ | ||
| 1083 | |||
| 1084 | void | ||
| 1085 | not_single_kboard_state (kboard) | ||
| 1086 | KBOARD *kboard; | ||
| 1087 | { | ||
| 1088 | #ifdef MULTI_KBOARD | ||
| 1089 | if (kboard == current_kboard) | ||
| 1090 | single_kboard = 0; | ||
| 1091 | #endif | ||
| 1092 | } | ||
| 1093 | |||
| 1066 | /* Maintain a stack of kboards, so other parts of Emacs | 1094 | /* Maintain a stack of kboards, so other parts of Emacs |
| 1067 | can switch temporarily to the kboard of a given frame | 1095 | can switch temporarily to the kboard of a given frame |
| 1068 | and then revert to the previous status. */ | 1096 | and then revert to the previous status. */ |
| @@ -10238,9 +10266,7 @@ void | |||
| 10238 | stuff_buffered_input (stuffstring) | 10266 | stuff_buffered_input (stuffstring) |
| 10239 | Lisp_Object stuffstring; | 10267 | Lisp_Object stuffstring; |
| 10240 | { | 10268 | { |
| 10241 | /* stuff_char works only in BSD, versions 4.2 and up. */ | 10269 | #ifdef SIGTSTP /* stuff_char is defined if SIGTSTP. */ |
| 10242 | #ifdef BSD_SYSTEM | ||
| 10243 | #ifndef BSD4_1 | ||
| 10244 | register unsigned char *p; | 10270 | register unsigned char *p; |
| 10245 | 10271 | ||
| 10246 | if (STRINGP (stuffstring)) | 10272 | if (STRINGP (stuffstring)) |
| @@ -10256,7 +10282,10 @@ stuff_buffered_input (stuffstring) | |||
| 10256 | 10282 | ||
| 10257 | /* Anything we have read ahead, put back for the shell to read. */ | 10283 | /* Anything we have read ahead, put back for the shell to read. */ |
| 10258 | /* ?? What should this do when we have multiple keyboards?? | 10284 | /* ?? What should this do when we have multiple keyboards?? |
| 10259 | Should we ignore anything that was typed in at the "wrong" kboard? */ | 10285 | Should we ignore anything that was typed in at the "wrong" kboard? |
| 10286 | |||
| 10287 | rms: we should stuff everything back into the kboard | ||
| 10288 | it came from. */ | ||
| 10260 | for (; kbd_fetch_ptr != kbd_store_ptr; kbd_fetch_ptr++) | 10289 | for (; kbd_fetch_ptr != kbd_store_ptr; kbd_fetch_ptr++) |
| 10261 | { | 10290 | { |
| 10262 | 10291 | ||
| @@ -10269,8 +10298,7 @@ stuff_buffered_input (stuffstring) | |||
| 10269 | } | 10298 | } |
| 10270 | 10299 | ||
| 10271 | input_pending = 0; | 10300 | input_pending = 0; |
| 10272 | #endif | 10301 | #endif /* SIGTSTP */ |
| 10273 | #endif /* BSD_SYSTEM and not BSD4_1 */ | ||
| 10274 | } | 10302 | } |
| 10275 | 10303 | ||
| 10276 | void | 10304 | void |
diff --git a/src/print.c b/src/print.c index 0abd30b5ce0..5a0f7fe6220 100644 --- a/src/print.c +++ b/src/print.c | |||
| @@ -1284,6 +1284,11 @@ print_preprocess (obj) | |||
| 1284 | int loop_count = 0; | 1284 | int loop_count = 0; |
| 1285 | Lisp_Object halftail; | 1285 | Lisp_Object halftail; |
| 1286 | 1286 | ||
| 1287 | /* Give up if we go so deep that print_object will get an error. */ | ||
| 1288 | /* See similar code in print_object. */ | ||
| 1289 | if (print_depth >= PRINT_CIRCLE) | ||
| 1290 | return; | ||
| 1291 | |||
| 1287 | /* Avoid infinite recursion for circular nested structure | 1292 | /* Avoid infinite recursion for circular nested structure |
| 1288 | in the case where Vprint_circle is nil. */ | 1293 | in the case where Vprint_circle is nil. */ |
| 1289 | if (NILP (Vprint_circle)) | 1294 | if (NILP (Vprint_circle)) |
| @@ -1294,11 +1299,6 @@ print_preprocess (obj) | |||
| 1294 | being_printed[print_depth] = obj; | 1299 | being_printed[print_depth] = obj; |
| 1295 | } | 1300 | } |
| 1296 | 1301 | ||
| 1297 | /* Give up if we go so deep that print_object will get an error. */ | ||
| 1298 | /* See similar code in print_object. */ | ||
| 1299 | if (print_depth >= PRINT_CIRCLE) | ||
| 1300 | return; | ||
| 1301 | |||
| 1302 | print_depth++; | 1302 | print_depth++; |
| 1303 | halftail = obj; | 1303 | halftail = obj; |
| 1304 | 1304 | ||
diff --git a/src/search.c b/src/search.c index 169baf05d55..0375f353dd2 100644 --- a/src/search.c +++ b/src/search.c | |||
| @@ -2974,6 +2974,9 @@ syms_of_search () | |||
| 2974 | last_thing_searched = Qnil; | 2974 | last_thing_searched = Qnil; |
| 2975 | staticpro (&last_thing_searched); | 2975 | staticpro (&last_thing_searched); |
| 2976 | 2976 | ||
| 2977 | saved_last_thing_searched = Qnil; | ||
| 2978 | staticpro (&saved_last_thing_searched); | ||
| 2979 | |||
| 2977 | defsubr (&Slooking_at); | 2980 | defsubr (&Slooking_at); |
| 2978 | defsubr (&Sposix_looking_at); | 2981 | defsubr (&Sposix_looking_at); |
| 2979 | defsubr (&Sstring_match); | 2982 | defsubr (&Sstring_match); |
diff --git a/src/w32fns.c b/src/w32fns.c index b12bd7be28b..d5ba6e9b078 100644 --- a/src/w32fns.c +++ b/src/w32fns.c | |||
| @@ -7735,14 +7735,14 @@ specified. Ensure that file exists if MUSTMATCH is non-nil. */) | |||
| 7735 | /* Create the dialog with PROMPT as title, using DIR as initial | 7735 | /* Create the dialog with PROMPT as title, using DIR as initial |
| 7736 | directory and using "*" as pattern. */ | 7736 | directory and using "*" as pattern. */ |
| 7737 | dir = Fexpand_file_name (dir, Qnil); | 7737 | dir = Fexpand_file_name (dir, Qnil); |
| 7738 | strncpy (init_dir, SDATA (dir), MAX_PATH); | 7738 | strncpy (init_dir, SDATA (ENCODE_SYSTEM (dir)), MAX_PATH); |
| 7739 | init_dir[MAX_PATH] = '\0'; | 7739 | init_dir[MAX_PATH] = '\0'; |
| 7740 | unixtodos_filename (init_dir); | 7740 | unixtodos_filename (init_dir); |
| 7741 | 7741 | ||
| 7742 | if (STRINGP (default_filename)) | 7742 | if (STRINGP (default_filename)) |
| 7743 | { | 7743 | { |
| 7744 | char *file_name_only; | 7744 | char *file_name_only; |
| 7745 | char *full_path_name = SDATA (default_filename); | 7745 | char *full_path_name = SDATA (ENCODE_SYSTEM (default_filename)); |
| 7746 | 7746 | ||
| 7747 | unixtodos_filename (full_path_name); | 7747 | unixtodos_filename (full_path_name); |
| 7748 | 7748 | ||
diff --git a/src/window.c b/src/window.c index b470b705397..0e318b039a4 100644 --- a/src/window.c +++ b/src/window.c | |||
| @@ -672,7 +672,7 @@ coordinates_in_window (w, x, y) | |||
| 672 | 672 | ||
| 673 | /* Outside any interesting column? */ | 673 | /* Outside any interesting column? */ |
| 674 | if (*x < left_x || *x > right_x) | 674 | if (*x < left_x || *x > right_x) |
| 675 | return ON_NOTHING; | 675 | return ON_VERTICAL_BORDER; |
| 676 | 676 | ||
| 677 | lmargin_width = window_box_width (w, LEFT_MARGIN_AREA); | 677 | lmargin_width = window_box_width (w, LEFT_MARGIN_AREA); |
| 678 | rmargin_width = window_box_width (w, RIGHT_MARGIN_AREA); | 678 | rmargin_width = window_box_width (w, RIGHT_MARGIN_AREA); |
| @@ -1801,7 +1801,7 @@ static Lisp_Object | |||
| 1801 | window_list_1 (window, minibuf, all_frames) | 1801 | window_list_1 (window, minibuf, all_frames) |
| 1802 | Lisp_Object window, minibuf, all_frames; | 1802 | Lisp_Object window, minibuf, all_frames; |
| 1803 | { | 1803 | { |
| 1804 | Lisp_Object tail, list; | 1804 | Lisp_Object tail, list, rest; |
| 1805 | 1805 | ||
| 1806 | decode_next_window_args (&window, &minibuf, &all_frames); | 1806 | decode_next_window_args (&window, &minibuf, &all_frames); |
| 1807 | list = Qnil; | 1807 | list = Qnil; |
| @@ -1810,7 +1810,17 @@ window_list_1 (window, minibuf, all_frames) | |||
| 1810 | if (candidate_window_p (XCAR (tail), window, minibuf, all_frames)) | 1810 | if (candidate_window_p (XCAR (tail), window, minibuf, all_frames)) |
| 1811 | list = Fcons (XCAR (tail), list); | 1811 | list = Fcons (XCAR (tail), list); |
| 1812 | 1812 | ||
| 1813 | return Fnreverse (list); | 1813 | /* Rotate the list to start with WINDOW. */ |
| 1814 | list = Fnreverse (list); | ||
| 1815 | rest = Fmemq (window, list); | ||
| 1816 | if (!NILP (rest) && !EQ (rest, list)) | ||
| 1817 | { | ||
| 1818 | for (tail = list; XCDR (tail) != rest; tail = XCDR (tail)) | ||
| 1819 | ; | ||
| 1820 | XSETCDR (tail, Qnil); | ||
| 1821 | list = nconc2 (rest, list); | ||
| 1822 | } | ||
| 1823 | return list; | ||
| 1814 | } | 1824 | } |
| 1815 | 1825 | ||
| 1816 | 1826 | ||