* call-agent.c (start_agent): Make copies of old locales and check
[gnupg.git] / util / miscutil.c
index eb72415..9b4a837 100644 (file)
@@ -1,5 +1,5 @@
 /* miscutil.c -  miscellaneous utilities
- *     Copyright (C) 1998, 1999 Free Software Foundation, Inc.
+ *     Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
  *
  * This file is part of GnuPG.
  *
@@ -27,6 +27,7 @@
 #ifdef HAVE_LANGINFO_H
   #include <langinfo.h>
 #endif
+#include <gcrypt.h>
 #include "types.h"
 #include "util.h"
 #include "i18n.h"
@@ -147,7 +148,7 @@ asctimestamp( u32 stamp )
     tp = localtime( &atime );
   #ifdef HAVE_STRFTIME
     #if defined(HAVE_NL_LANGINFO)
-      mem2str( fmt, nl_langinfo(D_T_FMT), DIM(fmt) );
+      mem2str( fmt, nl_langinfo(D_T_FMT), DIM(fmt)-3 );
       if( strstr( fmt, "%Z" ) == NULL )
        strcat( fmt, " %Z");
       strftime( buffer, DIM(buffer)-1, fmt, tp );
@@ -210,7 +211,7 @@ print_utf8_string( FILE *fp, const byte *p, size_t n )
     if( i < n ) {
        buf = utf8_to_native( p, n );
        fputs( buf, fp );
-       m_free( buf );
+       gcry_free( buf );
     }
     else
        print_string( fp, p, n, 0 );
@@ -218,7 +219,7 @@ print_utf8_string( FILE *fp, const byte *p, size_t n )
 
 /****************
  * This function returns a string which is suitable for printing
- * Caller must release it with m_free()
+ * Caller must release it with gcry_free()
  */
 char *
 make_printable_string( const byte *p, size_t n, int delim )
@@ -242,7 +243,7 @@ make_printable_string( const byte *p, size_t n, int delim )
     p = save_p;
     n = save_n;
     /* and now make the string */
-    d = buffer = m_alloc( buflen );
+    d = buffer = gcry_xmalloc( buflen );
     for( ; n; n--, p++ ) {
        if( iscntrl( *p ) || *p == delim ) {
            *d++ = '\\';
@@ -310,16 +311,16 @@ answer_is_yes_no_quit( const char *s )
     char *short_no = _("nN");
     char *short_quit = _("qQ");
 
-    if( !stricmp(s, long_yes ) )
-       return 1;
     if( !stricmp(s, long_no ) )
        return 0;
+    if( !stricmp(s, long_yes ) )
+       return 1;
     if( !stricmp(s, long_quit ) )
        return -1;
-    if( strchr( short_yes, *s ) && !s[1] )
-       return 1;
     if( strchr( short_no, *s ) && !s[1] )
        return 0;
+    if( strchr( short_yes, *s ) && !s[1] )
+       return 1;
     if( strchr( short_quit, *s ) && !s[1] )
        return -1;
     if( !stricmp(s, "yes" ) )