summaryrefslogtreecommitdiff
path: root/language/chinese/CJK/cjk-4.8.5/utils/f_name.bat
diff options
context:
space:
mode:
Diffstat (limited to 'language/chinese/CJK/cjk-4.8.5/utils/f_name.bat')
-rw-r--r--language/chinese/CJK/cjk-4.8.5/utils/f_name.bat205
1 files changed, 205 insertions, 0 deletions
diff --git a/language/chinese/CJK/cjk-4.8.5/utils/f_name.bat b/language/chinese/CJK/cjk-4.8.5/utils/f_name.bat
new file mode 100644
index 0000000000..70e6e69ce9
--- /dev/null
+++ b/language/chinese/CJK/cjk-4.8.5/utils/f_name.bat
@@ -0,0 +1,205 @@
+@echo off
+:4dosCheck
+ if "%@eval[2+2]"=="4" loadbtm on
+:Start
+ if [%1]==[] goto Usage
+ if [%1]==[/?] goto Help
+ if [%2]==[] goto InputCheck
+REM
+REM This file is called F_NAME.BAT per default. Call it whatever you like.
+REM
+REM You need enough free environment space for this batch file.
+REM If there's not enough free space, f_name.bat will give you a warning.
+REM
+REM While f_name.bat tries to test your free environment space, you'll
+REM probably need to check your config.sys for the following line:
+REM
+REM SHELL=C:\DOS\COMMAND.COM C:\DOS\ /E:1024 /p
+REM
+REM The '/E:1024' sets your environment space - it will probably need to
+REM be 1024 or higher (unless you're really economical with env-space).
+REM
+REM If you are not sure about free space, set fp and fn with long dummy
+REM strings in autoexec.bat to get enough free space, eg.:
+REM
+REM set fp=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+REM set fu=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+REM set fn=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+REM set fd=xx
+REM set fe=xxxx
+REM
+REM Using dummy strings is necessary if you're going to execute
+REM f_name.bat from a second command shell, eg. from Norton Commander.
+REM In this case the total length reserved for f_name.bat should be up
+REM to 192 bytes. My suggestion is, let the strings for fp, fu, and fn count
+REM up to 186 bytes (eg. 62 each).
+REM
+REM Some releases of DOS (eg. some beta-releases/pre-releases of DOS 6.0
+REM and some older DOS releases) does not support the batchcommand 'NOT'.
+REM If you're still using such a release you cannot use this batchfile
+REM since it uses this batchcommand.
+REM
+REM Please also note that f_name.bat cannot work properly if filespec is
+REM longer than around 38 (? I don't know the exact length) characters. If
+REM filespec is long, f_name.bat will fail at 'for %%x in ... do if ...'
+REM lines. The result of error is fairly unpredictable as DOS will try to
+REM execute with a truncated batch command line. So, please use the
+REM batch file for short filespecs (< 38??). (On my DOS 6.22 using
+REM strings above 38 chars gives me an endless loop, Claus Futtrup).
+REM
+REM For large batchfiles it is usually an advantage to use a
+REM 'batch-compiler', which will convert the .bat file into a .com or
+REM .exe file. With f_name.bat this could probably speed it up many
+REM times, but it has not been possible to find a batch-compiler, which
+REM will compile this batchfile. The compilers PWR14G.ZIP and
+REM BAT2EX15.ZIP have been tested without success.
+REM
+REM This modified release is more solid when it comes to garbage input, it
+REM is provided with help option, additional documentation and additional
+REM checking for sufficient environment space and now remove the temporary
+REM environment settings (P, Q, R, S, T) at the bottom of the batchfile. The
+REM structure is changed a bit, but the basic still is made by Wonkoo Kim.
+REM
+REM Please do not distribute this file without the above documentation
+REM included in the batch-file. If you change the file please add your
+REM name as a "modifier" as done below + document your changes. We do
+REM not intend to hold a copyright, though. You may use, misuse or abuse
+REM this batchfile as you see fit.
+REM
+REM This file is provided to you on a free basis. The author/modifiers
+REM do not want to be hold responsible to whatever this batchfile is
+REM doing. Use of this batchfile is entirely at your own risk.
+REM
+REM Wonkoo Kim (wkim+@pitt.edu), August 11, 1995
+REM Modified by Claus Futtrup (odie@csek.iprod.auc.dk), August 23. 1995
+REM Modified by Werner Lemberg (wl@gnu.org), Jan. 10. 1996
+REM to run this batch file under 4DOS too (replacing all %%f with %%x
+REM and doubling the speed with the LOADBTM ON command)
+REM Modified by Werner Lemberg (wl@gnu.org), Aug. 31. 1996
+REM to return unix-like paths additionally in the variable %fu%;
+REM the batch file will now parse e.g. \a.b\ correctly as a directory.
+REM
+:Usage
+ echo.
+ echo Usage: %0 filespec
+ echo.
+ echo Returns: fd (drive), fp (path), fu (unix path), fn (name), fe (extension)
+ echo.
+ echo Type %0 /? for additional help
+ echo %0 is made by Wonkoo Kim, modified by C. Futtrup and W. Lemberg.
+ echo.
+ goto END
+:Help
+ cls
+ echo %0 -- extracts the drive, path, name, and ext from file-path-name.
+ echo.
+ echo Return envs: FD (drive), FP (path), FU (unix path), FN (name), FE (ext)
+ echo Temp envs: P, Q, R, S, T
+ echo.
+ echo INPUT FILE fd fp fn fe
+ echo ------------------ --------- --------- --------- ---------
+ echo abc abc
+ echo abc.tex abc .tex
+ echo c:\abc.tex c: \ abc .tex
+ echo c:tmp\abc.tex c: tmp\ abc .tex
+ echo c:\tmp\abc.tex c: \tmp\ abc .tex
+ echo c:tmp\tex\abc.tex c: tmp\tex\ abc .tex
+ echo c:\tmp\tex\abc.tex c: \tmp\tex\ abc .tex
+ echo.
+ echo Please note this file isn't blazing fast + it needs a lot
+ echo of environment space. See comments in %0 for more info.
+ echo.
+ echo Wonkoo Kim (wkim+@pitt.edu), August 11, 1995
+ echo Modified by Claus Futtrup (odie@csek.iprod.auc.dk), August 23. 1995
+ echo Modified by Werner Lemberg (wl@gnu.org), Aug 31. 1996
+ goto END
+:InputCheck
+ for %%x in (%1) do if "%%x"=="%1" goto Okay
+ echo *** ERROR: Please do not use wildcards in input file name.
+ goto END
+:Okay
+ set p=
+ set r=
+ set fp=
+ set fu=
+ set fe=
+ set fn=%1
+ set s=XXXXXXXX%fn%
+ set t=%fn%
+ set s=
+ if [%t%]==[%1] goto GetDrive
+:EnvErr
+ echo *** ERROR: Not enough environment space!
+ echo *** See documentation at top of file '%0'
+ goto END
+:GetDrive
+ for %%x in (/%t%) do set fn=%%x
+ for %%x in (/%t%) do if not [%%x]==[%fn%] set fd=%%x
+ if [%fn%]==[:] goto DriveOnly
+ set t=%fn%
+ for %%x in (/%t%) do set fn=%%x
+ if [:%fn%]==[%t%] goto DriveFound
+ set fd=
+ set fn=%1
+ goto GetPath
+:DriveOnly
+ set fn=
+:DriveFound
+ set fd=%fd%:
+:GetPath
+ set s=%fn%
+:PathLoop
+ set t=%s%
+ for %%x in (/%t%) do set s=%%x
+ set q=
+ for %%x in (/%t%) do if not [%%x]==[%s%] set q=%%x
+ if "\%s%"=="%t%" goto Separator
+ set p=%p%%q%
+ set r=%r%%q%
+ if [%s%]==[%t%] goto PathCheck
+ goto PathLoop
+:Separator
+ set fn=%s%
+ set p=%p%\
+ set r=%r%/
+ set fp=%p%
+ set fu=%r%
+ goto PathLoop
+:PathCheck
+ if [%s%]==[\] goto NoFilename
+ if not [%fn%]==[\] goto GetExt
+ set fp=\
+ set fu=/
+ set fn=
+ goto Done
+:NoFilename
+ set fp=%p%\
+ set fu=%r%/
+ set fn=
+ goto Done
+:GetExt
+ set s=%fn%
+ set fe=%fn%
+ set fn=
+:ExtLoop
+ set t=%fe%
+ for %%x in (/%t%) do set fe=%%x
+ if ".%fe%"=="%t%" goto ExtFound
+ if [%fe%]==[%t%] goto NoExt
+ for %%x in (/%t%) do if not [%%x]==[%fe%] set fn=%fn%%%x
+ goto ExtLoop
+:ExtFound
+ set fe=.%fe%
+ goto Done
+:NoExt
+ if not [%fe%]==[.] set fn=%s%
+ set fe=
+:Done
+ echo DRIVE=%fd% PATH=%fp% UNIX_PATH=%fu% NAME=%fn% EXT=%fe%
+:END
+ set p=
+ set q=
+ set r=
+ set s=
+ set t=
+