* Function: window-fringes @ 2006-08-15 0:34 Nick Roberts 2006-08-15 8:57 ` Kim F. Storm 2006-08-15 21:03 ` Chong Yidong 0 siblings, 2 replies; 10+ messages in thread From: Nick Roberts @ 2006-08-15 0:34 UTC (permalink / raw) On a text-only terminal, I think window-fringes should always return (0 0 nil). -- Nick http://www.inet.net.nz/~nickrob ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Function: window-fringes 2006-08-15 0:34 Function: window-fringes Nick Roberts @ 2006-08-15 8:57 ` Kim F. Storm 2006-08-15 10:05 ` Nick Roberts 2006-08-15 21:03 ` Chong Yidong 1 sibling, 1 reply; 10+ messages in thread From: Kim F. Storm @ 2006-08-15 8:57 UTC (permalink / raw) Cc: emacs-devel Nick Roberts <nickrob@snap.net.nz> writes: > On a text-only terminal, I think window-fringes should always return (0 0 nil). Ok. Pls. fix it. -- Kim F. Storm <storm@cua.dk> http://www.cua.dk ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Function: window-fringes 2006-08-15 8:57 ` Kim F. Storm @ 2006-08-15 10:05 ` Nick Roberts 2006-08-15 18:40 ` Richard Stallman 2006-08-15 20:40 ` Kim F. Storm 0 siblings, 2 replies; 10+ messages in thread From: Nick Roberts @ 2006-08-15 10:05 UTC (permalink / raw) Cc: emacs-devel > > On a text-only terminal, I think window-fringes should always return > > (0 0 nil). > > Ok. Pls. fix it. Well it's a bit of a shot in the dark. In future with multi-tty, where some windows might be graphic and others text-only, it might be better to condition on the selected window: if (WINDOW_FRAME_COLUMN_WIDTH (w) == 1) But maybe that's not orthodox at the moment. -- Nick http://www.inet.net.nz/~nickrob *** window.c 19 Jul 2006 01:29:55 +1200 1.553 --- window.c 15 Aug 2006 21:59:53 +1200 *************** *** 6687,6696 **** Lisp_Object window; { struct window *w = decode_window (window); ! return Fcons (make_number (WINDOW_LEFT_FRINGE_WIDTH (w)), ! Fcons (make_number (WINDOW_RIGHT_FRINGE_WIDTH (w)), ! Fcons ((WINDOW_HAS_FRINGES_OUTSIDE_MARGINS (w) ? ! Qt : Qnil), Qnil))); } --- 6687,6700 ---- Lisp_Object window; { struct window *w = decode_window (window); ! if (EQ (Vwindow_system, Qnil)) ! return Fcons (make_number (0), (Fcons (make_number (0), ! (Fcons (Qnil, Qnil))))); ! else ! return Fcons (make_number (WINDOW_LEFT_FRINGE_WIDTH (w)), ! Fcons (make_number (WINDOW_RIGHT_FRINGE_WIDTH (w)), ! Fcons ((WINDOW_HAS_FRINGES_OUTSIDE_MARGINS (w) ? ! Qt : Qnil), Qnil))); } ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Function: window-fringes 2006-08-15 10:05 ` Nick Roberts @ 2006-08-15 18:40 ` Richard Stallman 2006-08-15 22:20 ` Nick Roberts 2006-08-15 20:40 ` Kim F. Storm 1 sibling, 1 reply; 10+ messages in thread From: Richard Stallman @ 2006-08-15 18:40 UTC (permalink / raw) Cc: emacs-devel, storm ! if (EQ (Vwindow_system, Qnil)) ! return Fcons (make_number (0), (Fcons (make_number (0), ! (Fcons (Qnil, Qnil))))); ! else ! return Fcons (make_number (WINDOW_LEFT_FRINGE_WIDTH (w)), ! Fcons (make_number (WINDOW_RIGHT_FRINGE_WIDTH (w)), ! Fcons ((WINDOW_HAS_FRINGES_OUTSIDE_MARGINS (w) ? ! Qt : Qnil), Qnil))); What causes the existing code to return anything other than (0 0 nil) on a tty? It seems to me that if that happens, it indicates a bug. Rather than paper over the bug's effects in this one spot, we should see what causes the bug. Then we could perhaps paper it over anyway, or perhaps fix it. By the way, please put the ? operator (like all infix operators) after the line break, not before. ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Function: window-fringes 2006-08-15 18:40 ` Richard Stallman @ 2006-08-15 22:20 ` Nick Roberts 2006-08-16 19:27 ` Richard Stallman 0 siblings, 1 reply; 10+ messages in thread From: Nick Roberts @ 2006-08-15 22:20 UTC (permalink / raw) Cc: emacs-devel, storm Richard Stallman writes: > ! if (EQ (Vwindow_system, Qnil)) > ! return Fcons (make_number (0), (Fcons (make_number (0), > ! (Fcons (Qnil, Qnil))))); > ! else > ! return Fcons (make_number (WINDOW_LEFT_FRINGE_WIDTH (w)), > ! Fcons (make_number (WINDOW_RIGHT_FRINGE_WIDTH (w)), > ! Fcons ((WINDOW_HAS_FRINGES_OUTSIDE_MARGINS (w) ? > ! Qt : Qnil), Qnil))); > > What causes the existing code to return anything other than (0 0 nil) > on a tty? You can set it with set-window-fringes, directly through the variables left-fringe-width or right-fringe-width and probably with modify-frame-parameters (or specifying frame parameters). > It seems to me that if that happens, it indicates a bug. > Rather than paper over the bug's effects in this one spot, we should > see what causes the bug. Then we could perhaps paper it over anyway, > or perhaps fix it. I think this is the right change. You can't stop a user from changing variable values but window-fringes purports to return actual window attributes, not the value of some variables > By the way, please put the ? operator (like all infix operators) > after the line break, not before. OK. -- Nick http://www.inet.net.nz/~nickrob ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Function: window-fringes 2006-08-15 22:20 ` Nick Roberts @ 2006-08-16 19:27 ` Richard Stallman 2006-08-17 3:34 ` Nick Roberts 0 siblings, 1 reply; 10+ messages in thread From: Richard Stallman @ 2006-08-16 19:27 UTC (permalink / raw) Cc: emacs-devel, storm You can set it with set-window-fringes, directly through the variables left-fringe-width or right-fringe-width and probably with modify-frame-parameters (or specifying frame parameters). Judging from reading the code, I don't think that the values of left-fringe-width and right-fringe-width have any effect on the value of WINDOW_LEFT_FRINGE_WIDTH, on a tty frame. I don't think that trying to specify the frame parameter has any effect on the frame fringe width, on a tty frame. Have you actually observed that either of these actions has such an effect? It looks like set-window-fringes really can set the frame width slots. I think that is the bug. So let's change it not to set them on a tty. With the following change, does any of this problem persist? *** window.c 18 Jul 2006 09:41:15 -0400 1.553 --- window.c 16 Aug 2006 12:47:34 -0400 *************** *** 6657,6662 **** --- 6657,6666 ---- if (!NILP (right_width)) CHECK_NATNUM (right_width); + /* Do nothing on a tty. */ + if (! FRAME_WINDOW_P (f)) + return Qnil; + if (!EQ (w->left_fringe_width, left_width) || !EQ (w->right_fringe_width, right_width) || !EQ (w->fringes_outside_margins, outside_margins)) ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Function: window-fringes 2006-08-16 19:27 ` Richard Stallman @ 2006-08-17 3:34 ` Nick Roberts 2006-08-17 15:19 ` Richard Stallman 0 siblings, 1 reply; 10+ messages in thread From: Nick Roberts @ 2006-08-17 3:34 UTC (permalink / raw) Cc: emacs-devel, storm Richard Stallman writes: > You can set it with set-window-fringes, directly through the variables > left-fringe-width or right-fringe-width and probably with > modify-frame-parameters (or specifying frame parameters). > > Judging from reading the code, I don't think that the values of > left-fringe-width and right-fringe-width have any effect on the value > of WINDOW_LEFT_FRINGE_WIDTH, on a tty frame. I don't think that > trying to specify the frame parameter has any effect on the frame > fringe width, on a tty frame. Have you actually observed that either > of these actions has such an effect? Yes, I think you're right. I must have made some false assumptions. > It looks like set-window-fringes really can set the frame width > slots. I think that is the bug. So let's change it not to set them > on a tty. > > With the following change, does any of this problem persist? > > > *** window.c 18 Jul 2006 09:41:15 -0400 1.553 > --- window.c 16 Aug 2006 12:47:34 -0400 > *************** > *** 6657,6662 **** > --- 6657,6666 ---- > if (!NILP (right_width)) > CHECK_NATNUM (right_width); > > + /* Do nothing on a tty. */ > + if (! FRAME_WINDOW_P (f)) > + return Qnil; > + > if (!EQ (w->left_fringe_width, left_width) > || !EQ (w->right_fringe_width, right_width) > || !EQ (w->fringes_outside_margins, outside_margins)) It doesn't compile. How about below? (using Kim's suggested condition for window-fringes). -- Nick http://www.inet.net.nz/~nickrob *** window.c 19 Jul 2006 01:29:55 +1200 1.553 --- window.c 17 Aug 2006 15:26:32 +1200 *************** *** 6656,6665 **** CHECK_NATNUM (left_width); if (!NILP (right_width)) CHECK_NATNUM (right_width); ! ! if (!EQ (w->left_fringe_width, left_width) ! || !EQ (w->right_fringe_width, right_width) ! || !EQ (w->fringes_outside_margins, outside_margins)) { w->left_fringe_width = left_width; w->right_fringe_width = right_width; --- 6656,6667 ---- CHECK_NATNUM (left_width); if (!NILP (right_width)) CHECK_NATNUM (right_width); ! ! /* Do nothing on a tty. */ ! if (FRAME_WINDOW_P (WINDOW_XFRAME (w)) ! && (!EQ (w->left_fringe_width, left_width) ! || !EQ (w->right_fringe_width, right_width) ! || !EQ (w->fringes_outside_margins, outside_margins))) { w->left_fringe_width = left_width; w->right_fringe_width = right_width; *************** *** 6687,6696 **** Lisp_Object window; { struct window *w = decode_window (window); return Fcons (make_number (WINDOW_LEFT_FRINGE_WIDTH (w)), Fcons (make_number (WINDOW_RIGHT_FRINGE_WIDTH (w)), ! Fcons ((WINDOW_HAS_FRINGES_OUTSIDE_MARGINS (w) ? ! Qt : Qnil), Qnil))); } --- 6689,6699 ---- Lisp_Object window; { struct window *w = decode_window (window); + return Fcons (make_number (WINDOW_LEFT_FRINGE_WIDTH (w)), Fcons (make_number (WINDOW_RIGHT_FRINGE_WIDTH (w)), ! Fcons ((WINDOW_HAS_FRINGES_OUTSIDE_MARGINS (w) ! ? Qt : Qnil), Qnil))); } ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Function: window-fringes 2006-08-17 3:34 ` Nick Roberts @ 2006-08-17 15:19 ` Richard Stallman 0 siblings, 0 replies; 10+ messages in thread From: Richard Stallman @ 2006-08-17 15:19 UTC (permalink / raw) Cc: emacs-devel, storm It doesn't compile. Your way of fixing it seems right. Please install it. ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Function: window-fringes 2006-08-15 10:05 ` Nick Roberts 2006-08-15 18:40 ` Richard Stallman @ 2006-08-15 20:40 ` Kim F. Storm 1 sibling, 0 replies; 10+ messages in thread From: Kim F. Storm @ 2006-08-15 20:40 UTC (permalink / raw) Cc: emacs-devel Nick Roberts <nickrob@snap.net.nz> writes: > Lisp_Object window; > { > struct window *w = decode_window (window); > ! if (EQ (Vwindow_system, Qnil)) Isn't this better? if (!FRAME_WINDOW_P (WINDOW_XFRAME (w))) > ! return Fcons (make_number (0), (Fcons (make_number (0), > ! (Fcons (Qnil, Qnil))))); > ! else > ! return Fcons (make_number (WINDOW_LEFT_FRINGE_WIDTH (w)), > ! Fcons (make_number (WINDOW_RIGHT_FRINGE_WIDTH (w)), > ! Fcons ((WINDOW_HAS_FRINGES_OUTSIDE_MARGINS (w) ? > ! Qt : Qnil), Qnil))); > } > > > > -- Kim F. Storm <storm@cua.dk> http://www.cua.dk ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Function: window-fringes 2006-08-15 0:34 Function: window-fringes Nick Roberts 2006-08-15 8:57 ` Kim F. Storm @ 2006-08-15 21:03 ` Chong Yidong 1 sibling, 0 replies; 10+ messages in thread From: Chong Yidong @ 2006-08-15 21:03 UTC (permalink / raw) Cc: emacs-devel Nick Roberts <nickrob@snap.net.nz> writes: > On a text-only terminal, I think window-fringes should always return (0 0 nil). How do you make it return something other than (0 0 nil)? ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2006-08-17 15:19 UTC | newest] Thread overview: 10+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2006-08-15 0:34 Function: window-fringes Nick Roberts 2006-08-15 8:57 ` Kim F. Storm 2006-08-15 10:05 ` Nick Roberts 2006-08-15 18:40 ` Richard Stallman 2006-08-15 22:20 ` Nick Roberts 2006-08-16 19:27 ` Richard Stallman 2006-08-17 3:34 ` Nick Roberts 2006-08-17 15:19 ` Richard Stallman 2006-08-15 20:40 ` Kim F. Storm 2006-08-15 21:03 ` Chong Yidong
Code repositories for project(s) associated with this external index https://git.savannah.gnu.org/cgit/emacs.git https://git.savannah.gnu.org/cgit/emacs/org-mode.git This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.