emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/src/w32fns.c


From: Jason Rumney
Subject: [Emacs-diffs] Changes to emacs/src/w32fns.c
Date: Sun, 27 Jun 2004 18:37:55 -0400

Index: emacs/src/w32fns.c
diff -c emacs/src/w32fns.c:1.235 emacs/src/w32fns.c:1.236
*** emacs/src/w32fns.c:1.235    Wed Jun  2 22:55:02 2004
--- emacs/src/w32fns.c  Sun Jun 27 22:35:59 2004
***************
*** 7686,7692 ****
      {
        OFNOTIFY * notify = (OFNOTIFY *)lParam;
        /* Detect when the Filter dropdown is changed.  */
!       if (notify->hdr.code == CDN_TYPECHANGE)
        {
          HWND dialog = GetParent (hwnd);
          HWND edit_control = GetDlgItem (dialog, FILE_NAME_TEXT_FIELD);
--- 7686,7693 ----
      {
        OFNOTIFY * notify = (OFNOTIFY *)lParam;
        /* Detect when the Filter dropdown is changed.  */
!       if (notify->hdr.code == CDN_TYPECHANGE
!         || notify->hdr.code == CDN_INITDONE)
        {
          HWND dialog = GetParent (hwnd);
          HWND edit_control = GetDlgItem (dialog, FILE_NAME_TEXT_FIELD);
***************
*** 7700,7707 ****
            }
          else
            {
!             CommDlg_OpenSave_SetControlText (dialog, FILE_NAME_TEXT_FIELD,
!                                              "");
              EnableWindow (edit_control, TRUE);
            }
        }
--- 7701,7710 ----
            }
          else
            {
!             /* Don't override default filename on init done.  */
!             if (notify->hdr.code == CDN_TYPECHANGE)
!               CommDlg_OpenSave_SetControlText (dialog,
!                                                FILE_NAME_TEXT_FIELD, "");
              EnableWindow (edit_control, TRUE);
            }
        }
***************
*** 7723,7728 ****
--- 7726,7732 ----
    struct gcpro gcpro1, gcpro2, gcpro3, gcpro4, gcpro5;
    char filename[MAX_PATH + 1];
    char init_dir[MAX_PATH + 1];
+   int default_filter_index = 1; /* 1: All Files, 2: Directories only  */
  
    GCPRO5 (prompt, dir, default_filename, mustmatch, file);
    CHECK_STRING (prompt);
***************
*** 7746,7754 ****
        if (!file_name_only)
          file_name_only = full_path_name;
        else
!         {
!           file_name_only++;
!         }
  
        strncpy (filename, file_name_only, MAX_PATH);
        filename[MAX_PATH] = '\0';
--- 7750,7756 ----
        if (!file_name_only)
          file_name_only = full_path_name;
        else
!       file_name_only++;
  
        strncpy (filename, file_name_only, MAX_PATH);
        filename[MAX_PATH] = '\0';
***************
*** 7773,7778 ****
--- 7775,7789 ----
      file_details.nMaxFile = sizeof (filename);
      file_details.lpstrInitialDir = init_dir;
      file_details.lpstrTitle = SDATA (prompt);
+ 
+     /* If prompt starts with Dired, default to directories only.  */
+     /* A bit hacky, but there doesn't seem to be a better way to
+        DTRT for dired.  */
+     if (strncmp (file_details.lpstrTitle, "Dired", 5) == 0)
+       default_filter_index = 2;
+ 
+     file_details.nFilterIndex = default_filter_index;
+ 
      file_details.Flags = (OFN_HIDEREADONLY | OFN_NOCHANGEDIR
                          | OFN_EXPLORER | OFN_ENABLEHOOK);
      if (!NILP (mustmatch))
***************
*** 7785,7791 ****
        dostounix_filename (filename);
        if (file_details.nFilterIndex == 2)
          {
!           /* "Folder Only" selected - strip dummy file name.  */
            char * last = strrchr (filename, '/');
            *last = '\0';
          }
--- 7796,7802 ----
        dostounix_filename (filename);
        if (file_details.nFilterIndex == 2)
          {
!           /* "Directories" selected - strip dummy file name.  */
            char * last = strrchr (filename, '/');
            *last = '\0';
          }




reply via email to

[Prev in Thread] Current Thread [Next in Thread]