[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug #64966] [troff]: make the underline font environment-specific
From: |
G. Branden Robinson |
Subject: |
[bug #64966] [troff]: make the underline font environment-specific |
Date: |
Sat, 2 Dec 2023 16:18:05 -0500 (EST) |
URL:
<https://savannah.gnu.org/bugs/?64966>
Summary: [troff]: make the underline font
environment-specific
Group: GNU roff
Submitter: gbranden
Submitted: Sat 02 Dec 2023 09:18:03 PM UTC
Category: Core
Severity: 1 - Wish
Item Group: Feature change
Status: None
Privacy: Public
Assigned to: None
Open/Closed: Open
Discussion Lock: Any
Planned Release: None
_______________________________________________________
Follow-up Comments:
-------------------------------------------------------
Date: Sat 02 Dec 2023 09:18:03 PM UTC By: G. Branden Robinson <gbranden>
While a little-used feature, it doesn't seem to be necessary for the
"underline font" to be global.
Also, its value is not introspectable. Add a read-only register `.uf` for
it.
This simple patch doesn't work because `get_underline_fontno` isn't in scope.
diff --git a/src/roff/troff/env.cpp b/src/roff/troff/env.cpp
index 5d844ed20..e12b9f34c 100644
--- a/src/roff/troff/env.cpp
+++ b/src/roff/troff/env.cpp
@@ -3539,6 +3539,7 @@ void init_env_requests()
init_string_env_reg(".sty", get_style_name_string);
init_string_env_reg(".tabs", get_tabs);
init_int_env_reg(".u", get_fill);
+ init_int_env_reg(".uf", get_underline_fontno);
init_vunits_env_reg(".v", get_vertical_spacing);
init_hunits_env_reg(".w", get_prev_char_width);
init_int_env_reg(".zoom", get_zoom);
Fixing this means moving some machinery from node.cpp to env.cpp.
We can see that this probably should have been the case all along.
src/roff/troff/env.cpp: if (fontno == get_underline_fontno())
src/roff/troff/env.cpp: if (prev_fontno == get_underline_fontno())
src/roff/troff/env.cpp: curenv->fontno = curenv->pre_underline_fontno;
src/roff/troff/env.cpp: curenv->pre_underline_fontno = curenv->fontno;
src/roff/troff/env.cpp: curenv->fontno = get_underline_fontno();
src/roff/troff/env.cpp: fontno = pre_underline_fontno;
src/roff/troff/env.cpp: errprint(" font number before underlining: %1\n",
pre_underline_fontno);
src/roff/troff/env.cpp: init_int_env_reg(".uf", get_underline_fontno);
src/roff/troff/env.h: int pre_underline_fontno;
src/roff/troff/node.cpp:static int underline_fontno = 2;
src/roff/troff/node.cpp: underline_fontno = finfo.position;
src/roff/troff/node.cpp:int get_underline_fontno()
src/roff/troff/node.cpp: return underline_fontno;
src/roff/troff/node.h:extern int get_underline_fontno();
_______________________________________________________
Reply to this item at:
<https://savannah.gnu.org/bugs/?64966>
_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [bug #64966] [troff]: make the underline font environment-specific,
G. Branden Robinson <=