Fall back to curses if DISPLAY is not set
authorSteffen Hansen <hansen@kde.org>
Thu, 9 May 2002 14:38:03 +0000 (14:38 +0000)
committerSteffen Hansen <hansen@kde.org>
Thu, 9 May 2002 14:38:03 +0000 (14:38 +0000)
qt/Makefile.am
qt/main.cpp

index 9bce618..be2f94f 100644 (file)
@@ -1,5 +1,5 @@
 # Makefile.am
-# Copyright (C) 2002 g10 Code GmbH
+# Copyright (C) 2002 g10 Code GmbH, Klarälvdalens Datakonsult AB
 #
 # This file is part of PINENTRY.
 #
 
 bin_PROGRAMS = pinentry-qt
 
-AM_CPPFLAGS = -I$(top_srcdir)/assuan -I$(top_srcdir)/secmem $(QT_INCLUDES) 
+if FALLBACK_CURSES
+ncurses_include = -I$(top_srcdir)/pinentry $(NCURSES_INCLUDE)
+libcurses = ../pinentry/libpinentry-curses.a ../pinentry/libpinentry.a $(LIBCURSES) $(LIBICONV)
+else
+ncurses_include =
+libcurses =
+endif
+
+
+AM_CPPFLAGS = -I$(top_srcdir)/assuan -I$(top_srcdir)/secmem $(QT_INCLUDES) $(ncurses_include)
 AM_CXXFLAGS = $(QT_CXXFLAGS)
 pinentry_qt_LDADD = $(top_builddir)/assuan/libassuan.a \
        $(top_builddir)/secmem/libsecmem.a $(LIBCAP) \
-       $(QT_LIBS)
+       $(QT_LIBS) $(libcurses)
 pinentry_qt_LDFLAGS = $(QT_LDFLAGS)
 
 pinentry_qt_SOURCES = pinentrydialog.h pinentrydialog.cpp \
index 3010e0e..23a6b5e 100644 (file)
    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
    02111-1307, USA  */
 
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+
 extern "C"
 {
 #include "memory.h"
@@ -37,11 +42,39 @@ extern "C"
 #include "pinentrydialog.h"
 #include "pinentrycontroller.h"
 
+
+
+#ifdef FALLBACK_CURSES
+#include <pinentry.h>
+#include <pinentry-curses.h>
+
+pinentry_cmd_handler_t pinentry_cmd_handler = curses_cmd_handler;
+
+int curses_main (int argc, char *argv[])
+{
+  pinentry_init ();
+
+  /* Consumes all arguments.  */
+  if (pinentry_parse_opts (argc, argv))
+    {
+      printf ("pinentry-curses " VERSION "\n");
+      exit (EXIT_SUCCESS);
+    }
+
+  if (pinentry_loop ())
+    return 1;
+
+  return 0;
+}
+#endif
+
 extern "C++" {
   extern bool is_secure;
 };
 
+#ifndef VERSION
 #define VERSION "0.1"
+#endif
 
 #ifdef USE_KDE
 static const char *description =
@@ -62,30 +95,44 @@ void my_new_handler()
   qFatal("Out of memory!");
 }
 
-int main( int argc, char** argv ) 
+int qt_main( int argc, char *argv[] )
 {
-  secmem_init( 16384*8 );
-  secmem_set_flags(SECMEM_WARN);
-  drop_privs();
-  set_new_handler(my_new_handler);
-  try {
+    secmem_init( 16384*8 );
+    secmem_set_flags(SECMEM_WARN);
+    drop_privs();
+    set_new_handler(my_new_handler);
+    try {
 #ifdef USE_KDE
-    KAboutData aboutData( "pinentry", I18N_NOOP("Pinentry"),
-                         VERSION, description, KAboutData::License_GPL,
-                         "(c) 2001, Steffen Hansen, Klarälvdalens Datakonsult AB", 0, 0, "klaralvdalens-datakonsult.se");
-    aboutData.addAuthor("Steffen Hansen, Klarälvdalens Datakonsult AB",0, "steffen@klaralvdalens-datakonsult.se");
-    KCmdLineArgs::init( argc, argv, &aboutData );
-    KCmdLineArgs::addCmdLineOptions( options ); // Add our own options.
-    KApplication app;
+      KAboutData aboutData( "pinentry", I18N_NOOP("Pinentry"),
+                           VERSION, description, KAboutData::License_GPL,
+                           "(c) 2001, Steffen Hansen, Klarälvdalens Datakonsult AB", 0, 0, "klaralvdalens-datakonsult.se");
+      aboutData.addAuthor("Steffen Hansen, Klarälvdalens Datakonsult AB",0, "steffen@klaralvdalens-datakonsult.se");
+      KCmdLineArgs::init( argc, argv, &aboutData );
+      KCmdLineArgs::addCmdLineOptions( options ); // Add our own options.
+      KApplication app;
 #else
-    QApplication app( argc, argv );
+      QApplication app( argc, argv );
 #endif // USE_KDE
-    is_secure = true;
+      is_secure = true;
+      
+      PinEntryController ctrl;
+      ctrl.exec();
+      return 0;
+    } catch( std::bad_alloc& ex ) {
+      qDebug("Out of memory, got a %s", ex.what());
+      return -1;
+    }
+}
 
-    PinEntryController ctrl;
-    ctrl.exec();
-    return 0;
-  } catch( std::bad_alloc& ex ) {
-    qDebug("Out of memory, got a %s", ex.what());
+int main( int argc, char* argv[] ) 
+{
+#ifdef FALLBACK_CURSES
+  if( getenv( "DISPLAY" ) ) {
+#endif
+    return qt_main( argc, argv );
+#ifdef FALLBACK_CURSES
+  } else {
+    return curses_main( argc, argv );
   }
+#endif
 }