]> cygwin.com Git - cygwin-apps/setup.git/commitdiff
2001-11-02 Robert Collins <rbtcollins@hotmail.com>
authorRobert Collins <rbtcollins@hotmail.com>
Thu, 1 Nov 2001 13:22:46 +0000 (13:22 +0000)
committerRobert Collins <rbtcollins@hotmail.com>
Thu, 1 Nov 2001 13:22:46 +0000 (13:22 +0000)
        * choose.cc (dialog_cmd): Swap cygwin root selection and local dir selection order.
* localdir.cc: Ran indent.
        (get_root_dir_now): New function.
        (save_local_dir): New function.
        (dialog_cmd): Use it and swap cygwin root selection and local dir selection order.
        (do_local_dir): If there is a saved local dir, read it in.
        * net.cc (dialog_cmd): Swap cygwin root selection and local dir selection order.
        * root.cc (dialog_cmd): Ditto.
        * source.cc (dialog_cmd): Ditto.

ChangeLog
choose.cc
localdir.cc
net.cc
root.cc
source.cc

index d45bb85ffb5ecc7d3775981f4d67b20bd8a2bc9a..feb95181b8090742a5085fb9285076bdc8d07715 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2001-11-02  Robert Collins  <rbtcollins@hotmail.com>
+
+       * choose.cc (dialog_cmd): Swap cygwin root selection and local dir selection order.
+       * localdir.cc: Ran indent.
+       (get_root_dir_now): New function.
+       (save_local_dir): New function.
+       (dialog_cmd): Use it and swap cygwin root selection and local dir selection order.
+       (do_local_dir): If there is a saved local dir, read it in.
+       * net.cc (dialog_cmd): Swap cygwin root selection and local dir selection order.
+       * root.cc (dialog_cmd): Ditto.
+       * source.cc (dialog_cmd): Ditto.
+
 2001-11-01  Robert Collins  <rbtcollins@hotmail.com>
 
        * choose.cc(list_vscroll): Return 0 as required by win32.
index a2eef9d88da187143f211a9cc3ad6a5a76f46817..9b1af6860186f4fe61c081bd23e02d39f3ed76d6 100644 (file)
--- a/choose.cc
+++ b/choose.cc
@@ -1157,7 +1157,7 @@ dialog_cmd (HWND h, int id, HWND hwndctl, UINT code)
     case IDC_BACK:
       initialized = 0;
       if (source == IDC_SOURCE_CWD)
-       NEXT (IDD_ROOT);
+       NEXT (IDD_LOCAL_DIR);
       else
        NEXT (IDD_SITE);
       break;
index 0e2e3594f8956f3fca175c8df65de938ce4586d9..19e61be56c1b89da4a76a405bead5a07b3bcccbe 100644 (file)
@@ -18,7 +18,8 @@
    root of the installation to be, and to ask whether the user prefers
    text or binary mounts. */
 
-static char *cvsid = "\n%%% $Id$\n";
+static char *cvsid =
+  "\n%%% $Id$\n";
 
 #include "win32.h"
 #include <shlobj.h>
@@ -33,6 +34,34 @@ static char *cvsid = "\n%%% $Id$\n";
 #include "mount.h"
 #include "concat.h"
 #include "log.h"
+#include "mkdir.h"
+
+static void
+get_root_dir_now ()
+{
+  int istext;
+  int issystem;
+  if (get_root_dir ())
+    return;
+  read_mounts ();
+}
+
+void
+save_local_dir ()
+{
+  get_root_dir_now ();
+  if (!get_root_dir ())
+    return;
+
+  mkdir_p (1, local_dir);
+
+  FILE *f = fopen (cygpath ("/etc/setup/last-cache", 0), "wb");
+  if (!f)
+    return;
+  fprintf (f, "%s", local_dir);
+  fclose (f);
+}
+
 
 static void
 check_if_enable_next (HWND h)
@@ -61,7 +90,7 @@ browse_cb (HWND h, UINT msg, LPARAM lp, LPARAM data)
     {
     case BFFM_INITIALIZED:
       if (local_dir)
-       SendMessage (h, BFFM_SETSELECTION, TRUE, (LPARAM)local_dir);
+       SendMessage (h, BFFM_SETSELECTION, TRUE, (LPARAM) local_dir);
       break;
     }
   return 0;
@@ -105,18 +134,20 @@ dialog_cmd (HWND h, int id, HWND hwndctl, UINT code)
 
     case IDOK:
       save_dialog (h);
