Lagrange [release]
GmDocument: Monospace body isn't normalized
[1mdiff --git a/src/gmdocument.c b/src/gmdocument.c[m
[1mindex 4e76a22a..f5ce90a1 100644[m
[1m--- a/src/gmdocument.c[m
[1m+++ b/src/gmdocument.c[m
[36m@@ -264,6 +264,17 @@[m [mstatic void linkContentLaidOut_GmDocument_(iGmDocument *d, const iGmMediaInfo *m[m
}[m
}[m
[m
[32m+[m[32mstatic iBool isNormalized_GmDocument_(const iGmDocument *d) {[m
[32m+[m[32m const iPrefs *prefs = prefs_App();[m
[32m+[m[32m if (startsWithCase_String(&d->url, "gemini:") && prefs->monospaceGemini) {[m
[32m+[m[32m return iFalse;[m
[32m+[m[32m }[m
[32m+[m[32m if (startsWithCase_String(&d->url, "gopher:") && prefs->monospaceGopher) {[m
[32m+[m[32m return iFalse;[m
[32m+[m[32m }[m
[32m+[m[32m return iTrue;[m
[32m+[m[32m}[m
[32m+[m
static void doLayout_GmDocument_(iGmDocument *d) {[m
const iBool isMono = isForcedMonospace_GmDocument_(d);[m
/* TODO: Collect these parameters into a GmTheme. */[m
[36m@@ -324,6 +335,7 @@[m [mstatic void doLayout_GmDocument_(iGmDocument *d) {[m
uint16_t preId = 0;[m
iBool enableIndents = iFalse;[m
iBool addSiteBanner = d->bannerType != none_GmDocumentBanner;[m
[32m+[m[32m const iBool isNormalized = isNormalized_GmDocument_(d);[m
enum iGmLineType prevType = text_GmLineType;[m
if (d->format == plainText_GmDocumentFormat) {[m
isPreformat = iTrue;[m
[36m@@ -363,7 +375,9 @@[m [mstatic void doLayout_GmDocument_(iGmDocument *d) {[m
type = text_GmLineType;[m
}[m
}[m
[31m- trimLine_Rangecc_(&line, type);[m
[32m+[m[32m if (isNormalized) {[m
[32m+[m[32m trimLine_Rangecc_(&line, type);[m
[32m+[m[32m }[m
run.font = fonts[type];[m
/* Remember headings for the document outline. */[m
if (type == heading1_GmLineType || type == heading2_GmLineType || type == heading3_GmLineType) {[m
[36m@@ -1219,7 +1233,9 @@[m [mvoid setUrl_GmDocument(iGmDocument *d, const iString *url) {[m
[m
void setSource_GmDocument(iGmDocument *d, const iString *source, int width) {[m
set_String(&d->source, source);[m
[31m- normalize_GmDocument(d);[m
[32m+[m[32m if (isNormalized_GmDocument_(d)) {[m
[32m+[m[32m normalize_GmDocument(d);[m
[32m+[m[32m }[m
setWidth_GmDocument(d, width); /* re-do layout */[m
}[m
[m