1 // *** merge with lspedit code
8 static char szFilter
[FILTERSIZE
+ 2];
9 static char szDfltFilter
[] = "Lisp Files(*.LSP)|*.lsp|All Files(*.*)|*.*";
10 static char szDirName
[256];
12 LVAL
xsopenfiledialog()
19 changedir
= moreargs() ? ! null(xlgetarg()) : TRUE
;
21 usrfilter
= xlgastring();
22 if (getslength(usrfilter
) > FILTERSIZE
)
24 strcpy(szFilter
, getstring(usrfilter
));
27 strcpy(szFilter
, szDfltFilter
);
30 for (i
= 0; i
< n
; i
++)
31 if (szFilter
[i
] == '|')
34 szFilter
[n
+ 1] = '\0';
36 if (! getcwd(szDirName
, sizeof(szDirName
)))
40 memset(&ofn
, 0, sizeof(OPENFILENAME
));
41 ofn
.lStructSize
= sizeof(OPENFILENAME
);
42 ofn
.lpstrFilter
= szFilter
;
45 ofn
.nMaxFile
= STRMAX
;
46 ofn
.lpstrInitialDir
= szDirName
;
47 ofn
.Flags
= OFN_PATHMUSTEXIST
| OFN_FILEMUSTEXIST
| OFN_HIDEREADONLY
;
48 if (! changedir
) ofn
.Flags
|= OFN_NOCHANGEDIR
;
50 if (GetOpenFileName(&ofn
))
56 LVAL
xssetfiledialog()
64 title
= getstring(xlgastring());
65 changedir
= moreargs() ? ! null(xlgetarg()) : TRUE
;
67 usrfilter
= xlgastring();
68 if (getslength(usrfilter
) > FILTERSIZE
)
70 strcpy(szFilter
, getstring(usrfilter
));
73 strcpy(szFilter
, szDfltFilter
);
76 for (i
= 0; i
< n
; i
++)
77 if (szFilter
[i
] == '|')
80 szFilter
[n
+ 1] = '\0';
82 if (! getcwd(szDirName
, sizeof(szDirName
)))
86 memset(&ofn
, 0, sizeof(OPENFILENAME
));
87 ofn
.lStructSize
= sizeof(OPENFILENAME
);
88 ofn
.lpstrFilter
= szFilter
;
91 ofn
.nMaxFile
= STRMAX
;
92 ofn
.lpstrInitialDir
= szDirName
;
93 ofn
.Flags
= OFN_OVERWRITEPROMPT
;
94 if (! changedir
) ofn
.Flags
|= OFN_NOCHANGEDIR
;
95 ofn
.lpstrTitle
= title
;
97 if (GetSaveFileName(&ofn
))