8ae8a99
diff -up mgetty-1.1.36/logname.c.issue mgetty-1.1.36/logname.c
8ae8a99
--- mgetty-1.1.36/logname.c.issue	2008-10-09 22:56:17.000000000 +0200
8ae8a99
+++ mgetty-1.1.36/logname.c	2008-10-09 22:56:17.000000000 +0200
8ae8a99
@@ -97,12 +97,14 @@ char * ln_escape_prompt _P1( (ep), char 
cvsdist 20a54a4
 	    switch ( *ep )
cvsdist 20a54a4
 	    {
cvsdist 20a54a4
 	      case 'n': p[i++] = '\n'; break;
cvsdist 20a54a4
-	      case 'r': p[i++] = '\r'; break;
cvsdist 20a54a4
 	      case 'g': p[i++] = '\007'; break;
cvsdist 5b01faa
+	      case 'f': p[i++] = '\f'; break;
cvsdist 5b01faa
+#ifndef ESCAPE_LIKE_AGETTY
cvsdist 5b01faa
+	      case 'r': p[i++] = '\r'; break;
cvsdist 5b01faa
 	      case 'b': p[i++] = '\010'; break;
cvsdist 5b01faa
 	      case 'v': p[i++] = '\013'; break;
cvsdist 5b01faa
-	      case 'f': p[i++] = '\f'; break;
cvsdist 5b01faa
 	      case 't': p[i++] = '\t'; break;
cvsdist 5b01faa
+#endif
cvsdist 20a54a4
 	      case 's':					/* Operating System */
cvsdist 20a54a4
 		    if ( i + strlen(un.sysname) +1 > MAX_PROMPT_LENGTH ) break;
cvsdist 20a54a4
 		    i += strappnd( &p[i], un.sysname );
8ae8a99
@@ -111,10 +113,16 @@ char * ln_escape_prompt _P1( (ep), char 
cvsdist 20a54a4
 		    if ( i + strlen(un.machine) +1 > MAX_PROMPT_LENGTH ) break;
cvsdist 20a54a4
 		    i += strappnd( &p[i], un.machine );
cvsdist 20a54a4
 		    break;
cvsdist 5b01faa
+#ifdef ESCAPE_LIKE_AGETTY
cvsdist 5b01faa
+	      case 'r':					/* OS release */
cvsdist 5b01faa
+#endif
cvsdist 20a54a4
 	      case 'R':					/* OS release */
cvsdist 20a54a4
 		    if ( i + strlen(un.release) +1 > MAX_PROMPT_LENGTH ) break;
cvsdist 20a54a4
 		    i += strappnd( &p[i], un.release );
cvsdist 20a54a4
 		    break;
cvsdist 5b01faa
+#ifdef ESCAPE_LIKE_AGETTY
cvsdist 5b01faa
+	      case 'v':					/* OS version */
cvsdist 5b01faa
+#endif
cvsdist 20a54a4
 	      case 'V':					/* OS version */
cvsdist 20a54a4
 		    if ( i + strlen(un.version) +1 > MAX_PROMPT_LENGTH ) break;
cvsdist 20a54a4
 		    i += strappnd( &p[i], un.version );
8ae8a99
@@ -126,6 +134,12 @@ char * ln_escape_prompt _P1( (ep), char 
cvsdist 20a54a4
 		    i += strappnd( &p[i], CallerId );
cvsdist 20a54a4
 		    break;
cvsdist 20a54a4
 		}
cvsdist 5b01faa
+#ifdef ESCAPE_LIKE_AGETTY
cvsdist 5b01faa
+	      case 'l':					/* this doesn't cause */
cvsdist 5b01faa
+							/* conflicts between */
cvsdist 5b01faa
+							/* mgetty and agetty */
cvsdist 5b01faa
+							/* maybe unconditionalize? */
cvsdist 5b01faa
+#endif
cvsdist 20a54a4
 	      case 'P':					/* port name */
cvsdist 20a54a4
 	      case 'L':					/* tty line */
cvsdist 20a54a4
 		{
8ae8a99
@@ -147,13 +161,16 @@ char * ln_escape_prompt _P1( (ep), char 
cvsdist 5b01faa
 		    i += strappnd( &p[i], Connect);
cvsdist 5b01faa
 		    break;
cvsdist 5b01faa
 		}
cvsdist 5b01faa
-	      case 'N':					/* numer of */
cvsdist 5b01faa
+	      case 'N':					/* number of */
cvsdist 5b01faa
 	      case 'U':					/* users */
cvsdist 5b01faa
 		{
cvsdist 5b01faa
 		    sprintf( &p[i], "%d", get_current_users() );
cvsdist 20a54a4
 		    i = strlen(p);
cvsdist 20a54a4
 		    break;
cvsdist 20a54a4
 		}
cvsdist 5b01faa
+#ifdef ESCAPE_LIKE_AGETTY
cvsdist 5b01faa
+	      case 'b':					/* baud rate */
cvsdist 5b01faa
+#endif
cvsdist 20a54a4
 	      case 'S':					/* port speed */
cvsdist 20a54a4
 		{					/* ugly, I know. */
cvsdist 20a54a4
 		    TIO temp_t;
8ae8a99
@@ -162,6 +179,10 @@ char * ln_escape_prompt _P1( (ep), char 
cvsdist 20a54a4
 		    i = strlen(p);
cvsdist 20a54a4
 		}
cvsdist 20a54a4
 		break;
cvsdist 5b01faa
+#ifdef ESCAPE_LIKE_AGETTY
cvsdist 20a54a4
+	      case 'd':
cvsdist 20a54a4
+	      case 't':
cvsdist 5b01faa
+#endif
cvsdist 20a54a4
 	      case 'D':			/* fallthrough */
cvsdist 20a54a4
 	      case 'T':
cvsdist 20a54a4
 		if ( i + 30 > MAX_PROMPT_LENGTH )
8ae8a99
@@ -175,7 +196,7 @@ char * ln_escape_prompt _P1( (ep), char 
cvsdist 20a54a4
 
cvsdist 20a54a4
 		    if ( tm == NULL ) break;
cvsdist 20a54a4
 
cvsdist 20a54a4
-		    if ( *ep == 'D' )
cvsdist 5b01faa
+		    if ( ( *ep == 'D' ) || ( *ep == 'd' ) )
cvsdist 20a54a4
 		        sprintf( &p[i], "%d/%d/%d", tm->tm_mon+1,
cvsdist 20a54a4
 				 tm->tm_mday, tm->tm_year + 1900 );
cvsdist 20a54a4
 		    else
8ae8a99
diff -up mgetty-1.1.36/policy.h.issue mgetty-1.1.36/policy.h
8ae8a99
--- mgetty-1.1.36/policy.h.issue	2008-10-09 22:56:17.000000000 +0200
8ae8a99
+++ mgetty-1.1.36/policy.h	2008-10-09 22:56:17.000000000 +0200
8ae8a99
@@ -228,6 +228,14 @@
cvsdist 5b01faa
  */
cvsdist 5b01faa
 #define NOLOGIN_FILE "/etc/nologin.%s"
cvsdist 5b01faa
 
cvsdist 5b01faa
+/* How to handle escape sequences in /etc/issue and friends.
cvsdist 5b01faa
+ *
cvsdist 5b01faa
+ * If ESCAPE_LIKE_AGETTY is defined, escape sequences (stored as backslashes
cvsdist 5b01faa
+ * followed by some character) will be interpreted in a manner consistent
cvsdist 5b01faa
+ * with agetty.  Not defining ESCAPE_LIKE_AGETTY will cause the default
cvsdist 5b01faa
+ * behavior to be utilized.
cvsdist 5b01faa
+ */
cvsdist 5b01faa
+#define ESCAPE_LIKE_AGETTY
cvsdist 5b01faa
 
cvsdist 5b01faa
 /* misc */
cvsdist 5b01faa