[Date Prev][Date Next][Subject Prev][Subject Next][ Date Index][ Subject Index]

Re: Long Filenames in Xy4



Here are the U2 frames (attached, and XYENCoded below -- issue
XYDEC to decode in Xy4). CAll LFN-U2.FRM in XyWrite, DeFine
the whole thing, and issue ADD2U2 to add it to your loaded U2 file.
These routines are for Xy4-DOS running under 32-bit Windows.

I haven't written a Help screen yet, and the video
http://youtu.be/LMW6DZlIO6E doesn't illustrate all of the
possibilities. A notable one is that LSA[/NV] has point-and-shoot
capability. In other words, you can put the cursor on a SFN DIR
listing and issue LSA [d:\path\]long_filename to save the
indicated file with a long-filename. Also, note that LDEL follows
your default EP (Error Prompt) setting. If the first value of EP
is 0 (command VA/NV EP1 to see what yours is), LDEL deletes
the file without warning! For myself, I set EP1 to 1, to enable
confirmation before DELeting (which is why I use LDEL/NV in
the video). When I want to erase a file without confirmation, I use
XyWrite's trusty old ERNV command, or the Xy4-and-later DEL/NV.

I rewrote these routines using plain-vanilla Windows Command
Extensions (enabled by default on most systems) to compute the SFN
corresponding to the specified LFN. My hope is that they'll work on
any (relatively) modern version of Windows, real or virtual.
Feedback welcome.

'%--_XYENCode_start--
{{5lca*,lcd*,ldel*,ldir*,lmd,lne*,lrd*,lsa*}}_[CLD_rev.8/9/14]
'^~B'BXes_1'Q2'DX~)~>~~="DIR"~>
'JM2.bdir/x'Q2~~',*','^~>0~>',*','^',*',
'^',*',_~',*',_Command'^',*',_~',*',_fully_qua
lified_LFN'^',*',_~',*',_fully_quallified_SFN_(empty_i
f_LFN_does_not_exist)'^',*','^',*',_Common'^~~~~>~~>',*','^~~>'JM2.GetPath'Q2',*','^~+"\GETSFN.BAT"
~
>~+"\GETSFN.OUT"~>',*','^~'BXern
v_~'Q2'BXwait'Q2~+"_goto_'.eof'^for_'/'/A_in_("+~+")_do_echo_'/'/'?fs
A>"+~"~>',*','^'BXsa_'/07,~'Q2'BXwait'Q2',*','^'BX
dos/nv/x/z_/c_cmd.exe_/c_~'Q2'BXwait'Q2',*','^'BXexist_
~
'Q2~)~>',*','^~~~>~<10~>~~>~',*','^~+","+~~>'JM2.SVfile'Q2'BXwait'Q2',*','^~~="'^"~>~~~~>~<
EI~>~~>',*','^~==0~>~~~~>',*','^~==~
-1~>~+";~N"~>~~~<
SX02,~~>~~',*','^~<0~>~~>~+"!3C;~N")<0~>~+"\"~>~~+~~>~~+""""~>~',*','^',*','^',*',_CALL_|_DELete_|_CD_(ChD
ir)_|_RD_(RmDir)'^~~="CA"'|~~="CD"'|~
~
="DEL"'|~~="RD"~>',*','^~>0~>'BX~_~<
PV03~>'Q2~)~>~~+"_"+~
~
>~'FF~~~~~~>~+"~>"~>~~>~~="&"~>
~
~~~>~
+"_"+~~>~~~~+"_does_not_e
xist"~>~~',*','^',*','^',*',_NEw_|_MD_(MkDir)'^~~="NE"'|~~="MD"~>~<1~>',*','^~~="NE"~>~~~="/"~>~~~',*','^~~>~'BXsa_'/08,~<
PV05~>'Q2'BXwait'Q2',*','^'BXdos/nv/x/z_/c_cmd.exe_/c_copy/y_~<
PV05~>_~>nul'Q2'BXwait'Q2~',*','^'BXca~>0~>/~~_~'Q2~~>~~~~',*','^~~="MD"~>'BXdos/nv/x/z_/c_cmd.exe_
/c_mkdir_~'Q2'BXwait'Q2~~~~+"_already_exists"~>~~',*','^',*','^',*',_SAve_as
_LFN'^~~="SA"~>~>0~>~~>~<
IF~>1~>~~>~',*','^'DZ~
>0~>~+"\'|LSAD'|.TMP"~>'BXsad/nv_~'Q2'BXw
ait'Q2~~<1~>~'BXdos/nv/x/z_/c_cmd.exe_/
c_copy/y_~_~>nul'Q2'BXwait'Q2~~~~="/NV"~>~~~+"_exists._Over
write_it?_(y|N)~>~~)<>"Y"~>~~~~~~~~
',*','^',*','^~~+"_LongFileName"~>
~
~B'^'^{{5bdir*}}_Display_DOS_dir_listings_in_XyWrite_(W
in32',_after_BIGDIR.PM)_[CLD_rev.12/8/13]'^~B',*',_______Usage
_BDIR[/switches]_[filespec]'^~>0~>'BXes_1
'Q2'DX~',*','^~~>~~~+~+"/-n/-p"~>',*','^~<0~>~~~~>~
~
>'JM2.GetPath'Q2',*','^~+"\DIR.TMP"~>'BXernv_~<
PV02~>'Q2'BXwait'Q2',*','^~~>~+"'Q2"~>'BXd_xd=0'Q2',*','^~+"\DIR.T0P"~>'BX
ernv_~'Q2'BXwait'Q2~'BXsa_'/06,~'Q2'BXwa
it'Q2',*','^~~>~>0~>~+"_"+~~>~',*','^~+">"+~+"'^del_"+~+"'^"~>~+"\D
IRT0P.BAT"~>'BXsa_'/06,~'Q2'BXwait'Q2',*','^'BXdos/nv/x
/z_/c_~'Q2'BXwait'Q2',*','^~~'BXexis
t_~'Q2~~>~'BXp'Q2~',*','^~~

~'^~'BXernv_~'Q2'BX wait'Q2'BXernv_~'Q2'BXwait'Q2',*','^~~>'BX func_#~'Q2'BXdir/pa_~'Q2'TG'TF'YD'DF'BF'BF'DF'DN ~ ~~>~',*','^'BXme_~'Q2'BX wait'Q2'BXernv_~'Q2'BXwait'Q2',*','^'TF~~ 'BXse_"~J;X;X;X;X;X;X;X;X_"'Q2~)~>~~ '^~'TG'TF~~~>~~~~< PRNo_window~>~B'^'^ '%--_XYENCode___end-- -- Carl Distefano cld@xxxxxxxx

Attachment: LFN-U2.FRM
Description: Binary data