svn commit: r362515 - head/contrib/nvi/common

Yuri Pankov yuripv at FreeBSD.org
Mon Jun 22 22:59:04 UTC 2020


Author: yuripv
Date: Mon Jun 22 22:59:03 2020
New Revision: 362515
URL: https://svnweb.freebsd.org/changeset/base/362515

Log:
  Revert r362148.
  
  Breaks UTF-8 input for new or having only 7bit characters present files.
  
  Reported by:	glebius

Modified:
  head/contrib/nvi/common/exf.c

Modified: head/contrib/nvi/common/exf.c
==============================================================================
--- head/contrib/nvi/common/exf.c	Mon Jun 22 22:43:09 2020	(r362514)
+++ head/contrib/nvi/common/exf.c	Mon Jun 22 22:59:03 2020	(r362515)
@@ -1237,10 +1237,7 @@ file_encinit(SCR *sp)
 	}
 
 	/*
-	 * 1. Check for valid UTF-8.
-	 * 2. Check if fallback fileencoding is set and is NOT UTF-8.
-	 * 3. Check if user locale's encoding is NOT UTF-8.
-	 * 4. Use ISO8859-1 as last resort.
+	 * Detect UTF-8 and fallback to the locale/preset encoding.
 	 *
 	 * XXX
 	 * A manually set O_FILEENCODING indicates the "fallback
@@ -1249,13 +1246,9 @@ file_encinit(SCR *sp)
 	 */
 	if (looks_utf8(buf, blen) > 1)
 		o_set(sp, O_FILEENCODING, OS_STRDUP, "utf-8", 0);
-	else if (O_ISSET(sp, O_FILEENCODING) &&
-	    strcasecmp(O_STR(sp, O_FILEENCODING), "utf-8") != 0)
-		/* Use fileencoding as is */ ;
-	else if (strcasecmp(codeset(), "utf-8") != 0)
+	else if (!O_ISSET(sp, O_FILEENCODING) ||
+	    !strcasecmp(O_STR(sp, O_FILEENCODING), "utf-8"))
 		o_set(sp, O_FILEENCODING, OS_STRDUP, codeset(), 0);
-	else
-		o_set(sp, O_FILEENCODING, OS_STRDUP, "iso8859-1", 0);
 
 	conv_enc(sp, O_FILEENCODING, 0);
 #endif


More information about the svn-src-head mailing list