[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/src/w32fns.c [lexbind]
From: |
Miles Bader |
Subject: |
[Emacs-diffs] Changes to emacs/src/w32fns.c [lexbind] |
Date: |
Tue, 06 Jul 2004 06:58:57 -0400 |
Index: emacs/src/w32fns.c
diff -c emacs/src/w32fns.c:1.173.2.12 emacs/src/w32fns.c:1.173.2.13
*** emacs/src/w32fns.c:1.173.2.12 Tue Jul 6 09:39:56 2004
--- emacs/src/w32fns.c Tue Jul 6 10:23:40 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';
}