|
|
702687f |
diff --git a/logname.c b/logname.c
|
|
|
702687f |
index 6f082d9..cb76f20 100644
|
|
|
702687f |
--- a/logname.c
|
|
|
702687f |
+++ b/logname.c
|
|
|
702687f |
@@ -105,12 +105,14 @@ char * ln_escape_prompt _P1( (ep), char * ep )
|
|
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 );
|
|
|
702687f |
@@ -119,10 +121,16 @@ char * ln_escape_prompt _P1( (ep), char * ep )
|
|
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 );
|
|
|
702687f |
@@ -134,6 +142,12 @@ char * ln_escape_prompt _P1( (ep), char * ep )
|
|
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 |
{
|
|
|
702687f |
@@ -155,13 +169,16 @@ char * ln_escape_prompt _P1( (ep), char * ep )
|
|
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;
|
|
|
702687f |
@@ -170,6 +187,10 @@ char * ln_escape_prompt _P1( (ep), char * ep )
|
|
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 )
|
|
|
702687f |
@@ -183,7 +204,7 @@ char * ln_escape_prompt _P1( (ep), char * ep )
|
|
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
|
|
|
702687f |
diff --git a/policy.h b/policy.h
|
|
|
702687f |
index 7946e02..57ccfdb 100644
|
|
|
702687f |
--- a/policy.h
|
|
|
702687f |
+++ b/policy.h
|
|
|
702687f |
@@ -238,6 +238,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 |
|