Index: main.cc
===================================================================
RCS file: /cvs/cygwin-apps/setup/main.cc,v
retrieving revision 2.29
diff -u -b -B -p -r2.29 main.cc
--- main.cc	30 Jul 2003 23:24:18 -0000	2.29
+++ main.cc	27 Oct 2003 17:07:11 -0000
@@ -71,6 +71,7 @@ int next_dialog;
 HINSTANCE hinstance;
 
 static BoolOption UnattendedOption (false, 'q', "quiet-mode", "Unattended setup mode");
+static BoolOption HelpOption (false, 'h', "help", "print help");
 
 /* Maximum size of a SID on NT/W2K. */
 #define MAX_SID_LEN	40
@@ -466,6 +467,12 @@ main (int argc, char **argv)
     theLog->exit(1);
 // #endif
 
+  if (HelpOption)
+  {
+    GetOption::GetInstance().ParameterUsage(log(LOG_PLAIN)<<"\nCommand Line Options:\n");
+    theLog->exit(0);
+  }
+
   unattended_mode = UnattendedOption;
 
   /* Set the default DACL and Group only on NT/W2K. 9x/ME has 
Index: localdir.cc
===================================================================
RCS file: /cvs/cygwin-apps/setup/localdir.cc,v
retrieving revision 2.17
diff -u -b -B -p -r2.17 localdir.cc
--- localdir.cc	30 Jul 2003 08:13:09 -0000	2.17
+++ localdir.cc	27 Oct 2003 17:07:12 -0000
@@ -41,10 +41,14 @@ static const char *cvsid =
 #include "localdir.h"
 #include "UserSettings.h"
 
+#include "getopt++/StringOption.h"
+
 #include "threebar.h"
 extern ThreeBarProgressPage Progress;
 extern LogFile * theLog;
 
+static StringOption LocalDirOption ("", 'l', "local-package-dir", "Local package directory", false);
+
 static LocalDirSetting localDir;
 
 void 
@@ -61,6 +65,8 @@ LocalDirSetting::load(){
       if (fg_ret)
         local_dir = String (localdir);
     }
+  if (((std::string)LocalDirOption).size())
+    local_dir = ((std::string)LocalDirOption);
   inited = 1;
 }
 
