]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - c++/cursesmain.cc
ncurses 5.6 - patch 20070217
[ncurses.git] / c++ / cursesmain.cc
index 09400b8d690a0e71128b47229be158047bb4c3f2..7382600b986bd7db982d77d5c90b793d89bb71da 100644 (file)
@@ -1,6 +1,6 @@
 // * this is for making emacs happy: -*-Mode: C++;-*-
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998-2003,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  ****************************************************************************/
 
 /****************************************************************************
- *   Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1997                 *
+ *   Author: Juergen Pfeifer, 1997                                          *
  ****************************************************************************/
 
-#include "cursesapp.h"
 #include "internal.h"
+#include "cursesapp.h"
+
+MODULE_ID("$Id: cursesmain.cc,v 1.13 2007/01/27 20:29:27 tom Exp $")
 
-MODULE_ID("$Id: cursesmain.cc,v 1.5 1999/05/16 17:31:22 juergen Exp $")
+#if HAVE_LOCALE_H
+#include <locale.h>
+#else
+#define setlocale(name,string) /* nothing */
+#endif
+
+#if NO_LEAKS
+#include <nc_alloc.h>
+#endif
 
 /* This is the default implementation of main() for a NCursesApplication.
  * You only have to instantiate a static NCursesApplication object in your
  * main application source file and link this module with your application.
- */ 
+ */
 int main(int argc, char* argv[])
 {
+  setlocale(LC_ALL, "");
+
   NCursesApplication* A = NCursesApplication::getApplication();
   if (!A)
     return(1);
-  A->handleArgs(argc,argv);
-  ::endwin();
-  return((*A)());
+  else {
+    int res;
+
+    A->handleArgs(argc,argv);
+    ::endwin();
+    res = (*A)();
+    ::endwin();
+#if NO_LEAKS
+    delete A;
+    _nc_free_and_exit(res);
+#else
+    return(res);
+#endif
+  }
 }