Index: driver/as.cc
===================================================================
--- driver/as.cc	(revision 130a7785ae9541990654248874f6b041c99f2c76)
+++ driver/as.cc	(revision 88792f32d48d31ba543a7f4a4db9b9b2c64b5677)
@@ -11,6 +11,6 @@
 // Created On       : Wed Aug  1 10:49:42 2018
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Dec  7 20:49:15 2021
-// Update Count     : 121
+// Last Modified On : Tue Dec  7 21:15:25 2021
+// Update Count     : 132
 //
 
@@ -18,20 +18,15 @@
 #include <cstdlib>										// exit
 #include <fcntl.h>										// open
-#include <unistd.h>
-#include <sys/stat.h>
+#include <cstring>										// strstr, memmove
+#include <unistd.h>										// ftruncate,execvp
+#include <sys/stat.h>									// fstat
 #include <sys/mman.h>									// mmap
-#include <string.h>
 
 //#define __DEBUG_H__
-
-#ifdef __DEBUG_H__
-#include <iostream>
-using namespace std;
-#endif // __DEBUG_H__
 
 int main( const int argc, const char * argv[] ) {
 	#ifdef __DEBUG_H__
 	for ( int i = 0; i < argc; i += 1 ) {
-		cerr << argv[i] << endl;
+		fprintf( stderr, "%s\n", argv[i] );
 	} // for
 	#endif // __DEBUG_H__
@@ -56,10 +51,12 @@
 				} // for
 				cursor -= 1;							// backup over '\n'
-				if ( (*(cursor - 3) == '0' && *(cursor - 2) == 'x' && *(cursor - 1) == 'c') ) { // 0xc => C99
+				// From elfcpp/dwarf.h in the binutils source tree.
+				// DW_LANG_C89 = 0x1, DW_LANG_C = 0x2, DW_LANG_C99 = 0xc, DW_LANG_C11 = 0x1d
+				if ( *(cursor - 3) == '0' && *(cursor - 2) == 'x' &&
+					 (*(cursor - 1) == 'c' || *(cursor - 1) == '1' || *(cursor - 1) == '2') ) { // C89/C/C99
 					// Expand file by one byte to hold 2 character Cforall language code.
 					if ( ftruncate( fd, size + 1 ) ) { perror( "ftruncate" ); exit( EXIT_FAILURE ); };
 					memmove( cursor + 1, cursor, start + size - cursor ); // move remaining text 1 character right
-				} else if ( *(cursor - 4) == '0' && *(cursor - 3) == 'x' && *(cursor - 2) == '1' && *(cursor - 1) == 'd' ) { // 0x1d => C11
-					// replace "1d" with "25"
+				} else if ( *(cursor - 4) == '0' && *(cursor - 3) == 'x' && *(cursor - 2) == '1' && *(cursor - 1) == 'd' ) { // C11
 				} else {
 					for ( int i = 0; i < 6; i += 1 ) {	// move N (magic) lines forward
@@ -72,5 +69,5 @@
 				} // if
 
-				*(cursor - 2) = '2';					// replace C/C11 language value with CFA
+				*(cursor - 2) = '2';					// replace C89/C/C99/C11 language code with CFA code
 				*(cursor - 1) = '5';
 			} // if
