File xlockmore-pam.patch of Package xlockmore

This is more a hack than a correct fix.

Instead of hadcoded expecting of "Password" prompt as a first PAM query, just
expect that it asks for password (xlock hardcodes "Password" as a first query in
the GUI).

It will unbreak xlock with non-English locales, but it will still swallow the
first prompt from PAM. In most cases, it is just translated "Password" string,
but in some cases it can be a different question.

To fully fix the problem, GUI needs to be redone. Instead of hardcoded
"Password" prompt in the initial phase of authentication, get all prompts from
PAM.

Index: xlockmore-5.53/xlock/passwd.c
===================================================================
--- xlockmore-5.53.orig/xlock/passwd.c
+++ xlockmore-5.53/xlock/passwd.c
@@ -335,29 +335,19 @@ PAM_conv(int num_msg,
 #ifdef DEBUG
 				(void) printf( " + Message style: PAM_PROMPT_ECHO_OFF\n" );
 #endif
-				if( strstr( msg[replies]->msg, "Password" ) == NULL ) {
-					PAM_putText( msg[replies], &reply[replies], False );
-				} else {
-					reply[replies].resp = COPY_STRING(PAM_password);
-				}
+				reply[replies].resp = COPY_STRING(PAM_password);
 				/* PAM frees resp */
 				break;
 			case PAM_TEXT_INFO:
 #ifdef DEBUG
 				(void) printf( " + Message style: PAM_TEXT_INFO\n" );
 #endif
-				if( strstr( msg[replies]->msg, "Password" ) == NULL ) {
-					PAM_putText( msg[replies], &reply[replies], False );
-				}
 				/* PAM frees resp */
 				break;
 			case PAM_ERROR_MSG:
 #ifdef DEBUG
 				(void) printf( " + Message style: PAM_ERROR_MSG\n" );
 #endif
-				if( strstr( msg[replies]->msg, "Password" ) == NULL ) {
-					PAM_putText( msg[replies], &reply[replies], False );
-				}
 				/* PAM frees resp */
 				break;
 			default:
openSUSE Build Service is sponsored by