From 39d3e8b6bc465df7a9400165a4d813af8af37237 Mon Sep 17 00:00:00 2001
From: Eli Zaretskii <eliz@gnu.org>
Date: Sun, 29 Jul 2018 17:42:11 +0300
Subject: [PATCH] Fix last change in 'char_width'

* src/character.c (char_width): Make sure variable C is always
initialized.  (Bug#32276)
---
 src/character.c | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/src/character.c b/src/character.c
index 48268e04947..b96161ebfcb 100644
--- a/src/character.c
+++ b/src/character.c
@@ -289,15 +289,18 @@ char_width (int c, struct Lisp_Char_Table *dp)
       if (VECTORP (disp))
 	for (i = 0, width = 0; i < ASIZE (disp); i++)
 	  {
-	    int c;
+	    int c = -1;
 	    ch = AREF (disp, i);
 	    if (GLYPH_CODE_P (ch))
 	      c = GLYPH_CODE_CHAR (ch);
 	    else if (CHARACTERP (ch))
 	      c = XFASTINT (ch);
-	    int w = CHARACTER_WIDTH (c);
-	    if (INT_ADD_WRAPV (width, w, &width))
-	      string_overflow ();
+	    if (c >= 0)
+	      {
+		int w = CHARACTER_WIDTH (c);
+		if (INT_ADD_WRAPV (width, w, &width))
+		  string_overflow ();
+	      }
 	  }
     }
   return width;
-- 
2.39.5