commit 3bea02bb480ee797665cec5bf443c5d23a4f8fc6
Author: Dan Gildea <dgildea>
Date:   Fri Oct 26 16:33:25 2018 -0400

    fallback for unknown column types
    
    such as those introduced by \newcolumntype.
    https://bugs.debian.org/899306

diff --git a/Changes b/Changes
index a74c6a3..36058a2 100644
--- a/Changes
+++ b/Changes
@@ -112,6 +112,9 @@
 # A more detailed log history can be found within the particular files, near
 # the top.
 #
+#		- fallback for unknown column types, such as those
+#		  introduced by \newcolumntype.
+#		  https://bugs.debian.org/899306
 #
 #--------- v2018.3
 #
diff --git a/versions/html4_0.pl b/versions/html4_0.pl
index a465feb..c87257f 100644
--- a/versions/html4_0.pl
+++ b/versions/html4_0.pl
@@ -692,13 +692,6 @@ sub translate_colspec {
 	    $at_text = $after_text = '';
 	    $cols++;
 
-	} elsif ( $char =~ /^(l|X)$/ ) {
-	    if ($at_text) { $at_text = $art_br.$at_text; $after_text = $art_br; }
-	    push(@colspec
-	        ,"$cellopen=\"LEFT\"$NOWRAP>$at_text$content_mark$after_text$cellclose");
-	    $at_text = $after_text = '';
-	    $cols++;
-
 	} elsif ( $char eq "r" ) {
 	    if ($at_text) { $at_text = $art_br.$at_text; $after_text = $art_br; }
 	    push(@colspec
@@ -847,6 +840,14 @@ sub translate_colspec {
 		$repeat--;
 	    };
 	    $colspec = $celldata . $colspec;
+	} elsif ( $char =~ /^(l|X)$/ ||
+		  $char =~ /^.$/ ) {	# also the fallback for unknown column types
+	    if ($at_text) { $at_text = $art_br.$at_text; $after_text = $art_br; }
+	    push(@colspec
+	        ,"$cellopen=\"LEFT\"$NOWRAP>$at_text$content_mark$after_text$cellclose");
+	    $at_text = $after_text = '';
+	    $cols++;
+
 	};
     };
     $colspec[$#colspec] =~ s/($art_br)?$cellclose/$at_text$1$cellclose/
diff --git a/versions/html5_0.pl b/versions/html5_0.pl
index 6648d4a..6028252 100644
--- a/versions/html5_0.pl
+++ b/versions/html5_0.pl
@@ -681,13 +681,6 @@ sub translate_colspec {
 	    $at_text = $after_text = '';
 	    $cols++;
 
-	} elsif ( $char =~ /^(l|X)$/ ) {
-	    if ($at_text) { $at_text = $art_br.$at_text; $after_text = $art_br; }
-	    push(@colspec
-	        ,"$cellopen=\"LEFT\"$NOWRAP>$at_text$content_mark$after_text$cellclose");
-	    $at_text = $after_text = '';
-	    $cols++;
-
 	} elsif ( $char eq "r" ) {
 	    if ($at_text) { $at_text = $art_br.$at_text; $after_text = $art_br; }
 	    push(@colspec
@@ -835,6 +828,14 @@ sub translate_colspec {
 		$repeat--;
 	    };
 	    $colspec = $celldata . $colspec;
+	} elsif ( $char =~ /^(l|X)$/ ||
+		  $char =~ /^.$/ ) {	# also the fallback for unknown column types
+	    if ($at_text) { $at_text = $art_br.$at_text; $after_text = $art_br; }
+	    push(@colspec
+	        ,"$cellopen=\"LEFT\"$NOWRAP>$at_text$content_mark$after_text$cellclose");
+	    $at_text = $after_text = '';
+	    $cols++;
+
 	};
     };
     $colspec[$#colspec] =~ s/($art_br)?$cellclose/$at_text$1$cellclose/