+      save_local_dir ();
       if (SetCurrentDirectoryA (local_dir))
        {
          switch (source)
            {
            case IDC_SOURCE_DOWNLOAD:
+           case IDC_SOURCE_NETINST:
              NEXT (IDD_NET);
              break;
-           case IDC_SOURCE_NETINST:
            case IDC_SOURCE_CWD:
-             NEXT (IDD_ROOT);
+             NEXT (IDD_S_FROM_CWD);
              break;
            default:
+             msg ("source is default? %d\n", source);
              NEXT (0);
              break;
            }
@@ -128,7 +159,19 @@ dialog_cmd (HWND h, int id, HWND hwndctl, UINT code)
 
     case IDC_BACK:
       save_dialog (h);
-      NEXT (IDD_SOURCE);
+      switch (source)
+       {
+       case IDC_SOURCE_DOWNLOAD:
+         NEXT (IDD_SOURCE);
+         break;
+       case IDC_SOURCE_NETINST:
+       case IDC_SOURCE_CWD:
+         NEXT (IDD_ROOT);
+         break;
+       default:
+         msg ("source is default? %d\n", source);
+         NEXT (0);
+       }
       break;
 
     case IDCANCEL:
@@ -156,6 +199,25 @@ extern char cwd[_MAX_PATH];
 void
 do_local_dir (HINSTANCE h)
 {
+  static int inited = 0;
+  if (!inited)
+    {
+      FILE *f = fopen (cygpath ("/etc/setup/last-cache", 0), "rt");
+      if (f)
+       {
+         char localdir[1000];
+         localdir[0] = '\0';
+         char *fg_ret = fgets (localdir, 1000, f);
+         fclose (f);
+         if (fg_ret)
+           {
+             free (local_dir);
+             local_dir = strdup (localdir);
+           }
+       }
+      inited = 1;
+    }
+
   int rv = 0;
   rv = DialogBox (h, MAKEINTRESOURCE (IDD_LOCAL_DIR), 0, dialog_proc);
   if (rv == -1)
@@ -163,4 +225,3 @@ do_local_dir (HINSTANCE h)
 
   log (0, "Selected local directory: %s", local_dir);
 }
-
diff --git a/net.cc b/net.cc
index 764b9aec1fe7053a1fa212aaf08d2711c93e755c..373423507413bd649dfd533fbe841524058e0b3d 100644 (file)
--- a/net.cc
+++ b/net.cc
@@ -101,16 +101,7 @@ dialog_cmd (HWND h, int id, HWND hwndctl, UINT code)
 
     case IDC_BACK:
       save_dialog (h);
-      switch (source)
-       {
-       case IDC_SOURCE_DOWNLOAD:
-         NEXT (IDD_LOCAL_DIR);
-         break;
-       case IDC_SOURCE_NETINST:
-       case IDC_SOURCE_CWD:
-         NEXT (IDD_ROOT);
-         break;
-       }
+      NEXT (IDD_LOCAL_DIR);
       break;
 
     case IDCANCEL:
diff --git a/root.cc b/root.cc
index 60417946216f86695c14e45bc399939b0a5f9874..8ecda17132f2403d6b5e4a0343c1ee65f81e36a6 100644 (file)
--- a/root.cc
+++ b/root.cc
@@ -157,23 +157,12 @@ dialog_cmd (HWND h, int id, HWND hwndctl, UINT code)
        if (IDNO == yesno (IDS_ROOT_SPACE))
          break;
 
-      switch (source)
-       {
-       case IDC_SOURCE_NETINST:
-         NEXT (IDD_NET);
-         break;
-       case IDC_SOURCE_CWD:
-         NEXT (IDD_S_FROM_CWD);
-         break;
-       default:
-         msg ("source is default? %d\n", source);
-         NEXT (0);
-       }
+      NEXT (IDD_LOCAL_DIR);
       break;
 
     case IDC_BACK:
       save_dialog (h);
-      NEXT (IDD_LOCAL_DIR);
+      NEXT (IDD_SOURCE);
       break;
 
     case IDCANCEL:
index 9ff9268b6db856964a9e3adea1c2a20baf1c62ce..c3a954dce78cf531d2161a48b344149959c5e8ef 100644 (file)
--- a/source.cc
+++ b/source.cc
@@ -63,7 +63,15 @@ dialog_cmd (HWND h, int id, HWND hwndctl, UINT code)
 
     case IDOK:
       save_dialog (h);
-      NEXT (IDD_LOCAL_DIR);
+      switch (source)
+       {
+       case IDC_SOURCE_DOWNLOAD:
+         NEXT (IDD_LOCAL_DIR);
+         break;
+       default:
+         NEXT (IDD_ROOT);
+         break;
+       }
       break;
 
     case IDC_BACK:
This page took 0.044401 seconds and 5 git commands to generate.